diff --git a/UI.hpp b/UI.hpp index 2866c77..dd8aa1f 100644 --- a/UI.hpp +++ b/UI.hpp @@ -565,7 +565,7 @@ void encoder_left_up(void) soften_volume.update(soften_volume.value() + (VOLUME_MAX - VOLUME_MIN) / VOLUME_ENC_STEPS, SOFTEN_VALUE_CHANGE_STEPS); else configuration.vol = VOLUME_MAX; - eeprom_write(); + UI_func_volume(0); } @@ -579,7 +579,7 @@ void encoder_left_down(void) soften_volume.update(tmp, SOFTEN_VALUE_CHANGE_STEPS); else configuration.vol = VOLUME_MIN; - eeprom_write(); + UI_func_volume(0); } @@ -1730,24 +1730,27 @@ void UI_func_volume(uint8_t param) Serial.println(F("UI_func_volume()")); #endif - menu_state = MENU_VOLUME; back_from_volume = 0; - // update LCD content - LCDML.DISP_clear(); - lcd.show(0, 0, 8, "Volume: "); - lcd.show(0, 9, 3, configuration.vol); + if (menu_state != MENU_VOLUME) + { + lcd.show(0, 0, LCD_cols, "Volume:"); + lcd.show(1, 0, LCD_cols, "[ ]"); + menu_state = MENU_VOLUME; + } + + lcd.setCursor(8, 0); + lcd_display_int(configuration.vol, 3, true, false, false); lcd.setCursor(1, 1); - for (uint8_t i = 0; i < LCD_cols; i++) + for (uint8_t i = 0; i < LCD_cols - 2; i++) { - if (i < int((LCD_cols - 2) * configuration.vol / 100.0)) + if (i < int(((LCD_cols - 2) * configuration.vol / 100.0) + 0.5)) lcd.print(F("*")); else lcd.print(F(" ")); } set_volume(configuration.vol, configuration.pan[0], configuration.mono); - lcd.show(1, 0, 1, "["); - lcd.show(1, 15, 1, "]"); + eeprom_write(); } void UI_function_not_enabled(void) diff --git a/doc/sysex-format_controller-setup.txt b/doc/sysex-format_dexed-setup.txt similarity index 56% rename from doc/sysex-format_controller-setup.txt rename to doc/sysex-format_dexed-setup.txt index 246a167..7a474f1 100644 --- a/doc/sysex-format_controller-setup.txt +++ b/doc/sysex-format_dexed-setup.txt @@ -5,21 +5,22 @@ SYSEX Message Controller-Set ---------------------------- 11110000 F0 Status byte - start sysex - 0iiiiiii 43 ID # (i=67; Yamaha) + 0iiiiiii 67 ID # (i=103; unofficial SYSEX-ID for MicroDexed) 0sssnnnn 00 Sub-status (s=0) & channel number (n=0; ch 1) - 0fffffff 00 format number (f=75; 1 controller-set) + 0fffffff 00 format number (f=75; 1 MicroDexed setup) 0bbbbbbb 01 byte count MS byte - 0bbbbbbb 1B byte count LS byte (b=155; 1 voice) + 0bbbbbbb 1B byte count LS byte (b=38; 1 setup using 1 instance + b=69; 1 setup using 2 instances) 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) + 0ddddddd ** data byte 38 or 69 + 0eeeeeee ** checksum (masked 2's comp. of sum of 38 or 69 bytes) 11110111 F7 Status - end sysex -Data Structure: Single Controller-Set Dump ------------------------------------------- +Data Structure: MicroDexed Setup Dump +------------------------------------- Parameter Number Parameter Value Range @@ -62,35 +63,36 @@ Parameter 35 DEXED 1 FILTER-RESONANCE 0-100 26 DEXED 1 MIDI-CHANNEL 0-16 (0=OMNI) 37 DEXED 1 POLYPHONY 0-32 (depends on CPU and FX) -38 DEXED 1 ENGINE 0-2 (1=modern, 2=Mark1, 2=OPL) +38 DEXED 1 ENGINE 0-2 (1=Modern, 2=Mark1, 2=OPL) +--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- 39 DEXED 2 MONO/POLY MODE CHANGE 0-1 O=POLY 40 DEXED 2 PITCH BEND RANGE 0-12 - 2 DEXED 2 " " STEP 0-12 - 3 DEXED 2 PORTAMENTO MODE 0-1 0=RETAIN 1=FOLLOW - 4 DEXED 2 " GLISS 0-1 - 5 DEXED 2 " TIME 0-99 - 6 DEXED 2 MOD WHEEL RANGE 0-99 - 7 DEXED 2 " " ASSIGN 0-7 b0: pitch, b1:amp, b2: EG bias - 8 DEXED 2 FOOT CONTROL RANGE 0-99 - 9 DEXED 2 " " ASSIGN 0-7 " -10 DEXED 2 BREATH CONT RANGE 0-99 -11 DEXED 2 " " ASSIGN 0-7 " -12 DEXED 2 AFTERTOUCH RANGE 0-99 -13 DEXED 2 " ASSIGN 0-7 " -14 DEXED 2 OP1_ENABLE 0-1 -15 DEXED 2 OP2_ENABLE 0-1 -16 DEXED 2 OP3_ENABLE 0-1 -17 DEXED 2 OP4_ENABLE 0-1 -18 DEXED 2 OP5_ENABLE 0-1 -19 DEXED 2 OP6_ENABLE 0-1 -20 DEXED 2 MAX_NOTES 0-32 -21 DEXED 2 LOUDNESS 0-100 -22 DEXED 2 PANORAMA 0-40 (20 is middle) -26 DEXED 2 REVERB-LEVEL 0-100 -30 DEXED 2 CHORUS-LEVEL 0-100 -33 DEXED 2 DELAY-LEVEL 0-100 -34 DEXED 2 FILTER-CUTOFF 0-100 -35 DEXED 2 FILTER-RESONANCE 0-100 -26 DEXED 2 MIDI-CHANNEL 0-16 (0=OMNI) -37 DEXED 2 POLYPHONY 0-32 (depends on CPU and FX) -38 DEXED 2 ENGINE 0-2 (1=modern, 2=Mark1, 2=OPL) +41 DEXED 2 " " STEP 0-12 +42 DEXED 2 PORTAMENTO MODE 0-1 0=RETAIN 1=FOLLOW +43 DEXED 2 " GLISS 0-1 +44 DEXED 2 " TIME 0-99 +45 DEXED 2 MOD WHEEL RANGE 0-99 +46 DEXED 2 " " ASSIGN 0-7 b0: pitch, b1:amp, b2: EG bias +47 DEXED 2 FOOT CONTROL RANGE 0-99 +48 DEXED 2 " " ASSIGN 0-7 " +49 DEXED 2 BREATH CONT RANGE 0-99 +40 DEXED 2 " " ASSIGN 0-7 " +51 DEXED 2 AFTERTOUCH RANGE 0-99 +52 DEXED 2 " ASSIGN 0-7 " +53 DEXED 2 OP1_ENABLE 0-1 +54 DEXED 2 OP2_ENABLE 0-1 +55 DEXED 2 OP3_ENABLE 0-1 +56 DEXED 2 OP4_ENABLE 0-1 +57 DEXED 2 OP5_ENABLE 0-1 +58 DEXED 2 OP6_ENABLE 0-1 +59 DEXED 2 MAX_NOTES 0-32 +60 DEXED 2 LOUDNESS 0-100 +61 DEXED 2 PANORAMA 0-40 (20 is middle) +62 DEXED 2 REVERB-LEVEL 0-100 +63 DEXED 2 CHORUS-LEVEL 0-100 +64 DEXED 2 DELAY-LEVEL 0-100 +65 DEXED 2 FILTER-CUTOFF 0-100 +66 DEXED 2 FILTER-RESONANCE 0-100 +67 DEXED 2 MIDI-CHANNEL 0-16 (0=OMNI) +68 DEXED 2 POLYPHONY 0-32 (depends on CPU and FX) +69 DEXED 2 ENGINE 0-2 (1=Modern, 2=Mark1, 2=OPL)