Synthforum

Mededelingen

Reactie
 
Discussietools Zoek in deze discussie
Oud 17 april 2017, 18:15   #1
loveyourjunos
Vintage lid
 
Geregistreerd: 17 december 2006
Woonplaats: Vught
Berichten: 1.649
FP-30 'hidden features' editor
Afgelopen zaterdag een FP-30 digitale Roland piano gekocht. Toen ik naar de MIDI implementation keek zag ik zo'n zestig effecten die je niet via het apparaat zelf kunt bereiken. (rotary speaker, autowah, amp simulatie, delays, etc. etc.)
Er is op de Midi implementation guide na ook nergens iets over te vinden.

Na wat puzzelen hoe SysEx ook al weer werkt heb ik het zo'n beetje aan de praat gekregen. In Chrome kun je MIDI en SysEx versturen, dus ik heb een siteje gebouwd waarmee je de effecten aan kunt sturen plus nog wat andere zaken (bijvoorbeeld de GM2 klanken laden die er ook gewoon in zitten). Het werkt allemaal nog niet top maar ik ben er nu even klaar mee...

Chrome blokkeert sysex op je website als je geen https verbinding hebt, vandaar dat ik het nu even als zip pakketje upload.

Ik tijdens het googlen dezelfde effecten op de midi implementation guides van diverse andere Rolands gezien, vandaar dat ik de header van de Sysex data editbaar heb gemaakt. Kan zijn dat je alleen een device id op moet zoeken en dat het dan voor jouw Roland werkt.

Ik heb dit vroeger al eens gedaan met een vriendje van school met een MC-303 in Cakewalk, zaten ook allerlei extra effecten in. Leuk dat het nu nog steeds kan

Gebruiksaanwijzing: downloaden, uitpakken en openen. Check bij midi settings of je de juiste poort hebt. Hopelijk werkt het allemaal ...

Let op: hij werkt dus alleen in Chrome.
Bijgevoegde miniaturen:
Klik op de afbeelding voor een grotere versie

Naam:  Screenshot.jpg‎
Bekeken: 34
Grootte:  30,3 KB
ID: 115394  
Bijgevoegde bestanden:
Bestandstype: zip FP30 editor.zip‎ (383,3 KB, 10x gelezen)
loveyourjunos is offline   Met citaat reageren
Oud 17 april 2017, 18:55   #2
MeneerJansen
y = sin (x)
 
MeneerJansen's schermafbeelding
 
Geregistreerd: 6 januari 2017
Woonplaats: Ergens in de Haaglanden.
Berichten: 444
Ik heb die piano niet, maar aangezien jij "iets" kunt met SysEx data trek ik de stoute schoenen aan en vraag ik het aan je. Ik heb een Korg Monologue en de software van Korg zelf kan niet een "patch" (lees: hoe je aan de knoppen gedraaid hebt) van elke knop de instelling weergeven. Dus als je een zg. patch hebt opgeslagen in het geheugen van de Korg dan kom je er nooit meer achter hoe die patch precies is gemaakt.

Maar de Korg kan wel al z'n instellingen dumpen via SysEx data. Alleen was, voor zover ik wist, nergens documentatie te vinden over hoe die SysEx data in elkaar steekt. Met "reverse engineering" heb ik kunnen achterhalen hoe je de SysEx data moet interpreteren en daar heb ik een Linux (lees: Bash) shell script voor geschreven. Je laat de Korg z'n SysEx data dumpen via USB en het script tovert een tabel tevoorschijn met hoe je aan alle knoppen moet draaien om de patch "na te maken".

Maar niet veel mensen hebben Linux op hun computer. Zo'n web interface die jij maakte voor de Roland FP-30 die de SysEx data in Chrome weergeeft is geweldig!

Ben jij goed genoeg met computers om een Linux shell script om te zetten in zo'n Chrome pagina? Of kun jij dat makkelijk in elkaar programmeren als jou wordt verteld hoe de SysEx data dump v/d Korg Monologue geïnterpreteerd moet worden? Wat goed van jou dat je het in Chrome hebt gedaan. Hoe heb jij dat geprogrammeerd? In HTML? En hoe krijg jij de SysEx dump v/d Roland in een bestand? Ik moet dat op Linux via het MIDI gedeelte v/d geluids-driver ALSA doen. Ik dump de inhoud v/e terminal in een tekst bestand en dat lees ik dan uit.
MeneerJansen is offline   Met citaat reageren
Oud 17 april 2017, 20:39   #3
loveyourjunos
Vintage lid
 
