sys-ex data converteren via MIDI-ox

meesha74

Muzikant
Lid sinds
5 november 2004
Berichten
2.252
Locatie
Hilversum
Hulp gezocht bij hetvolgende:

Ik wil mijn Roland JV80 kunnen editen via mijn UC33 midi controller. Nou is dit eigenlijk niet mogelijk omdat de parameters van de JV80 alleen via sys-ex messages kunnen worden veranderd, zoals gedaan wordt wanneer je een editor gebruikt. (zoals deze

De UC 33 kan niet worden geprogrammeerd om sys-ex data aan z'n controllers toe te wijzen, echter het schijnt mogelijk te zijn om mbv. MIDI-ox inkomende controller data (afkomstig van de uc33) om te zetten naar sys-ex data (waarmee verschillende parameters in de JV80 kunnen worden gewijzigd)

Nu kan ik mbv de Midi monitor van MIDI-ox zien wat er gebeurt wanneer ik in de editor bepaalde parameters verander, alleen ik weet niet hoe ik die informatie moet interpreteren en hoe ik MIDI-ox kan instellen zodat normale controller data kan worden omgezet naar de juiste sys-ex data.

Kan iemand me daarbij helpen?

Voorbeeld: Onderstaande data verschijnt in de midi monitor wanneer ik in de editor aan de "Cutoff freq" ga schuiven.


TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
000C7680 2 -- -- Buffer: 1 Bytes SysEx Continue
SYSX: 41
000C7680 2 -- -- Buffer: 8 Bytes SysEx Continue
SYSX: 49 4E 49 54 2E 44 41 54
000C7680 2 -- -- Buffer: 34 Bytes SysEx Continue
SYSX: 7B F7 49 54 2E 44 41 54 41 20 20 20 00 00 00 00 00 00
SYSX: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000C7680 2 -- F0 Buffer: 2 Bytes System Exclusive
SYSX: F0 F7
000C7680 2 -- -- Buffer: 1 Bytes SysEx Continue
SYSX: 41
000C7680 2 -- -- Buffer: 8 Bytes SysEx Continue
SYSX: 00 00 00 00 00 00 00 00
000C7680 2 -- -- Buffer: 115 Bytes SysEx Continue
SYSX: 5A F7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
SYSX: 00 2F 00 00 00 00 00 0A 00 00 00 00 6B 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
SYSX: 01 00 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00
000C7680 2 -- F0 Buffer: 2 Bytes System Exclusive
SYSX: F0 F7
000C7680 2 -- -- Buffer: 1 Bytes SysEx Continue
SYSX: 41
000C7680 2 -- -- Buffer: 8 Bytes SysEx Continue
SYSX: 00 00 00 00 00 00 00 00
000C7680 2 -- -- Buffer: 115 Bytes SysEx Continue
SYSX: 4F F7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00
000C7680 2 -- F0 Buffer: 2 Bytes System Exclusive
SYSX: F0 F7
000C7680 2 -- -- Buffer: 1 Bytes SysEx Continue
SYSX: 41
000C7680 2 -- -- Buffer: 8 Bytes SysEx Continue
SYSX: 00 00 00 00 00 00 00 00
000C7680 2 -- -- Buffer: 115 Bytes SysEx Continue
SYSX: 4E F7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00
000C7680 2 -- F0 Buffer: 2 Bytes System Exclusive
SYSX: F0 F7
000C7680 2 -- -- Buffer: 1 Bytes SysEx Continue
SYSX: 41
000C76AA 2 -- -- Buffer: 8 Bytes SysEx Continue
SYSX: 00 00 00 00 00 00 00 00
000C76AA 2 -- -- Buffer: 115 Bytes SysEx Continue
SYSX: 4D F7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SYSX: 00 00 00 00 00 00 00
000C76AA 2 -- F7 Buffer: 2 Bytes SysEx End
SYSX: 4D F7
 
Dat ziet er niet goed uit

bijvoorbeeld:
SYSX: F0 F7

Dit is een compleet zinloze tekenreeks.

Verder zie ik twee bytes met de waarde F7 (Sysex End) zonder dat er ergens een F0 (Sysex Start) tussenin zit.
Dat kan volgens mij nooit. Maargoed, misschien begrijp ik de output van Midi-ox dan niet (kan iemand mij uitleggen hoe ik de voorbeelddata moet interpreteren?).
 
Ik ben inmiddels iets verder:

Ik heb het programma Bome's Midi translator geinstalleerd en daarmee kan ik nu de sysex data van mijn korg x5d editor bekijken en eventueel vertalen.

Zo krijg ik bijv wanneer ik de cutoff verander devolgende data:

F0 42 30 36 41 1F 00 oo 00 F7

Het lijkt erop dat ik een gewone control change kan vertalen naar deze sysex string..... Nu krijg ik alleen de editor voor de jv80 niet meer aan de praat :(
 
Ben weer iets verder.

Ik heb nu ontdekt hoe ik kan zien wat de sysex message is van de verschillende parameters van de jv80. Nu is mijn vraag. Hoe kan ik in midi-ox de juiste vertaalslag maken van een control change naar sys-ex?

Ik weet wel hoe ik iets kan "transformeren" (via Midi Data mapping Transforms). Als input moet ik dan gewoon het controller nummer invoeren, maar wat vul ik bij de output als sys-ex in?

Ik heb bijv. ontdekt dat de cutoff freq devolgende sys-ex string geeft:
F0 41 10 46 12 00 08 28 4A ** 06 F7

Waarbij ** de waarde aangeeft tussen 00 en 7F (0 t/m 127). Het getal 06 dat na ** komt verandert ook steeds...
Welke waarde moet ik nu invullen in MID-ox in het hexadecimale getal voor de sys-ex output? Oftewel wat vul ik in op de plaats van het ** en van 06? (het is natuurlijk de bedoeling dat de control change van 0 tot 127 wordt omgezet in een waarde van eveneens 0 tot 127 in de sys-ex data.

Er staat wel in het MIDI-ox data mapping schermpje hetvolgende:
"Output number fields: -1 means use Input field value"

Kan ik daar iets mee???
 
je bent op de goede weg - je moet inderdaad de input value vd controller op de plek van de ** zetten - maar dan ben je d'r nog niet. zoals je al zei verandert die '06 byte' ook voortdurend. dat is een checksum byte die wordt meegezonden om de ontvangen data te kunnen valideren.

als ik me niet vergis kan Midi-ox de juiste checksum (het Roland type) automatisch voor je genereren. zoniet dan heb je een serieus obstakel!
 
Ja maar dat zou betekenen dat ik voor een draaiknop (met waarden van 0 tot 127), 127 verschillende conversies moet maken?? Ik snap het nog niet helemaal.

Ik zag wel op een afbeelding van Bome's midi translator dat er op de plek van ** en 06 de oo tekentjes staan. Is dat wellicht een mogelijkheid?

miditran.gif
 
dat zou betekenen dat ik voor een draaiknop (met waarden van 0 tot 127), 127 verschillende conversies moet maken

nee. de waarde van die knop gaat al van 0 tot 127 = precies het bereik van midi controller data.
je kunt dus die waarde rechtstreeks overnemen in je uitgaande sysex string. uitgaande byte 3 = inkomende byte 6

AFAIK staan die oo tekentjes voor de veranderlijke data.
je ziet dat hier bijv de LFO rate altijd in de vorm van de string F0 41 32 00 00 oo F7 binnenkomt. het enige deel dat verandert is de data zelf (aangeduid met oo), de rest is eigenlijk verpakking. De uitgaande string B0 00 oo moet je dus lezen als "B0 00 plus het echte data byte".
 
Opmerking 1:
In de screenshot ziet het er naar uit dat sysex berichten naar controllers worden geconverteerd, en niet andersom.

Opmerking 2:
Bij de meeste roland synths (die ik ken) mag je in plaats van de berekende checksum waarde 0 meegeven.
 
EUREKA!!!!!!! :dubbel:
Het Werkt!!! Ik kan nu een controller van mijn UC33 zó transformeren met Bome's Midi translator, dat hij de juiste SYSEX data verstuurt naar m'n jv80 zodat ik ALLE Parameters realtime kan wijzigen!!!! Het enige is dat er op het display steeds komt te staan "checksum error" (dat had ik wel verwacht) maar het werkt verder wel. Dankzij de tip van NiFF. :halleluja

Oftewel:

Wil je je (oude) synth zonder draaiknoppen maar wél sysex mogelijkheden, kunnen editen met een midi controller:

Bome's Midi Translator

(Ik ben zo trots op mezelf...)
 
Bij de meeste roland synths (die ik ken) mag je in plaats van de berekende checksum waarde 0 meegeven.

dat is weird...

Roland gaat in de documentatie altijd vrij uitgebreid op de checksum business in en volgens mij niet zonder reden. ik kan me herinneren dat bijvoorbeeld de ouwe MKS-80 maar ook de MC-303 heel pietluttig waren op dit punt.
 
Ja, het is wel vreemd. Het gekke is ook dat er inderdaad een melding van een checksum error op het display verschijnt, (lijkt me logisch) maar het werkt wel! Ik moet er nog een beetje verder mee experimenteren maar blijkbaar heeft de jv80 er geen probleem mee!

(ik zeg wel overal "jv80" maar eigenlijk heb ik een jv880, maakt verder niet zoveel uit denk ik...)
 
Back
Top