Sysex, ich werd hier noch wahnsinnig

sushiluv

||||||||||
Hallo,

ich versuche gerade einen editor für den korg prophecy zu bauen. ein paar sachen funktionierne schon aber jetzt steh ich mal wieder an, sysex bringt echt mein hirn zum schmelzen. :floet:

ich muss eine regler,bzw. knob dazu bringen werte von -99 bis +99 zu senden,
das versuche ich damit:

midiout(0, {0x00,0xF0, 0x42, 0x34, 0x41, 0x41, 0x01, 0x15, 0x02,x*99,0x01, 0xF7});

klappt aber gar nicht, dieses msb lsb macht mich wahnsinnig.

hat bitte jemand die geduld sich mal beigefügtes fot anzusehen und mir zu sagen wie der sysex string auszusehen hat? ich sitz hier seit stunden und bekomme es nicht und nicht hin.

bin für jede erklärung mehr als dankbar.

die relevanten teile hab ich gelb markiert.

danke, danke, danke!
 

Anhänge

  • hirnschmelze.jpg
    hirnschmelze.jpg
    80 KB · Aufrufe: 170
sowas wollte ich schon mal für den Korg MS2000 und seine Modulationsmatrix machen, die lässt sich nämlich auch nur mit diesem lsb qutasch ansteuern.. hast du schon mal puredata ausprobiert oder vielleicht synthedit damit knnst du dir nen plugin basteln das die entsprechenden werte an den midi ausgang schickt
 
hi,

dieses msb lsb zeug ist echt mühsam ...

ich möcht das ganze aber defintiv über den lemur steuern, aber das wird noch eingies an mühsamer arbeit mit sich bringen ;-)
 
sushiluv schrieb:
midiout(0, {0x00,0xF0, 0x42, 0x34, 0x41, 0x41, 0x01, 0x15, 0x02,x*99,0x01, 0xF7});

Also mit Gewalt geht da Nichts! ;-)

Ich versuche mal einen Ansatz hinzupfriemeln (lang, lang ists her)

Als erstes musst du rausfinden wie ein Singed-Int auf der Zielplattform aussehen muss. Vermutlich is hier -99=0 und 99=198.
Das kann aber auch sein, dass du einfach ein bestimmtes Singed-Bit setzen mußt. http://de.wikipedia.org/wiki/Integer_(Datentyp)
Also auslesen oder weiter in der Sysex-Spec nachsehen.

Du willst ja deinen Wert auf die zwei Byts aufteilen.
Dazu mußt du das laut Spec nach 7-Bit hat abschnibbeln. (Siehe | )

198 wäre ja 1 | 100 0110. Dh alles über 127 = 0 | 111 1111 passt dir nicht mehr in das LSB.
Also abschneiden und bitshiften. Wäre für das MSB floor(x*198) / 16). Dann steht der Einser vor dem | ganz am Ende = 0000 0001

Für das LSB mußt du dann den vorderen teil cuten. LSB = (x*198)-(floor((x*198)/16)*16)

Der Midi-Aufruf ist dann kein großer Zauber:
midiout(0, {0x00,0xF0, 0x42, 0x34, 0x41, 0x41, 0x01, 0x15, 0x02,LSB,MSB, 0xF7});

Wenn du jetz das Minus über ein Bit setzen müsstest dann multiplizierst du nicht mit 198 sondern mit 99 und addierst beim msb singedbitposition * singedbit drauf.

Hoffe ich habe keinen Wurm reingebracht
 
Hallo automake,

danke fürs reply :) ich versuch da mal durchzusteigen, hehe

folgendes habe ich rausgefunden. es scheint als ob das letzte byte eine art flag ist. wenn der wert positiv ist, dann ist es 00. wird der wert negativ wird es auf 01 gesetzt, nun hab ich den controller so weit, dass er mir den wert 0-99 schon ausgibt, allerdings dann direkt auf -99 hüpft.

das ist echt zum mäuse melken, man bekommt das gefühl, die hersteller wollen gar nicht, das der gemeine user dar ummacht, haha.
 
sushiluv schrieb:
das ist echt zum mäuse melken, man bekommt das gefühl, die hersteller wollen gar nicht, das der gemeine user dar ummacht, haha.

Ne dafür war Sysex auch nie gedacht! Das ist klassische Datenkommunikation auf (fast) unterster Ebene.

Ich mein wenn du jetzt nen Synth modifizieren willst kannst du auch schlecht einfach mal drauf loslöten und hoffen das es klappt - da musst du auch erstmal das Handwerk und die Theorie dahinter verstehen.
Natürlich kann du dich in der digitalen Domäne idR langsam rantasten ohne gleich etwas zu schrotten. Gerade das ist ja das Schöne.
 
Hallo

auf dem Bild habe ich erkannt: [EG1] ParamID 30= Start Level (-99~+99)

also (-99~+99):

wichtig für Dich ist "F0 42 30 41 41 01 1E 00 20 01 F7"

Fett im String obern: 30 für EG1 und 20 für MSB ( der Wert verändert sich von -99~+99 )

( 000267AD 49) ist nicht relevant für Dich, betrifft nur mein Midisetup



TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
000267AD 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 20 01 F7
000267EF 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 21 01 F7
00026821 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 23 01 F7
00026852 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 26 01 F7
00026894 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 28 01 F7
000268B7 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 29 01 F7
00026938 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2B 01 F7
0002698A 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2C 01 F7
000269CC 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2E 01 F7
000269ED 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2F 01 F7
00026A10 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 31 01 F7
00026A62 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 33 01 F7
00026A84 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 34 01 F7
00026AD5 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 36 01 F7
00026B27 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 37 01 F7
00026BD9 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 39 01 F7
00026C2B 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 3A 01 F7
00026C5D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 3C 01 F7
00026CFF 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 3E 01 F7
00026D61 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 3F 01 F7
00026DA4 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 41 01 F7
00026DE5 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 42 01 F7
00026E17 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 44 01 F7
00026E89 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 45 01 F7
00026ECA 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 47 01 F7
00026F1D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 49 01 F7
00026F9E 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 4A 01 F7
00026FE0 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 4C 01 F7
00027002 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 4D 01 F7
00027016 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 4F 01 F7
00027036 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 50 01 F7
00027058 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 52 01 F7
0002706B 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 54 01 F7
0002708B 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 57 01 F7
000270AD 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 58 01 F7
000270CF 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 5B 01 F7
000270F0 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 5D 01 F7
00027112 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 5F 01 F7
00027144 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 60 01 F7
00027187 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 62 01 F7
000271A8 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 63 01 F7
000271EA 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 65 01 F7
0002721C 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 66 01 F7
0002724D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 68 01 F7
00027390 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 6A 01 F7
000273B1 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 6D 01 F7
000273D4 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 6E 01 F7
000273E7 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 70 01 F7
000273FA 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 71 01 F7
0002740D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 73 01 F7
0002741B 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 76 01 F7
0002743D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 78 01 F7
0002745F 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 79 01 F7
00027480 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 7B 01 F7
000274A2 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 7C 01 F7
000274B5 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 7E 01 F7
000274E5 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 7F 01 F7
000274F9 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 00 00 F7
0002750A 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 01 00 F7
0002752C 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 02 00 F7
0002753D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 04 00 F7
0002755F 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 05 00 F7
00027581 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 07 00 F7
000275A2 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 08 00 F7
000275C4 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 0C 00 F7
000275E6 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 0D 00 F7
00027608 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 0F 00 F7
00027629 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 10 00 F7
0002763C 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 12 00 F7
0002765E 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 14 00 F7
0002766F 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 15 00 F7
00027691 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 17 00 F7
000276A3 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 18 00 F7
000276C5 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 1A 00 F7
000276D6 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 1C 00 F7
000276F8 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 1D 00 F7
0002771A 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 20 00 F7
0002773C 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 22 00 F7
0002776E 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 24 00 F7
00027780 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 25 00 F7
000277A2 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 28 00 F7
000277C3 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2A 00 F7
000278F6 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2C 00 F7
00027917 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2D 00 F7
00027929 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 2F 00 F7
0002793B 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 32 00 F7
0002794D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 34 00 F7
0002795E 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 35 00 F7
00027970 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 38 00 F7
00027982 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 3A 00 F7
000279A4 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 3D 00 F7
000279B5 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 3F 00 F7
000279D7 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 42 00 F7
000279FA 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 44 00 F7
00027A0B 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 45 00 F7
00027A1D 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 47 00 F7
00027A3F 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 48 00 F7
00027A51 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 4C 00 F7
00027A72 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 4D 00 F7
00027A84 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 4F 00 F7
00027AA6 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 50 00 F7
00027AC7 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 52 00 F7
00027AE9 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 54 00 F7
00027B0B 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 57 00 F7
00027B1E 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 58 00 F7
00027B3F 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 5A 00 F7
00027B61 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 5C 00 F7
00027B83 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 5D 00 F7
00027BA5 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 5F 00 F7
00027BD6 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 60 00 F7
00027BF8 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 62 00 F7
00027C2A 49 -- F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 42 30 41 41 01 1E 00 63 00 F7
 
ach ja:

wenn Du beim Prophecy

GLB-15 [SysEx Filter] Transmit
XMT: on RCV: Enable

stellst,
und bei Deinem Sequencer Sysex Filter abstellst,

kannst Du alle Parameter ausgeben und aufzeichnen und hast Deine Sysex-Daten im Editor zum Anschauen und Nachprogrammieren :nihao:

edit:

noch im Netz gefunden:

http://www.omega-art.com/logic/tut/bin.html#sysex
 
Cool. Den HP16C hätte ich damals gerne gehabt, hat aber nur für einen 10C gereicht.

Wer einen Mac sein eigen nennt, hats noch einfacher: Programm "Rechner" aufrufen und bei "Darstellung" auf "Programmierer" stellen. Da bekommt man alles: Hex und sogar binär.
 
cool, danke fùr den input. die floor kiste hats dann, mit hilfe vom liine forum, voll gebracht. das mit den eg's an die breakpoints vom lemur anpassen war auch nicht so easy. :)

komm ansonsten mit dem editor ganz gut weiter, die enorme parameteranzahl ist halt heftig viel an arbeit, deswegen wirds wohl noch ein weilchen dauern bis zur fertigstellung.

danke euch,
martin
 


Zurück
Oben