Geregistreerd: 17 december 2006
Woonplaats: Vught
Berichten: 1.649
Tsja moeilijk te zeggen of ik dat makkelijk kan... de techniek achter de pagina is niet heel ingewikkeld. Ik ben met deze voorbeelden begonnen: https://webaudio.github.io/web-midi-api/#examples verder ben ik wel handig met html, javascript en jquery zodat ik de knoppen die een bepaald stukje van de sysex data variabel maken redelijk snel in elkaar kon zetten.

Met linux heb ik 0,0 ervaring. Wat zou je op zo'n pagina willen? Patches versturen? Of de knoppen stand tonen? Ik begrijp het niet helemaal
loveyourjunos is offline   Met citaat reageren
Oud 18 april 2017, 08:49   #4
audiocollage
Vintage lid
 
Geregistreerd: 30 april 2009
Woonplaats: Antwerpen
Berichten: 2.400
Een Midi editor bouwen voor de diverse OS'sen kan je ook met CTRL ...
audiocollage is offline   Met citaat reageren
Oud 18 april 2017, 13:20   #5
MeneerJansen
y = sin (x)
 
MeneerJansen's schermafbeelding
 
Geregistreerd: 6 januari 2017
Woonplaats: Ergens in de Haaglanden.
Berichten: 444

Oorspronkelijk geplaatst door loveyourjunos Bekijk bericht
Tsja moeilijk te zeggen of ik dat makkelijk kan... de techniek achter de pagina is niet heel ingewikkeld. Ik ben met deze voorbeelden begonnen: https://webaudio.github.io/web-midi-api/#examples verder ben ik wel handig met html, javascript en jquery zodat ik de knoppen die een bepaald stukje van de sysex data variabel maken redelijk snel in elkaar kon zetten.

Met linux heb ik 0,0 ervaring. Wat zou je op zo'n pagina willen? Patches versturen? Of de knoppen stand tonen? Ik begrijp het niet helemaal
Het script werkt als volgt. Eerst openen je een terminal venster en type je "korg.sh". Als je op Enter gedrukt hebt dan zie je dit:



Dus het script vraagt je om op een paar knoppen van je Synth te drukken zodat die de SysEx data te dumpt over USB. Daarna moet je op je computer op CTRL + C drukken en dan zie je in het terminal venster de volgende tabel:



In de tabel staat dus opgesomd wat de SysEx data betekent. Ik dacht dat de webpagina die jij maakte ongeveer hetzelfde doet. Toch?
MeneerJansen is offline   Met citaat reageren
Oud 18 april 2017, 13:57   #6
loveyourjunos
Vintage lid
 
Geregistreerd: 17 december 2006
Woonplaats: Vught
Berichten: 1.649
Stuurt hij het in 1 x uit?

Kun je eens de ruwe sysex data posten? Plus de mapping (wat zijn de parameters, wat zijn de variabele waarden)

ik denk dat het wel te doen is om het op te knippen en de waardes van de knoppen op het scherm in te stellen op basis van de data. Dan kun je de stand van de knoppen zoals in de patch opgeslagen aflezen van het scherm.
loveyourjunos is offline   Met citaat reageren
Oud 18 april 2017, 19:26   #7
MeneerJansen
y = sin (x)
 
MeneerJansen's schermafbeelding
 
Geregistreerd: 6 januari 2017
Woonplaats: Ergens in de Haaglanden.
Berichten: 444

Oorspronkelijk geplaatst door loveyourjunos Bekijk bericht
Stuurt hij het in 1 x uit?

Kun je eens de ruwe sysex data posten? Plus de mapping (wat zijn de parameters, wat zijn de variabele waarden)

