Ich besitze einen Microkorg von Korg (ist ein Synthesizer). Da ich im Moment noch kein Midi Interface habe, um damit neue Patches auf das Gerät zu laden, habe ich mal versucht die Einstellungen aus den *.prg Dateien zu lesen. Leider steht da für mich nur unleserliches Zeug drin. Im Prinzip suche ich nach Sachen wie Wellenformen, Mixerwerte, Effekte etc. Eine Beispieldatei ist im Anhang, aber wie gesagt, Notepad ++ gibt mir nichts brauchbares aus. Wie ist die Datei codiert, und wie decodiere ich sie? Der Microkorg wird übrigens über SysEx (System Exclusive) über Midi gefüttert. Danke
Das scheint eine Midi-Datei zu sein, jedenfalls ist der Midi-Header "MThd" enthalten. Das Format ist im weiteren hier http://www.sonicspot.com/guide/midifiles.html beschrieben.
Wow, stimmt. Na dass kann dauern zum decodieren :P Aber danke dir. Evtl sollte ich mir ein Script dazu schreiben, dass mir das übersetzt.
Mal ne Frage zum Decodieren. Da steht Variable Längen und nur Werte. Wie unterscheide ich das jetzt? Variabel müsste ja bei dem Beispiel 11001000 noch zwei Bytes folgen. Woran erkenne ich jetzt den Unterschied?
Hallo, ich habe das File mal durch den Midiparser von http://groups.google.com/group/alt.sources/msg/22467419ad4bf416?pli=1 geschoben. Heraus kam folgendes:
1 | <MidiFile 1 tracks |
2 | <MidiTrack 0 -- 4 events |
3 | <MidiEvent DeltaTime, t=0, track=0, channel=None> |
4 | <MidiEvent F0_SYSEX_EVENT, t=0, track=0, channel=None, data='B0X@\x00Bass Ra\x00sp \x02\x03 \x00\x00@\x00<\x06(\x005\x02\x157\x00\x00I\x00\x18F\x00|A\x00P\x18\x01\x00\x00\x7f0\n@\x00B(@\x04#\x00\x00\x00\x00\x12@F\x025#\x00\x00\x01\x1d\x12cPJ\x00m@\x01J6\x00?\x00\x141\x00<n\x13\x10\x02\n\x05\x02L\x0cG\x7f\x00QmB@ bC\x01q\x01\x01@@JL\x00@O@@AAJ\x00LAOAA\x1d\x01\x00XPXPPPP\x00PXPXPPP\x00PP\x0b\x01JJJ\x00JJJJJJJ@JJJJJJ\x7f\x00p\n@B@E\x00\x00\x00\x00\x00\x00\x00@@\x00\x00\x7f\x00\x00\x01\x7f\n\x00@@@\x7f@\x00@\x00@\x00@\x7f\x00\x00@\x00\x7f\x00\x02\n\x03\x02F\x00\x0c\x02@\x03@B@\x08C@Cq\x01\x01@\x00@@@@@@@\x00@@@@@@@\x00@\x00\x01@@@@\x00@@@@@@@\x00@@@@@\x00\x01\x00@@@@@@@\x00@@@@@@@\x00@@\xf7'> |
5 | <MidiEvent DeltaTime, t=0, track=0, channel=None> |
6 | <MidiEvent END_OF_TRACK, t=0, track=0, channel=None, data=''> |
7 | > |
8 | > |
Sehr gut, danke. Das Problem ist jetzt nur, das was lesbar ist, nützt mir nichts. Die anderen Hexvalues sind interessant, da diese die SysEx Messages darstellen. Dazu brauche ich von Korg ein spezielles Handbuch, das suche ich gerade im Internet. Ohne dem geht leider nichts :(
Ich habe jetzt mal die Bytes in Binär umgewandelt und zugeordnet, so wie es hier steht: http://www.korg.de/uploads/tx_softwarecenter/MicroKorg_SYS_EX.txt Allerdings gibt es manche Einstellungen, die einfach nicht so sein können. z.B. das 12te Byte von TABLE 2 : SYNTH PARAMETER ( 1 TIMBRE ) da soll im Bit 6 und 7 nur 00 stehen. Bei mir kommt aber das raus 0100 0000 (0x40) Wo liegt der Fehler? ich habs im Hexeditor nochmal geprüft, da steht das gleiche drin... Fange ich vllt falsch an? Ich habe mich am Patchnamen Orientiert. W ist der erste Buchstabe, also Byte 0, dann folgen weitere Bytes und mein 14tes ist dann der Anfang, in dem Fall 0x3 Was auch komisch ist, dass in dem Fall die Dummybytes auch als Patchnamen-Zeichen missbraucht werden...
1 | ---ANFANG von SysEx--- |
2 | Byte: 14 0x3 0000 0011 |
3 | Byte: 15 0x0 0000 0000 |
4 | Byte: 16 0x7 0000 0111 |
5 | Byte: 17 0x10 0001 0000 |
6 | Byte: 18 0x40 0100 0000 |
7 | Byte: 19 0x0 0000 0000 |
8 | Byte: 20 0x3c 0011 1100 |
9 | Byte: 21 0x0 0000 0000 |
10 | Byte: 22 0x44 0100 0100 |
11 | Byte: 23 0x0 0000 0000 |
12 | Byte: 24 0x5a 0101 1010 |
13 | Byte: 25 0x2 0000 0010 |
14 | Byte: 26 0x2b 0010 1011 |
15 | Byte: 27 0x52 0101 0010 |
16 | Byte: 28 0x1 0000 0001 |
17 | Byte: 29 0x15 0001 0101 |
18 | Byte: 30 0x4b 0100 1011 |
19 | Byte: 31 0x0 0000 0000 |
20 | Byte: 32 0x5 0000 0101 |
21 | Byte: 33 0x46 0100 0110 |
22 | Byte: 34 0x0 0000 0000 |
23 | Byte: 35 0x64 0110 0100 |
24 | Byte: 36 0x1 0000 0001 |
25 | Byte: 37 0x0 0000 0000 |
26 | |
27 | ---TIMBRE1 DATA--- |
28 | Byte: 0 0x64 0110 0100 |
29 | Byte: 1 0x8 0000 1000 |
30 | Byte: 2 0x5 0000 0101 |
31 | Byte: 3 0x0 0000 0000 |
32 | Byte: 4 0x0 0000 0000 |
33 | Byte: 5 0x7f 0111 1111 |
34 | Byte: 6 0x40 0100 0000 |
35 | Byte: 7 0x0 0000 0000 |
36 | Byte: 8 0x40 0100 0000 |
37 | Byte: 9 0x0 0000 0000 |
38 | Byte: 10 0x42 0100 0010 |
39 | Byte: 11 0x40 0100 0000 |
40 | Byte: 12 0x40 0100 0000 |
41 | Byte: 13 0x5 0000 0101 |
42 | Byte: 14 0x0 0000 0000 |
43 | Byte: 15 0x6a 0110 1010 |
44 | Byte: 16 0x23 0010 0011 |
45 | Byte: 17 0x0 0000 0000 |
46 | Byte: 18 0x0 0000 0000 |
47 | Byte: 19 0x22 0010 0010 |
48 | Byte: 20 0x40 0100 0000 |
49 | Byte: 21 0x40 0100 0000 |
50 | Byte: 22 0x0 0000 0000 |
51 | Byte: 23 0x50 0101 0000 |
52 | Byte: 24 0x64 0110 0100 |
53 | Byte: 25 0x0 0000 0000 |
54 | Byte: 26 0x0 0000 0000 |
55 | Byte: 27 0x1 0000 0001 |
56 | Byte: 28 0x49 0100 1001 |
57 | Byte: 29 0xf 0000 1111 |
58 | Byte: 30 0x40 0100 0000 |
59 | Byte: 31 0x40 0100 0000 |
60 | Byte: 32 0x51 0101 0001 |
61 | Byte: 33 0x0 0000 0000 |
62 | Byte: 34 0x7f 0111 1111 |
63 | Byte: 35 0x40 0100 0000 |
64 | Byte: 36 0x0 0000 0000 |
65 | Byte: 37 0x40 0100 0000 |
66 | Byte: 38 0x40 0100 0000 |
67 | Byte: 39 0x0 0000 0000 |
68 | Byte: 40 0x0 0000 0000 |
69 | Byte: 41 0x0 0000 0000 |
70 | Byte: 42 0x7f 0111 1111 |
71 | Byte: 43 0x5e 0101 1110 |
72 | Byte: 44 0x20 0010 0000 |
73 | Byte: 45 0x20 0010 0000 |
74 | Byte: 46 0x78 0111 1000 |
75 | Byte: 47 0x40 0100 0000 |
76 | Byte: 48 0x22 0010 0010 |
77 | Byte: 49 0x0 0000 0000 |
78 | Byte: 50 0x22 0010 0010 |
79 | Byte: 51 0xe 0000 1110 |
80 | Byte: 52 0x22 0010 0010 |
81 | Byte: 53 0x45 0100 0101 |
82 | Byte: 54 0xe 0000 1110 |
83 | Byte: 55 0x13 0001 0011 |
84 | Byte: 56 0x43 0100 0011 |
85 | Byte: 57 0x0 0000 0000 |
86 | Byte: 58 0x72 0111 0010 |
87 | Byte: 59 0x54 0101 0100 |
88 | Byte: 60 0x51 0101 0001 |
89 | Byte: 61 0x63 0110 0011 |
90 | Byte: 62 0x54 0101 0100 |
91 | Byte: 63 0x62 0110 0010 |
92 | Byte: 64 0x0 0000 0000 |
93 | Byte: 65 0x0 0000 0000 |
94 | Byte: 66 0x0 0000 0000 |
95 | Byte: 67 0x0 0000 0000 |
96 | Byte: 68 0x0 0000 0000 |
97 | Byte: 69 0x40 0100 0000 |
98 | Byte: 70 0x40 0100 0000 |
99 | Byte: 71 0x40 0100 0000 |
100 | Byte: 72 0x40 0100 0000 |
101 | Byte: 73 0x0 0000 0000 |
102 | Byte: 74 0x40 0100 0000 |
103 | Byte: 75 0x40 0100 0000 |
104 | Byte: 76 0x40 0100 0000 |
105 | Byte: 77 0x40 0100 0000 |
106 | Byte: 78 0x40 0100 0000 |
107 | Byte: 79 0x40 0100 0000 |
108 | Byte: 80 0x40 0100 0000 |
109 | Byte: 81 0x0 0000 0000 |
110 | Byte: 82 0x40 0100 0000 |
111 | Byte: 83 0x40 0100 0000 |
112 | Byte: 84 0x40 0100 0000 |
113 | Byte: 85 0x40 0100 0000 |
114 | Byte: 86 0x40 0100 0000 |
115 | Byte: 87 0x0 0000 0000 |
116 | Byte: 88 0x0 0000 0000 |
117 | Byte: 89 0x0 0000 0000 |
118 | Byte: 90 0x40 0100 0000 |
119 | Byte: 91 0x40 0100 0000 |
120 | Byte: 92 0x40 0100 0000 |
121 | Byte: 93 0x40 0100 0000 |
122 | Byte: 94 0x40 0100 0000 |
123 | Byte: 95 0x40 0100 0000 |
124 | Byte: 96 0x40 0100 0000 |
125 | Byte: 97 0x0 0000 0000 |
126 | Byte: 98 0x40 0100 0000 |
127 | Byte: 99 0x40 0100 0000 |
128 | Byte: 100 0x40 0100 0000 |
129 | Byte: 101 0x40 0100 0000 |
130 | Byte: 102 0x40 0100 0000 |
131 | Byte: 103 0x40 0100 0000 |
132 | Byte: 104 0x40 0100 0000 |
133 | Byte: 105 0x0 0000 0000 |
134 | Byte: 106 0x40 0100 0000 |
135 | Byte: 107 0x40 0100 0000 |
136 | |
137 | ---TIMBRE2 DATA--- |
138 | Byte: 0 0x0 0000 0000 |
139 | Byte: 1 0x0 0000 0000 |
140 | Byte: 2 0x40 0100 0000 |
141 | Byte: 3 0x40 0100 0000 |
142 | Byte: 4 0x40 0100 0000 |
143 | Byte: 5 0x0 0000 0000 |
144 | Byte: 6 0x40 0100 0000 |
145 | Byte: 7 0x40 0100 0000 |
146 | Byte: 8 0x40 0100 0000 |
147 | Byte: 9 0x40 0100 0000 |
148 | Byte: 10 0x40 0100 0000 |
149 | Byte: 11 0x40 0100 0000 |
150 | Byte: 12 0x40 0100 0000 |
151 | Byte: 13 0x40 0100 0000 |
152 | Byte: 14 0x40 0100 0000 |
153 | Byte: 15 0x40 0100 0000 |
154 | Byte: 16 0x40 0100 0000 |
155 | Byte: 17 0x40 0100 0000 |
156 | Byte: 18 0x40 0100 0000 |
157 | Byte: 19 0x40 0100 0000 |
158 | Byte: 20 0x7f 0111 1111 |
159 | Byte: 21 0x0 0000 0000 |
160 | Byte: 22 0x70 0111 0000 |
161 | Byte: 23 0xa 0000 1010 |
162 | Byte: 24 0x40 0100 0000 |
163 | Byte: 25 0x42 0100 0010 |
164 | Byte: 26 0x40 0100 0000 |
165 | Byte: 27 0x45 0100 0101 |
166 | Byte: 28 0x0 0000 0000 |
167 | Byte: 29 0x0 0000 0000 |
168 | Byte: 30 0x0 0000 0000 |
169 | Byte: 31 0x0 0000 0000 |
170 | Byte: 32 0x0 0000 0000 |
171 | Byte: 33 0x0 0000 0000 |
172 | Byte: 34 0x0 0000 0000 |
173 | Byte: 35 0x40 0100 0000 |
174 | Byte: 36 0x40 0100 0000 |
175 | Byte: 37 0x0 0000 0000 |
176 | Byte: 38 0x0 0000 0000 |
177 | Byte: 39 0x7f 0111 1111 |
178 | Byte: 40 0x0 0000 0000 |
179 | Byte: 41 0x0 0000 0000 |
180 | Byte: 42 0x1 0000 0001 |
181 | Byte: 43 0x7f 0111 1111 |
182 | Byte: 44 0xa 0000 1010 |
183 | Byte: 45 0x0 0000 0000 |
184 | Byte: 46 0x40 0100 0000 |
185 | Byte: 47 0x40 0100 0000 |
186 | Byte: 48 0x40 0100 0000 |
187 | Byte: 49 0x7f 0111 1111 |
188 | Byte: 50 0x40 0100 0000 |
189 | Byte: 51 0x0 0000 0000 |
190 | Byte: 52 0x40 0100 0000 |
191 | Byte: 53 0x0 0000 0000 |
192 | Byte: 54 0x40 0100 0000 |
193 | Byte: 55 0x0 0000 0000 |
194 | Byte: 56 0x40 0100 0000 |
195 | Byte: 57 0x7f 0111 1111 |
196 | Byte: 58 0x0 0000 0000 |
197 | Byte: 59 0x0 0000 0000 |
198 | Byte: 60 0x40 0100 0000 |
199 | Byte: 61 0x0 0000 0000 |
200 | Byte: 62 0x7f 0111 1111 |
201 | Byte: 63 0x0 0000 0000 |
202 | Byte: 64 0x2 0000 0010 |
203 | Byte: 65 0xa 0000 1010 |
204 | Byte: 66 0x3 0000 0011 |
205 | Byte: 67 0x2 0000 0010 |
206 | Byte: 68 0x46 0100 0110 |
207 | Byte: 69 0x0 0000 0000 |
208 | Byte: 70 0xc 0000 1100 |
209 | Byte: 71 0x2 0000 0010 |
210 | Byte: 72 0x40 0100 0000 |
211 | Byte: 73 0x3 0000 0011 |
212 | Byte: 74 0x40 0100 0000 |
213 | Byte: 75 0x42 0100 0010 |
214 | Byte: 76 0x40 0100 0000 |
215 | Byte: 77 0x0 0000 0000 |
216 | Byte: 78 0x43 0100 0011 |
217 | Byte: 79 0x40 0100 0000 |
218 | Byte: 80 0x0 0000 0000 |
219 | Byte: 81 0x0 0000 0000 |
220 | Byte: 82 0x0 0000 0000 |
221 | Byte: 83 0x0 0000 0000 |
222 | Byte: 84 0x40 0100 0000 |
223 | Byte: 85 0x0 0000 0000 |
224 | Byte: 86 0x40 0100 0000 |
225 | Byte: 87 0x40 0100 0000 |
226 | Byte: 88 0x40 0100 0000 |
227 | Byte: 89 0x40 0100 0000 |
228 | Byte: 90 0x40 0100 0000 |
229 | Byte: 91 0x40 0100 0000 |
230 | Byte: 92 0x40 0100 0000 |
231 | Byte: 93 0x0 0000 0000 |
232 | Byte: 94 0x40 0100 0000 |
233 | Byte: 95 0x40 0100 0000 |
234 | Byte: 96 0x40 0100 0000 |
235 | Byte: 97 0x40 0100 0000 |
236 | Byte: 98 0x40 0100 0000 |
237 | Byte: 99 0x40 0100 0000 |
238 | Byte: 100 0x40 0100 0000 |
239 | Byte: 101 0x0 0000 0000 |
240 | Byte: 102 0x40 0100 0000 |
241 | Byte: 103 0x0 0000 0000 |
242 | Byte: 104 0x0 0000 0000 |
243 | Byte: 105 0x40 0100 0000 |
244 | Byte: 106 0x40 0100 0000 |
245 | Byte: 107 0x40 0100 0000 |
246 | Byte: 108 0x40 0100 0000 |
247 | Byte: 109 0x0 0000 0000 |
248 | Byte: 110 0x40 0100 0000 |
249 | Byte: 111 0x40 0100 0000 |
250 | Byte: 112 0x40 0100 0000 |
251 | Byte: 113 0x40 0100 0000 |
252 | Byte: 114 0x40 0100 0000 |
253 | Byte: 115 0x40 0100 0000 |
254 | Byte: 116 0x40 0100 0000 |
255 | Byte: 117 0x0 0000 0000 |
256 | Byte: 118 0x40 0100 0000 |
257 | Byte: 119 0x40 0100 0000 |
258 | Byte: 120 0x40 0100 0000 |
259 | Byte: 121 0x40 0100 0000 |
260 | Byte: 122 0x40 0100 0000 |
261 | Byte: 123 0x0 0000 0000 |
262 | Byte: 124 0x0 0000 0000 |
263 | Byte: 125 0x0 0000 0000 |
264 | Byte: 126 0x40 0100 0000 |
265 | Byte: 127 0x40 0100 0000 |
266 | Byte: 128 0x40 0100 0000 |
267 | Byte: 129 0x40 0100 0000 |
268 | Byte: 130 0x40 0100 0000 |
269 | Byte: 131 0x40 0100 0000 |
270 | Byte: 132 0x40 0100 0000 |
271 | Byte: 133 0x0 0000 0000 |
272 | Byte: 134 0x40 0100 0000 |
273 | Byte: 135 0x40 0100 0000 |
274 | Byte: 136 0x40 0100 0000 |
275 | Byte: 137 0x40 0100 0000 |
276 | Byte: 138 0x40 0100 0000 |
277 | Byte: 139 0x40 0100 0000 |
278 | Byte: 140 0x40 0100 0000 |
279 | Byte: 141 0x0 0000 0000 |
280 | Byte: 142 0x40 0100 0000 |
281 | Byte: 143 0x40 0100 0000 |
282 | ---ENDE von SysEx--- |
283 | Process returned 3 (0x3) execution time : 0.370 s |
284 | Press any key to continue. |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.