Forum: PC-Programmierung Was steht in der Datei und wie ist sie codiert?


von Mike M. (mikeii)


Angehängte Dateien:

Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Mike M. (mikeii)


Lesenswert?

Wow, stimmt.

Na dass kann dauern zum decodieren :P

Aber danke dir.

Evtl sollte ich mir ein Script dazu schreiben, dass mir das übersetzt.

von Mike M. (mikeii)


Lesenswert?

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?

von Tom K. (ez81)


Lesenswert?

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
>

von Mike M. (mikeii)


Lesenswert?

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 :(

von Mike M. (mikeii)


Lesenswert?


von Mike M. (mikeii)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.