ik denk dat het wel te doen is om het op te knippen en de waardes van de knoppen op het scherm in te stellen op basis van de data. Dan kun je de stand van de knoppen zoals in de patch opgeslagen aflezen van het scherm.
De SysEx data ziet er ong. zo uit:

DUMP 1:
Code:
 24:1   System exclusive           F0 42 30 00 01 44 40 00 50 52 4F 47 4F 6E 20 00 74 68 65 20 72 75 6E 64 00 00 00 00 7E 7F 0A 26 00 02 4D 29 00 00 13 11 17 00 10 2D 6A 22 08 02 18 42 32 00 0C 24 00 20 38 22 06 66 00 7F 53 00 45 51 44 76 07 08 00 00 00 36 00 00 00 00 00 02 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3F 00 04 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 08 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 44 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 42 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 49 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 00 7F 00 01 36 00 00 00 00 00 00 00
 24:1   System exclusive           00 00 00 00 00 00 00 00 00 00 00 00 49 00 7F 02 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4B 00 04 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 24:1   System exclusive           00 00 00 00 00 00 00 F7
SysEx data begint altijd met het hexadecimale getal F0 en eindigt met F7. Verder staan er tussen de bovenstaande data-dump woorden en getallen die ik niet nodig heb. Die filter ik er uit en dan ziet het er bijv. zo uit:

DUMP 2:
Code:
F0 42 30 00 01 44 40 00 50 52 4F 47 4F 6E 20 00 74 68 65 20 72 75 6E 64 00 00 00 00 7E 7F 0A 26 00 02 4D 29 00 00 13 11 17 00 10 2D 6A 22 08 02 18 42 32 00 0C 24 00 20 38 22 06 66 00 7F 53 00 45 51 44 76 07 08 00 00 00 36 00 00 00 00 00 02 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3F 00 04 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 08 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 44 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 42 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 49 00 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 00 7F 00 01 36 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 49 00 7F 02 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4B 00 04 7F 00 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 F7
Dan begint het grote rekenen.

Eerst zet ik de boel om van Hex naar decimale getallen. Zo'n decimaal getal is bijv. het percentage dat ik het mixer-volume van VCO1 (de eerste oscillator) open heb gedraaid. Maar let op: er is nog een tweede getal uit de SysEx dump van belang. Dat 2e getal bepaalt of ik de draaiknop verder dan de helft (12 uur) heb gedraaid of niet. Zo nee: dan moet het dec. getal omgezet worden naar een getal tussen de 0% en 50%. Zo ja: dan moet het omgezet worden naar een getal tussen de 51% en 100%.

Volg je het nog?

Het wordt nog lastiger. Ik zal een voorbeeld geven. Zie Dump 2. Getal nummer 31 bepaalt het volume in procenten. Getal nummer 24 bepaalt of het volume verder is gedraaid dan 50%. Maar getal nummer 24 kan vele waarden hebben. Als nr. 24 groter is dan 64 (decimaal) dan is het volume voorbij de 50% gedraaid. Als nr. 24 kleiner is dan 64 dan zit het volume tussen de 0% en 50%.

Sommige draaiknoppen van de Korg Monologue synth hebben een nog ingewikkelder rekenmethode voor de waarde. Het "tweede getal" moet dan deelbaar zijn door 4 en de rest moet dan 2 of 0 zijn voor volume groter of kleiner dan 50%, etc. etc.

Hoe lastig of eenvoudig de SysEx data van jouw FP-30 digitale Roland piano te interpreteren is weet ik niet. Zou de SysEx data van mijn Korg ook in zo'n html pagina kunnen?
MeneerJansen is offline   Met citaat reageren
Oud 18 april 2017, 19:31   #8
MeneerJansen
y = sin (x)
 
MeneerJansen's schermafbeelding
 
Geregistreerd: 6 januari 2017
Woonplaats: Ergens in de Haaglanden.
Berichten: 444
P.S. Ik achterhaal die SysEx data door op de command line continu de door de synth afgegeven MIDI data te bekijken. Het commando dat ik gebruik is:
Code:
aseqdump -p 24:1 | grep -v Clock
De output zier er ongeveer zo uit:
Code:
Waiting for data. Press Ctrl+C to end.
Source  Event                  Ch  Data
 24:1   Start
 24:1   Note on                 0, note 52, velocity 127
 24:1   Note off                0, note 52, velocity 64
 24:1   Note on                 0, note 51, velocity 127
 24:1   Note off                0, note 51, velocity 64
 24:1   Note on                 0, note 49, velocity 127
 24:1   Stop
 24:1   Note off                0, note 49, velocity 64
