Onderwerp: Shell script om hex waarden v/e synthesizer te lezen
Ik heb een speetje gekocht: een synthesizer. Een leuk goedkoopje: de Korg Monologue. Dat ding is Midi compatibel en kan z'n instellingen dumpen via Midi. Ik geef dan het commando "aseqdump -p 24:1 | grep -v Clock" en dan krijg ik de volgende output:
$ aseqdump -p 24:1 | grep -v Clock
Waiting for data. Press Ctrl+C to end.
Source Event Ch Data
24:1 System exclusive F0 42 30 00 01 44 40 00 50 52 4F 47 44 69 72 00 74 79 20 67 72 69 74 44 00 00 00 00 7C 00 04 22 00 7F 00 00 00 00 00 11 00 00 50 42 69 33 41 02 00 15 32 00 0C 24 00 22 17 4C 06 66 00 7F 53 00 45 51 44 6F 04 10 00 00 00 00 00 00 00 00 00 06 00 7F 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 3C 00 04 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3B 08 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 39 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 00 7F 00 00 00 00 00 00 00
24:1 System exclusive 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 7F 00 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 00 7F 00 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 00 00 7F 00 3F 00 00 00 00 00 00 00 00 00 00 00 00
24:1 System exclusive 00 00 00 00 00 00 00 F7
Met wat reverse engineering kan ik er wel achter komen welke v/d hexadecimale nummers bij welke knop op mijn synth horen. Maar dan blijft iedere keer het helse karwij over om tot 30 te tellen voor het getalletje dat bij de knop "Cutoff frequency" hoort bijvoorbeeld. En dan met een rekenmachine het hexadecimale getal omzetten in een decimaal getal met mijn rekenmachine. En dat voor alle 25 draaiknoppen en schakelaars. No way!
Enfin, ik wil daar een klein en eenvoudig shell scriptje voor schrijven. Het moet simpel wat ik ben bij lange na geen programmeur. Ik mag wel zeggen: fikse amateur! Het lukt me bijvoorbeeld niet eens om bovenstaande output van grep naar een text bestand te krijgen. Dit doe ik namelijk:
$ aseqdump -p 24:1 | grep -v Clock > aseqdump.txt
Het resulterende tekst bestand (aseqdump.txt) is leeg! Bestandsgrootte = nul! Hoe kan dat nou? Moet te maken hebben met het feit dat ik d.m.v de schakeloptie "-v Clock" alle regels met het woord "Clock" er uit filter. Want als ik het grep commando niet gebruik wordt het tekst bestand wel gevuld. Je moet beseffen dat die synthesizer tig keer per seconde het woordje "24:1 Clock" echoed op de command line. Zal wel te maken hebben met zijn interne klok (Midi muziekinstrumenten kunnen synchroon lopen met één klok).
Wat ik wil is de inhoud v/h commando "aseqdump -p 24:1 | grep -v Clock" kopiëren naar een text bestand en dat hex getal voor hex getal inlezen (een boel v/d output hoef ik niet te weten, alleen bepaalde hex getallen die voor mij van interesse zijn).
Ik hoop dat jullie het als en uitdaging zien om mij stap voor stap verder te helpen.
P.S. Op de website van Korg is helaas geen software te downloaden die dit kan. Uploaden en downloaden van instellingen van en naar de Korg wel maar dan weet je nog niet wat ik weten wil.
P.S. 2 Ik heb het commando grep vervangen voor sed en dat werkt op de command line, maar ook die output krijg ik niet in een tekst bestand. Hè?