diff --git a/MicroDexed.ino b/MicroDexed.ino index 4d024e6..1097ed8 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -188,14 +188,14 @@ void setup() pinMode(U8X8_CS_PIN, OUTPUT); #endif + delay(220); // necessary, because before this time no serial output is done :( + #ifdef ENABLE_LCD_UI setup_ui(); #else Serial.println(F("NO LCD DISPLAY ENABLED!")); #endif - delay(220); // necessary, because before this time no serial output is done :( - Serial.println(F("MicroDexed based on https://github.com/asb2m10/dexed")); Serial.println(F("(c)2018,2019 H. Wirtz ")); Serial.println(F("https://codeberg.org/dcoredump/MicroDexed")); diff --git a/config.h b/config.h index 71cf461..c532539 100644 --- a/config.h +++ b/config.h @@ -48,7 +48,7 @@ //************************************************************************************************* //* MIDI HARDWARE SETTINGS //************************************************************************************************* -//#define MIDI_DEVICE_DIN Serial1 +#define MIDI_DEVICE_DIN Serial1 #define MIDI_DEVICE_USB 1 #define MIDI_DEVICE_USB_HOST 1 diff --git a/doc/sysex-format_controller-setup.txt b/doc/sysex-format_controller-setup.txt new file mode 100644 index 0000000..d396c0e --- /dev/null +++ b/doc/sysex-format_controller-setup.txt @@ -0,0 +1,65 @@ +EXTENDED SYSEX FORMAT FOR MICRODEXED +==================================== + +SYSEX Message Controller-Set +---------------------------- + + 11110000 F0 Status byte - start sysex + 0iiiiiii 43 ID # (i=67; Yamaha) + 0sssnnnn 00 Sub-status (s=0) & channel number (n=0; ch 1) + 0fffffff 00 format number (f=75; 1 controller-set) + 0bbbbbbb 01 byte count MS byte + 0bbbbbbb 1B byte count LS byte (b=155; 1 voice) + 0ddddddd ** data byte 1 controller-set + + | | | + + 0ddddddd ** data byte 4096 (there are 128 bytes / voice) + 0eeeeeee ** checksum (masked 2's comp. of sum of 4096 bytes) + 11110111 F7 Status - end sysex + +Data Structure: Single Controller-Set Dump +------------------------------------------ + +Parameter + Number Parameter Value Range +--------- --------- ----------- + 0 MONO/POLY MODE CHANGE 0-1 O=POLY + 1 PITCH BEND RANGE 0-12 + 2 " " STEP 0-12 + 3 PORTAMENTO MODE 0-1 0=RETAIN 1=FOLLOW + 4 " GLISS 0-1 + 5 " TIME 0-99 + 6 MOD WHEEL RANGE 0-99 + 7 " " ASSIGN 0-7 b0: pitch, b1:amp, b2: EG bias + 8 FOOT CONTROL RANGE 0-99 + 9 " " ASSIGN 0-7 " +10 BREATH CONT RANGE 0-99 +11 " " ASSIGN 0-7 " +12 AFTERTOUCH RANGE 0-99 +13 " ASSIGN 0-7 " +14 OP1_ENABLE 0-1 +15 OP2_ENABLE 0-1 +16 OP3_ENABLE 0-1 +17 OP4_ENABLE 0-1 +18 OP5_ENABLE 0-1 +19 OP6_ENABLE 0-1 +20 MAX_NOTES 0-32 +21 LOUDNESS 0-100 +22 PANORAMA 0-40 (20 is middle) +23 STERO/MONO 0-3 (0=stereo, 1=mono, 2=mono-r, 3=mono-l) +24 REVERB-ROOMSIZE 0-100 +25 REVERB-DAMPING 0-100 +26 REVERB-LEVEL 0-100 +27 CHORUS-FREQUENCY 0-100 (multiplied by 1/10 Hz) +28 CHORUS-WAVEFORM 0-1 (0=triangle, 1=sine) +29 CHORUS-DEPTH 0-100 +30 CHORUS-LEVEL 0-100 +31 DELAY-TIME 0-60 (multiplied by 10ms) +32 DELAY-FEEDBACK 0-100 +33 DELAY-LEVEL 0-100 +34 FILTER-CUTOFF 0-100 +35 FILTER-RESONANCE 0-100 +26 MIDI-CHANNEL 0-16 (0=OMNI) +37 POLYPHONY 0-32 (depends on CPU and FX) +38 DEXED-ENGINE 0-2 (1=modern, 2=Mark1, 2=OPL) diff --git a/doc/voice_data.txt b/doc/voice_data.txt deleted file mode 100644 index a279e5d..0000000 --- a/doc/voice_data.txt +++ /dev/null @@ -1,72 +0,0 @@ -F: -Data Structure: Bulk Dump Packed Format ---------------------------------------- - -OK, now the tricky bit. For a bulk dump the 155 voice parameters for each - voice are packed into 32 consecutive 128 byte chunks as follows ... - -byte bit # - # 6 5 4 3 2 1 0 param A range param B range ----- --- --- --- --- --- --- --- ------------ ----- ------------ ----- - 0 R1 OP6 EG R1 0-99 - 1 R2 OP6 EG R2 0-99 - 2 R3 OP6 EG R3 0-99 - 3 R4 OP6 EG R4 0-99 - 4 L1 OP6 EG L1 0-99 - 5 L2 OP6 EG L2 0-99 - 6 L3 OP6 EG L3 0-99 - 7 L4 OP6 EG L4 0-99 - 8 BP LEV SCL BRK PT 0-99 - 9 LD SCL LEFT DEPTH 0-99 - 10 RD SCL RGHT DEPTH 0-99 - 11 0 0 0 | RC | LC | SCL LEFT CURVE 0-3 SCL RGHT CURVE 0-3 - 12 | DET | RS | OSC DETUNE 0-14 OSC RATE SCALE 0-7 - 13 0 0 | KVS | AMS | KEY VEL SENS 0-7 AMP MOD SENS 0-3 - 14 OL OP6 OUTPUT LEV 0-99 - 15 0 | FC | M | FREQ COARSE 0-31 OSC MODE 0-1 - 16 FF FREQ FINE 0-99 - 17 \ - | > these 17 bytes for OSC 5 - 33 / - 34 \ - | > these 17 bytes for OSC 4 - 50 / - 51 \ - | > these 17 bytes for OSC 3 - 67 / - 68 \ - | > these 17 bytes for OSC 2 - 84 / - 85 \ - | > these 17 bytes for OSC 1 -101 / - -byte bit # - # 6 5 4 3 2 1 0 param A range param B range ----- --- --- --- --- --- --- --- ------------ ----- ------------ ----- -102 PR1 PITCH EG R1 0-99 -103 PR2 PITCH EG R2 0-99 -104 PR3 PITCH EG R3 0-99 -105 PR4 PITCH EG R4 0-99 -106 PL1 PITCH EG L1 0-99 -107 PL2 PITCH EG L2 0-99 -108 PL3 PITCH EG L3 0-99 -109 PL4 PITCH EG L4 0-99 -110 0 0 | ALG | ALGORITHM 0-31 -111 0 0 0 |OKS| FB | OSC KEY SYNC 0-1 FEEDBACK 0-7 -112 LFS LFO SPEED 0-99 -113 LFD LFO DELAY 0-99 -114 LPMD LF PT MOD DEP 0-99 -115 LAMD LF AM MOD DEP 0-99 -116 | LPMS | LFW |LKS| LF PT MOD SNS 0-7 WAVE 0-5, SYNC 0-1 -117 TRNSP TRANSPOSE 0-48 -118 NAME CHAR 1 VOICE NAME 1 ASCII -119 NAME CHAR 2 VOICE NAME 2 ASCII -120 NAME CHAR 3 VOICE NAME 3 ASCII -121 NAME CHAR 4 VOICE NAME 4 ASCII -122 NAME CHAR 5 VOICE NAME 5 ASCII -123 NAME CHAR 6 VOICE NAME 6 ASCII -124 NAME CHAR 7 VOICE NAME 7 ASCII -125 NAME CHAR 8 VOICE NAME 8 ASCII -126 NAME CHAR 9 VOICE NAME 9 ASCII -127 NAME CHAR 10 VOICE NAME 10 ASCII