Nadat ik de Korg opdracht heb gegeven om de SysEx data te dumpen verschijnt op de command line v/d terminal wat ik hierboven postte. De SysEx data staat dus tussen de MIDI data.
MeneerJansen is offline   Met citaat reageren
Oud 19 april 2017, 05:54   #9
JelleWaltman
Vintage lid
 
Geregistreerd: 9 augustus 2005
Woonplaats: Amsterdam
Berichten: 879
Bedankt voor de info! Die fp30 is sowieso al een tof ding maar zo nog leuker
JelleWaltman is offline   Met citaat reageren
Oud 19 april 2017, 11:57   #10
loveyourjunos
Vintage lid
 
Geregistreerd: 17 december 2006
Woonplaats: Vught
Berichten: 1.649
Bedankt Jelle

ik heb in het weekend weer tijd om er wat verder aan te sleutelen en uit te zoeken wat alle efx parameters precies doen. Hopelijk wordt het dan wat gebruiksvriendelijker en duidelijker in het gebruik...

@Mr Jansen

Neem de knop EFX parameter 1 als voorbeeld:

[240, 65, 16, 66, 18, 64, 3, 4, 86, 99, 247]

[Start System exclusive, Header met apparaat identifier , EFX param 1 Waarde van knop, Checksum, Einde system exclusive]

de checksum is de som 128 - ((64+3+4+86) % 128 ) (99 dus in dit geval) die zal er op de monologue ook inzitten.

Sommige messages hebben een Most en Least siginificant bit (MSB / LSB) ik denk dat dat ook op de Monologue gebeurt?

[240, 65, 16, 66, 18, 64, 3, 0, 1, 33, 27, 247] (Selecteer Autowah effect)

deze twee getallen moet je zien als 1 * 128 + 33 (151)



Als jij deze onderdelen aan kunt geven maak ik een paginaatje voor je
loveyourjunos is offline   Met citaat reageren
Oud 20 april 2017, 11:37   #11
audiocollage
Vintage lid
 
Geregistreerd: 30 april 2009
Woonplaats: Antwerpen
Berichten: 2.400
@loveyourjunos ik heb je werk toch in aktie kunnen bekijken op m'n Raspberry Pi danwel, waarop standaard chromium draait (zelf heb ik geen FP-30).
Mooi dat er ook op die manier midi-editors kunnen gemaakt worden (hoewel een extra medium ook wel nadelen geeft => verdeeldheid). Toch knap gemaakt in elk geval.
Heb je al die code zelf moeten ingeven of is daar een (script-)editor voor ? Kun je iets meer vertellen over de werkwijze ?
Zo te zien lijkt me (nog) meer werk dan bij de windows API's.
audiocollage is offline   Met citaat reageren
Reactie

  Synthforum » De Studio » MIDI

Discussietools Zoek in deze discussie
Zoek in deze discussie:

Geavanceerd zoeken

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

vB-code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Forumnavigatie

Soortgelijke discussies
Discussie Auteur Forum Reacties Laatste bericht
Extended manual Roland TR-8 met "hidden features" screech powers Synthesizers en synth-modules 11 27 juli 2015 18:52
stagepiano: cp-300 p-250 fp-7 of fp-9 michielzweers Te koop/ruil gevraagd 2 7 december 2011 18:43
Wie o wie heeft Roland fp-4 of fp-2 te koop? Lauran Te koop/ruil gevraagd 1 17 november 2010 20:59
Wat mag een Roland fp-4 of fp-2 kosten? Lauran Prijswijzer 4 12 april 2010 14:28


Alle tijden zijn GMT +1. Het is nu 08:37.


Design by Vjacheslav Trushkin, color scheme by ColorizeIt! Forumsoftware: vBulletin®, versie 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright ©2001 - 2017 Stichting Synthforum Nederland