SYS-EX-FORMAT LMK3 --------------------- 12.02.91 DIPL.ING. CHRISTIAN ASSALL - VERSION FOR PROGRAMMERS ------------------------------------------------------------------ - MULTI-REQUEST F0H,00H,44H,26H,41H,03H,02H,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 044H ; 3 SUBID - 'D' DB 026H ; 4 SUBID - '&' DB 041H ; 6 SUBID - 'A' DB 3H ; 6 MACHINE-ID 'LMK3' DB 2H ; 7 FUNKTION-NR.: REQUEST-MULTI DB 0F7H ; 8 ------------------------------------------------------------------- - SINGLE-REQUEST (PRESET-NR. 1-64 / 0=EDITBUFFER) F0H,00H,44H,26H,41H,03H,03H,XXH,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 044H ; 3 SUBID - 'D' DB 026H ; 4 SUBID - '&' DB 041H ; 6 SUBID - 'A' DB 3H ; 6 MACHINE-ID 'LMK3' DB 3H ; 7 FUNKTION-NR.: REQUEST-SINGLE DB XXH ; 8 PRESET-NR. DB 0F7H ; 9 ------------------------------------------------------------------- - MULTI-DUMP F0H, 00H,44H,26H,41H,03H,04H,....(64 PRESETS)....,F7H DB 0F0H ; SYSEXCLUSIV DB 000H ; MANU-SUB-ID DB 044H ; SUBID - 'D' DB 026H ; SUBID - '&' DB 041H ; SUBID - 'A' DB 3H ; MACHINE-ID 'LMK3' DB 4H ; FUNKTION-NR.: MULTI-DUMP .......... 64 PRESETS .......... DB 0F7H ; EOF-STRING ------------------------------------------------------------------- - SINGLE-DUMP (PRESET-NR. 1-64 / 0=EDITBUFFER) F0H,00H,44H,26H,41H,03H,03H,XXH,...(1 PRESET)...,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 044H ; 3 SUBID - 'D' DB 026H ; 4 SUBID - '&' DB 041H ; 6 SUBID - 'A' DB 3H ; 6 MACHINE-ID 'LMK3' DB 5H ; 7 FUNKTION-NR.: DUMP-SINGLE DB XXH ; 8 PRESET-NR. ................. DB XXH ; 9 PRESET-NR. 1 PRESET ................. DB 0F7H ; 9 -------------------------------------------------------------------- FORMAT PRESET -------------- PRESET-ARRAY: ARRAY OF BYTE [110]; Beim Sysex-Dump eines Preset wird der Preset in fortlaufende 8-er Gruppen zerlegt und diese nacheinander uebertragen. Da in den einzelnen Bytes der 8'ter Gruppen auch Werte >127 vorkommen, die ja als Mididatenbyte so nicht uebertragen werden koennen, wird die 8'ter Gruppe noch umkodiert. Dazu wird die 8'ter Gruppe in 2 4'er Gruppen zerlegt, wobei die MSB (Bit 7) der Bytes herausgenommen werden (dann auf 0 gesetzt). Die so erhaltenen 4 einzelnen Bits werden zu einem weiteren 5 Byte zusammengefuegt, das im Anschluss an die 4 Bytes der 4'er Gruppe uebertragen wird. So werden also insgesamt aus den 8 Bytes der 8'ter-Gruppe 10 Bytes, wobei den Bytes 1/2/3/4/6/7/8/9 jeweils die MSB's fehlen, welche sich dann zusammengefasst in den Bytes 5/10 befinden: MSB Byte 1 -> Byte 5 Bit 0 / MSB Byte 2 -> Byte 5 Bit 1 .. MSB Byte 6 -> Byte 10 Bit 0 / MSB Byte 7 -> Byte 10 Bit 1 .. Im folgenden werden nun alle 110 Bytes eines Preset zusammen mit ihren Namen und damit Aufgaben, den einzelnen 8'ter Gruppen gegenuebergestellt. Dabei kommt es bei den Gruppen 12/13 14/15 zu Ueberlappungen, welche jedoch nur softwaretechnisch begruendet, sonst aber voellig ohne Belang sind. PARAMETERTYP REL.ADRESSE 8'er GRUPPE ============================================ ;------------------------------------------- <------- 1 ; SPLITS LOW SPLIT_LOW[8]; ;------------------------------------------- ; ZAHLENBEREICH 0-127 ; SPL1: EQU 0 SPL2: EQU 1 SPL3: EQU 2 SPL4: EQU 3 SPL5: EQU 4 SPL6: EQU 5 SPL7: EQU 6 SPL8: EQU 7 ;------------------------------------------- <------- 2 ; HIGH SPLIT_HIGH[8]; ;------------------------------------------- ; ZAHLENBEREICH 0-127 SPH1: EQU 8 SPH2: EQU 9 SPH3: EQU 10 SPH4: EQU 11 SPH5: EQU 12 SPH6: EQU 13 SPH7: EQU 14 SPH8: EQU 15 ;------------------------------------------- <------- 3 ; TRANSPOSE TRANSPOSE[8]; ; +0-127 / - 0-127 (msb=signed-bit) TRS1: EQU 16 TRS2: EQU 17 TRS3: EQU 18 TRS4: EQU 19 TRS5: EQU 20 TRS6: EQU 21 TRS7: EQU 22 TRS8: EQU 23 ;------------------------------------------- <------- 4 ; OUT-CHANNEL CHANNEL[8]-LOW-NIBBLE CHN1: EQU 24 CHN2: EQU 25 CHN3: EQU 26 CHN4: EQU 27 CHN5: EQU 28 CHN6: EQU 29 CHN7: EQU 30 CHN8: EQU 31 ;------------------------------------------- <------- 5 ; DYN-TABS DYNAMIK_TABS[8]; BIT 0-4.:NOTE | BIT 5-7:AFTERTOUCH DYN1: EQU 32 DYN2: EQU 33 DYN3: EQU 34 DYN4: EQU 35 DYN5: EQU 36 DYN6: EQU 37 DYN7: EQU 38 DYN8: EQU 39 ; ;------------------------------------------- <------- 6 ; AD-ZONE-SWITCHES (IST DAS JEWEILIGE BIT GESETZT AN0->BIT.0 USW.) ; SO WIRD DER AD-WERT ENSPR. DER ZONE 1-8 ; AUF DAS IN AD-ASSIGN GEROUTETEN MIDI-EVENT GESCHICKT ; ; BIT: 0 1 2 ...... 7 ; AN0 AN1 AN2 AN7 ; ADZ1: EQU 40 ; FUER ZONE 1 ADZ2: EQU 41 ; FUER ZONE 2 ADZ3: EQU 42 ADZ4: EQU 43 ; .. ADZ5: EQU 44 ADZ6: EQU 45 ADZ7: EQU 46 ADZ8: EQU 47 ; FUER ZONE 8 ;------------------------------------------- <------- 7 ; SWITCH-ZONE-SWITCHES (IST DAS JEWEILIGE BIT GESETZT) ; SO WIRD DER SWITCH-WERT ENSPR. DER ZONE 1-8 ; AUF DAS IN SW-ASSIGN GEROUTETEN MIDI-EVENT GESCHICKT ; ; BIT: 0 1 2 ; P3.3 P3.4 ; SWZ1: EQU 48 ; FUER ZONE 1 SWZ2: EQU 49 ; FUER ZONE 2 SWZ3: EQU 50 SWZ4: EQU 51 ; .. SWZ5: EQU 52 SWZ6: EQU 53 SWZ7: EQU 54 SWZ8: EQU 55 ; FUER ZONE 8 ;------------------------------------------- <------- 8 ; PRESET-COMMON-BEREICH ; ; DIES SIND DIE POINTER DER JEWEILIGEN AD'S und Switches AUF EIN ZUGEORDNETES ; MIDI-EVENT: ; Im Low-Nibble: ; 0: PITCH-WHEEL ; 1: AFTERTOUCH ; 2: MOD-WHEEL: ; 3: BREATH-CONTRL.: ; 4: PORTAMENTO-TIME: ; 5: DATA-ENTRY: ; 6: VOLUME ; 7: PAN ; 8-15: USER-DEFINED: ; Im High-Nibble ; 0: Controller 64 - Sustain ; 1: Controller 65 ; 2: Controller 66 ; 3: Controller 67 ; 4: Link-Mode AD0P: EQU 56 ; AD-0-POINTER AD1P: EQU 57 ; .. AD2P: EQU 58 AD3P: EQU 59 AD4P: EQU 60 AD5P: EQU 61 AD6P: EQU 62 AD7P: EQU 63 ;------------------------------------------- <------- 9 PRES_NAME: EQU 64 ; STRING 8-ZEICHEN ;------------------------------------------- <------- 10 ;------------------------------------------- ;------------------------------------------- <------- 11 PRG_CHN: EQU 72 ; PRG_CHN[16] BYTE ;------------------------------------------- <------- 12 CHN_SWITCHES: EQU 88 ; 8 SCHALTER,FUER JEDEN PRG_CHN EINEN CHN_SWITCHER+1: EQU 89 ;------------------------------------------- <------- 13 UDEF_CONTR: EQU 90 ; 8 USER-DEFINIERTE CONTROLLER ; ADXS-EINTRAG 9-15 ;------------------------------------------- <------- 14 R_MCL: EQU 98 ; MCLOCK-WERT LINK: EQU 99 MASTER_CHN: EQU 100 REALTMODE: EQU 101 ; REALTIME-FLAGS ;------------------------------------------- <------- 15 VELSWITCH: EQU 102 ; VELOCITY-SWITCHES ENDE BEI PRESLEN = 110 !!!!!! also insgesamt: PRESET: XXH ; PRESET-NR. 15*10Bytes ; Presetdaten in 15 8'er-auf-10'er-Gruppen SYS-EX-FORMAT LMK3V4 ----------------------- 05.01.92 Official MIDI System Exclusive ID number for Doepfer Musikelektronik assigned by the MMA Midi Manufacturers Association F0H,00H,20H,20H ------------------------------------------------------------------ - MULTI-REQUEST F0H,00H,20H,20H,03H,00H,02H,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 020H ; 3 DB 020H ; 4 DB 003H ; 5 MACHINE-ID 'LMK3' DB 00H ; 6 DEVCHN DB 2H ; 7 FUNKTION-NR.: REQUEST-MULTI DB 0F7H ; 8 ------------------------------------------------------------------- - SINGLE-REQUEST (PRESET-NR. 1-64 / 0=EDITBUFFER) F0H,00H,20H,20H,03H,00H,03H,XXH,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 020H ; 3 DB 020H ; 4 DB 003H ; 5 MACHINE-ID 'LMK3' DB 00H ; 6 DEVCHN DB 3H ; 7 FUNKTION-NR.: REQUEST-SINGLE DB XXH ; 8 PRESET-NR. DB 0F7H ; 9 ------------------------------------------------------------------- - MULTI-DUMP F0H, 00H,20H,20H,03H,00H,04H,....(64 PRESETS)....,F7H DB 0F0H ; SYSEXCLUSIV DB 000H ; MANU-SUB-ID DB 020H ; DB 020H ; DB 003H ; MACHINE-ID 'LMK3' DB 00H ; DEVCHN DB 4H ; FUNKTION-NR.: MULTI-DUMP .......... 64 PRESETS .......... DB 0F7H ; EOF-STRING ------------------------------------------------------------------- - SINGLE-DUMP (PRESET-NR. 1-64 / 0=EDITBUFFER) F0H,00H,20H,20H,03H,00H,03H,XXH,...(1 PRESET)...,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 020H ; 3 DB 020H ; 4 DB 003H ; 5 MACHINE-ID 'LMK3' DB 00H ; 6 DEVCHN DB 5H ; 7 FUNKTION-NR.: DUMP-SINGLE DB XXH ; 8 PRESET-NR. ................. DB XXH ; 9 PRESET-NR. 1 PRESET ................. DB 0F7H ; 9 PARAMETERTYP REL.ADRESSE 8'er GRUPPE ============================================ ;------------------------------------------- <------- 1 ; SPLITS LOW SPLIT_LOW[8]; ;------------------------------------------- ; ZAHLENBEREICH 0-127 ; Bit.7 -> Controller32 Bit.4 ; SPL1: EQU 0 SPL2: EQU 1 SPL3: EQU 2 SPL4: EQU 3 SPL5: EQU 4 SPL6: EQU 5 SPL7: EQU 6 SPL8: EQU 7 ;------------------------------------------- <------- 2 ; HIGH SPLIT_HIGH[8]; ;------------------------------------------- ; ZAHLENBEREICH 0-127 ; Bit.7 -> Controller32 Bit.5 SPH1: EQU 8 SPH2: EQU 9 SPH3: EQU 10 SPH4: EQU 11 SPH5: EQU 12 SPH6: EQU 13 SPH7: EQU 14 SPH8: EQU 15 ;------------------------------------------- <------- 3 ; TRANSPOSE TRANSPOSE[8]; ; +0-127 / - 0-127 (msb=signed-bit) TRS1: EQU 16 TRS2: EQU 17 TRS3: EQU 18 TRS4: EQU 19 TRS5: EQU 20 TRS6: EQU 21 TRS7: EQU 22 TRS8: EQU 23 ;------------------------------------------- <------- 4 ; OUT-CHANNEL CHANNEL[8]-LOW-NIBBLE CHN1: EQU 24 Bit.7/6/5/4 -> Controller32 Bit.3/2/1/0 CHN2: EQU 25 CHN3: EQU 26 CHN4: EQU 27 CHN5: EQU 28 CHN6: EQU 29 CHN7: EQU 30 CHN8: EQU 31 ;------------------------------------------- <------- 5 ; DYN-TABS DYNAMIK_TABS[8]; BIT 0-4.:NOTE | BIT 5-7:AFTERTOUCH DYN1: EQU 32 DYN2: EQU 33 DYN3: EQU 34 DYN4: EQU 35 DYN5: EQU 36 DYN6: EQU 37 DYN7: EQU 38 DYN8: EQU 39 ; ;------------------------------------------- <------- 6 ; AD-ZONE-SWITCHES (IST DAS JEWEILIGE BIT GESETZT AN0->BIT.0 USW.) ; SO WIRD DER AD-WERT ENSPR. DER ZONE 1-8 ; AUF DAS IN AD-ASSIGN GEROUTETEN MIDI-EVENT GESCHICKT ; ; BIT: 0 1 2 ...... 7 ; AN0 AN1 AN2 AN7 ; ADZ1: EQU 40 ; FUER ZONE 1 ADZ2: EQU 41 ; FUER ZONE 2 ADZ3: EQU 42 ADZ4: EQU 43 ; .. ADZ5: EQU 44 ADZ6: EQU 45 ADZ7: EQU 46 ADZ8: EQU 47 ; FUER ZONE 8 ;------------------------------------------- <------- 7 ; SWITCH-ZONE-SWITCHES (IST DAS JEWEILIGE BIT GESETZT) ; SO WIRD DER SWITCH-WERT ENSPR. DER ZONE 1-8 ; AUF DAS IN SW-ASSIGN GEROUTETEN MIDI-EVENT GESCHICKT ; ; BIT: 0 1 2 ; P3.3 P3.4 ; SWZ1: EQU 48 ; FUER ZONE 1 SWZ2: EQU 49 ; FUER ZONE 2 SWZ3: EQU 50 SWZ4: EQU 51 ; .. SWZ5: EQU 52 SWZ6: EQU 53 SWZ7: EQU 54 SWZ8: EQU 55 ; FUER ZONE 8 ;------------------------------------------- <------- 8 ; PRESET-COMMON-BEREICH ; ; DIES SIND DIE POINTER DER JEWEILIGEN AD'S und Switches AUF EIN ZUGEORDNETES ; MIDI-EVENT: ; Im Low-Nibble: ; 0: PITCH-WHEEL ; 1: AFTERTOUCH ; 2: MOD-WHEEL: ; 3: BREATH-CONTRL.: ; 4: PORTAMENTO-TIME: ; 5: DATA-ENTRY: ; 6: VOLUME ; 7: PAN ; 8-15: USER-DEFINED: ; Im High-Nibble ; 0: Controller 64 - Sustain ; 1: Controller 65 ; 2: Controller 66 ; 3: Controller 67 ; 4: Link-Mode AD0P: EQU 56 ; AD-0-POINTER AD1P: EQU 57 ; .. AD2P: EQU 58 AD3P: EQU 59 AD4P: EQU 60 AD5P: EQU 61 AD6P: EQU 62 AD7P: EQU 63 ;------------------------------------------- <------- 9 PRES_NAME: EQU 64 ; STRING 8-ZEICHEN ;------------------------------------------- <------- 10 ;------------------------------------------- ;------------------------------------------- <------- 11 PRG_CHN: EQU 72 ; PRG_CHN[16] BYTE ;------------------------------------------- <------- 12 CHN_SWITCHES: EQU 88 ; 8 SCHALTER,FUER JEDEN PRG_CHN EINEN CHN_SWITCHER+1: EQU 89 ;------------------------------------------- <------- 13 UDEF_CONTR: EQU 90 ; 8 USER-DEFINIERTE CONTROLLER ; ADXS-EINTRAG 9-15 ;------------------------------------------- <------- 14 R_MCL: EQU 98 ; MCLOCK-WERT LINK: EQU 99 MASTER_CHN: EQU 100 REALTMODE: EQU 101 ; REALTIME-FLAGS ;------------------------------------------- <------- 15 ; VELSWITCH: EQU 102 ; VELOCITY-SWITCHES CONTROLLER00: EQU 102 ; Parameter VELSWITCH is now used ; for Controller00 Value ; Bit.7 -> Controller32 Bit.6 ENDE BEI PRESLEN = 110 !!!!!! also insgesamt: PRESET: XXH ; PRESET-NR. 15*10Bytes ; Presetdaten in 15 8'er-auf-10'er-Gruppen SYS-EX-FORMAT LMK4 ----------------------- 30.11.93 Format ist kompatibel zu LMK3V4. Nur wurden einige bisher unbenutzt Bits definiert und belegt. 1) Neu definiert Bits: ---------------------- SWZ1 ... SWZ8 bisher nur jeweils die Bits 0,1 belegt. Neu: Bit 2 : Routing OUT2 ; 1 = OUT2 ist Off ; 0 = OUT2 ist On Bit 3 : Routing OUT1 ; 1 = OUT1 ist Off ; 0 = OUT1 ist On Bits 4,5,6 : Midi-In-Modes: 0 0 0 : In 0 0 1 : EA 0 1 0 : EO 0 1 1 : EM 1 0 0 : M5 1 0 1 : M6 1 1 0 : M7 1 1 1 : M8 Bit 7 : Bit 5 fuer Velocity-Tabs . Jetzt 64 Tabs statt 32 ( Piano-Mode) MASTER_CHN bisher nur jeweils die Bits 0,1,2,3 belegt. Neu: Bits 5,4 Erweiterte Einstellung des Master-Channels 0 0 POUT1&2 0 1 POUT1&0 1 0 POUT0&2 1 1 OUT1&2 2) SYS-EX-STRINGS ( 2 neue) ------------------------------ ------------------------------------------------------------------ - MULTI-REQUEST (wie bisher) F0H,00H,20H,20H,03H,00H,02H,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 020H ; 3 DB 020H ; 4 DB 003H ; 5 MACHINE-ID 'LMK3' DB 00H ; 6 DEVCHN DB 2H ; 7 FUNKTION-NR.: REQUEST-MULTI DB 0F7H ; 8 ------------------------------------------------------------------- - SINGLE-REQUEST (PRESET-NR. 1-127 / 0=EDITBUFFER) (neu Presets 65 - 127. Preset 128 kann nicht 'requestet' werden) F0H,00H,20H,20H,03H,00H,03H,XXH,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 020H ; 3 DB 020H ; 4 DB 003H ; 5 MACHINE-ID 'LMK3' DB 00H ; 6 DEVCHN DB 3H ; 7 FUNKTION-NR.: REQUEST-SINGLE DB XXH ; 8 PRESET-NR. DB 0F7H ; 9 ------------------------------------------------------------------- - MULTI-DUMP ( neue jetzt 127 Presets. F0H, 00H,20H,20H,03H,00H,04H,....(127 PRESETS)....,F7H DB 0F0H ; SYSEXCLUSIV DB 000H ; MANU-SUB-ID DB 020H ; DB 020H ; DB 003H ; MACHINE-ID 'LMK3' DB 00H ; DEVCHN DB 4H ; FUNKTION-NR.: MULTI-DUMP .......... 128 PRESETS .......... DB 0F7H ; EOF-STRING ------------------------------------------------------------------- - SINGLE-DUMP (PRESET-NR. 1-127 / 0=EDITBUFFER) F0H,00H,20H,20H,03H,00H,03H,XXH,...(1 PRESET)...,F7H DB 0F0H ; 1 SYSEXCLUSIV DB 000H ; 2 MANU-SUB-ID DB 020H ; 3 DB 020H ; 4 DB 003H ; 5 MACHINE-ID 'LMK3' DB 00H ; 6 DEVCHN DB 5H ; 7 FUNKTION-NR.: DUMP-SINGLE DB XXH ; 8 PRESET-NR. ................. DB XXH ; 9 PRESET-NR. 1 PRESET ................. DB 0F7H ; 9 !!!!! 2 Neue Sys-Ex-Strings ------------------------------------------------------------------- - MULTI-DUMP-STORE = Copy all Presets to EEPROM F0H,00H,20H,20H,03H,00H,06H,F7H ------------------------------------------------------------------- - MULTI-DUMP-STORE OK = Antwort von LMK4, dass Copy all Presets to EEPROM beendet und LMK4 wieder Daten empfangen kann. F0H,00H,20H,20H,03H,00H,07H,F7H