Replaced the simple 2 band tone control with the 5 band graphic-eq with fixed frequencies of 115Hz, 330Hz, 990Hz, 3kHz, and 9.9kHz. Each band has a range of adjustment from 1.00 (+12dB) to -1.00 (-11.75dB) (only for SGTL5000 audio shields!).

pull/68/head
Holger Wirtz 3 years ago
parent 056dadf9ed
commit c94ae88a37
  1. 12
      MicroDexed.ino
  2. 143
      UI.hpp
  3. 161
      UI_FX.h
  4. 159
      UI_FX_T4.h
  5. 15
      config.h

@ -448,8 +448,8 @@ void setup()
sgtl5000_1.surroundSound(7, 3); // Configures virtual surround width from 0 (mono) to 7 (widest). select may be set to 1 (disable), 2 (mono input) or 3 (stereo input). sgtl5000_1.surroundSound(7, 3); // Configures virtual surround width from 0 (mono) to 7 (widest). select may be set to 1 (disable), 2 (mono input) or 3 (stereo input).
sgtl5000_1.autoVolumeEnable(); sgtl5000_1.autoVolumeEnable();
sgtl5000_1.autoVolumeControl(1, 1, 1, 0.9, 0.01, 0.05); sgtl5000_1.autoVolumeControl(1, 1, 1, 0.9, 0.01, 0.05);
sgtl5000_1.eqSelect(2); // Tone Control sgtl5000_1.eqSelect(GRAPHIC_EQUALIZER);
sgtl5000_1.eqBands(EQ_BASS_DEFAULT, EQ_TREBLE_DEFAULT); sgtl5000_1.eqBands(EQ_BASS_DEFAULT, EQ_MIDBASS_DEFAULT, EQ_MID_DEFAULT, EQ_MIDTREBLE_DEFAULT, EQ_TREBLE_DEFAULT);
#else #else
sgtl5000_1.audioProcessorDisable(); sgtl5000_1.audioProcessorDisable();
sgtl5000_1.autoVolumeDisable(); sgtl5000_1.autoVolumeDisable();
@ -2182,7 +2182,13 @@ void set_fx_params(void)
#endif #endif
#ifdef SGTL5000_AUDIO_ENHANCE #ifdef SGTL5000_AUDIO_ENHANCE
sgtl5000_1.eqBands(mapfloat(configuration.fx.eq_bass, EQ_BASS_MIN, EQ_BASS_MAX, -1.0, 1.0), mapfloat(configuration.fx.eq_treble, EQ_TREBLE_MIN, EQ_TREBLE_MAX, -1.0, 1.0)); sgtl5000_1.eqBands(
mapfloat(configuration.fx.eq_bass, EQ_BASS_MIN, EQ_BASS_MAX, -1.0, 1.0),
mapfloat(configuration.fx.eq_midbass, EQ_MIDBASS_MIN, EQ_MIDBASS_MAX, -1.0, 1.0),
mapfloat(configuration.fx.eq_mid, EQ_MID_MIN, EQ_MID_MAX, -1.0, 1.0),
mapfloat(configuration.fx.eq_midtreble, EQ_MIDTREBLE_MIN, EQ_MIDTREBLE_MAX, -1.0, 1.0),
mapfloat(configuration.fx.eq_treble, EQ_TREBLE_MIN, EQ_TREBLE_MAX, -1.0, 1.0)
);
#endif #endif
init_MIDI_send_CC(); init_MIDI_send_CC();

143
UI.hpp

@ -293,6 +293,9 @@ void UI_func_sysex_send_voice(uint8_t param);
void UI_func_sysex_receive_bank(uint8_t param); void UI_func_sysex_receive_bank(uint8_t param);
void UI_func_sysex_send_bank(uint8_t param); void UI_func_sysex_send_bank(uint8_t param);
void UI_func_eq_bass(uint8_t param); void UI_func_eq_bass(uint8_t param);
void UI_func_eq_midbass(uint8_t param);
void UI_func_eq_mid(uint8_t param);
void UI_func_eq_midtreble(uint8_t param);
void UI_func_eq_treble(uint8_t param); void UI_func_eq_treble(uint8_t param);
void UI_function_not_enabled(void); void UI_function_not_enabled(void);
void UI_function_not_implemented(uint8_t param); void UI_function_not_implemented(uint8_t param);
@ -7155,7 +7158,7 @@ void UI_func_eq_bass(uint8_t param)
} }
} }
lcd_display_meter_float("EQ Bass", configuration.fx.eq_bass, 0.1, 0.0, EQ_BASS_MIN, EQ_BASS_MAX, 1, 1, false, true, true); lcd_display_meter_float("EQ Bass", configuration.fx.eq_bass, 0.1, 0.0, EQ_BASS_MIN, EQ_BASS_MAX, 1, 1, false, true, true);
sgtl5000_1.eqBands(mapfloat(configuration.fx.eq_bass, EQ_BASS_MIN, EQ_BASS_MAX, -1.0, 1.0), mapfloat(configuration.fx.eq_treble, EQ_TREBLE_MIN, EQ_TREBLE_MAX, -1.0, 1.0)); sgtl5000_1.eqBand(0, mapfloat(configuration.fx.eq_bass, EQ_BASS_MIN, EQ_BASS_MAX, -1.0, 1.0));
} }
if (LCDML.FUNC_close()) // ****** STABLE END ********* if (LCDML.FUNC_close()) // ****** STABLE END *********
@ -7167,6 +7170,138 @@ void UI_func_eq_bass(uint8_t param)
#endif #endif
} }
void UI_func_eq_midbass(uint8_t param)
{
#ifndef SGTL5000_AUDIO_ENHANCE
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
lcd.print(F("EQ MidBass"));
lcd.setCursor(0, 1);
lcd.print(F("Not implemented."));
}
#else
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
lcd_special_chars(METERBAR);
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()))
{
if (LCDML.BT_checkDown())
{
configuration.fx.eq_midbass = constrain(configuration.fx.eq_midbass + ENCODER[ENC_R].speed(), EQ_MIDBASS_MIN, EQ_MIDBASS_MAX);
}
else if (LCDML.BT_checkUp())
{
configuration.fx.eq_midbass = constrain(configuration.fx.eq_midbass - ENCODER[ENC_R].speed(), EQ_MIDBASS_MIN, EQ_MIDBASS_MAX);
}
}
lcd_display_meter_float("EQ MidBass", configuration.fx.eq_midbass, 0.1, 0.0, EQ_MIDBASS_MIN, EQ_MIDBASS_MAX, 1, 1, false, true, true);
sgtl5000_1.eqBand(1, mapfloat(configuration.fx.eq_midbass, EQ_MIDBASS_MIN, EQ_MIDBASS_MAX, -1.0, 1.0));
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
lcd_special_chars(SCROLLBAR);
encoderDir[ENC_R].reset();
EEPROM.update(EEPROM_START_ADDRESS + offsetof(configuration_s, fx.eq_midbass), configuration.fx.eq_midbass);
}
#endif
}
void UI_func_eq_mid(uint8_t param)
{
#ifndef SGTL5000_AUDIO_ENHANCE
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
lcd.print(F("EQ Mid"));
lcd.setCursor(0, 1);
lcd.print(F("Not implemented."));
}
#else
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
lcd_special_chars(METERBAR);
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()))
{
if (LCDML.BT_checkDown())
{
configuration.fx.eq_mid = constrain(configuration.fx.eq_mid + ENCODER[ENC_R].speed(), EQ_MID_MIN, EQ_MID_MAX);
}
else if (LCDML.BT_checkUp())
{
configuration.fx.eq_mid = constrain(configuration.fx.eq_mid - ENCODER[ENC_R].speed(), EQ_MID_MIN, EQ_MID_MAX);
}
}
lcd_display_meter_float("EQ Mid", configuration.fx.eq_mid, 0.1, 0.0, EQ_MID_MIN, EQ_MID_MAX, 1, 1, false, true, true);
sgtl5000_1.eqBand(2, mapfloat(configuration.fx.eq_mid, EQ_MID_MIN, EQ_MID_MAX, -1.0, 1.0));
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
lcd_special_chars(SCROLLBAR);
encoderDir[ENC_R].reset();
EEPROM.update(EEPROM_START_ADDRESS + offsetof(configuration_s, fx.eq_mid), configuration.fx.eq_mid);
}
#endif
}
void UI_func_eq_midtreble(uint8_t param)
{
#ifndef SGTL5000_AUDIO_ENHANCE
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
lcd.print(F("EQ MidTreble"));
lcd.setCursor(0, 1);
lcd.print(F("Not implemented."));
}
#else
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
lcd_special_chars(METERBAR);
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()))
{
if (LCDML.BT_checkDown())
{
configuration.fx.eq_midtreble = constrain(configuration.fx.eq_midtreble + ENCODER[ENC_R].speed(), EQ_MIDTREBLE_MIN, EQ_MIDTREBLE_MAX);
}
else if (LCDML.BT_checkUp())
{
configuration.fx.eq_midtreble = constrain(configuration.fx.eq_midtreble - ENCODER[ENC_R].speed(), EQ_MIDTREBLE_MIN, EQ_MIDTREBLE_MAX);
}
}
lcd_display_meter_float("EQ MidTreble", configuration.fx.eq_midtreble, 0.1, 0.0, EQ_MIDTREBLE_MIN, EQ_MIDTREBLE_MAX, 1, 1, false, true, true);
sgtl5000_1.eqBand(3, mapfloat(configuration.fx.eq_midtreble, EQ_MIDTREBLE_MIN, EQ_MIDTREBLE_MAX, -1.0, 1.0));
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
lcd_special_chars(SCROLLBAR);
encoderDir[ENC_R].reset();
EEPROM.update(EEPROM_START_ADDRESS + offsetof(configuration_s, fx.eq_midtreble), configuration.fx.eq_midtreble);
}
#endif
}
void UI_func_eq_treble(uint8_t param) void UI_func_eq_treble(uint8_t param)
{ {
#ifndef SGTL5000_AUDIO_ENHANCE #ifndef SGTL5000_AUDIO_ENHANCE
@ -7174,7 +7309,7 @@ void UI_func_eq_treble(uint8_t param)
{ {
encoderDir[ENC_R].reset(); encoderDir[ENC_R].reset();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print(F("EQ Bass")); lcd.print(F("EQ Treble"));
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
lcd.print(F("Not implemented.")); lcd.print(F("Not implemented."));
} }
@ -7198,8 +7333,8 @@ void UI_func_eq_treble(uint8_t param)
configuration.fx.eq_treble = constrain(configuration.fx.eq_treble - ENCODER[ENC_R].speed(), EQ_TREBLE_MIN, EQ_TREBLE_MAX); configuration.fx.eq_treble = constrain(configuration.fx.eq_treble - ENCODER[ENC_R].speed(), EQ_TREBLE_MIN, EQ_TREBLE_MAX);
} }
} }
lcd_display_meter_float("EQ TREBLE", configuration.fx.eq_treble, 0.1, 0.0, EQ_TREBLE_MIN, EQ_TREBLE_MAX, 1, 1, false, true, true); lcd_display_meter_float("EQ Treble", configuration.fx.eq_treble, 0.1, 0.0, EQ_TREBLE_MIN, EQ_TREBLE_MAX, 1, 1, false, true, true);
sgtl5000_1.eqBands(mapfloat(configuration.fx.eq_treble, EQ_TREBLE_MIN, EQ_TREBLE_MAX, -1.0, 1.0), mapfloat(configuration.fx.eq_treble, EQ_TREBLE_MIN, EQ_TREBLE_MAX, -1.0, 1.0)); sgtl5000_1.eqBand(4,mapfloat(configuration.fx.eq_treble, EQ_TREBLE_MIN, EQ_TREBLE_MAX, -1.0, 1.0));
} }
if (LCDML.FUNC_close()) // ****** STABLE END ********* if (LCDML.FUNC_close()) // ****** STABLE END *********

@ -55,83 +55,86 @@ LCDML_add(21, LCDML_0_1_2_3_4, 3, "Level", UI_func_reverb_level);
LCDML_add(22, LCDML_0_1_2_3_4, 4, "Reverb Send", UI_func_reverb_send); LCDML_add(22, LCDML_0_1_2_3_4, 4, "Reverb Send", UI_func_reverb_send);
LCDML_add(23, LCDML_0_1_2_3, 5, "EQ", NULL); LCDML_add(23, LCDML_0_1_2_3, 5, "EQ", NULL);
LCDML_add(24, LCDML_0_1_2_3_5, 1, "Bass", UI_func_eq_bass); LCDML_add(24, LCDML_0_1_2_3_5, 1, "Bass", UI_func_eq_bass);
LCDML_add(25, LCDML_0_1_2_3_5, 2, "Treble", UI_func_eq_treble); LCDML_add(25, LCDML_0_1_2_3_5, 2, "MidBass", UI_func_eq_midbass);
LCDML_add(26, LCDML_0_1, 3, "Controller", NULL); LCDML_add(26, LCDML_0_1_2_3_5, 3, "Mid", UI_func_eq_mid);
LCDML_add(27, LCDML_0_1_3, 1, "Pitchbend", NULL); LCDML_add(27, LCDML_0_1_2_3_5, 4, "MidTreble", UI_func_eq_midtreble);
LCDML_add(28, LCDML_0_1_3_1, 1, "PB Range", UI_func_pb_range); LCDML_add(28, LCDML_0_1_2_3_5, 5, "Treble", UI_func_eq_treble);
LCDML_add(29, LCDML_0_1_3_1, 2, "PB Step", UI_func_pb_step); LCDML_add(29, LCDML_0_1, 3, "Controller", NULL);
LCDML_add(30, LCDML_0_1_3, 2, "Mod Wheel", NULL); LCDML_add(30, LCDML_0_1_3, 1, "Pitchbend", NULL);
LCDML_add(31, LCDML_0_1_3_2, 1, "MW Range", UI_func_mw_range); LCDML_add(31, LCDML_0_1_3_1, 1, "PB Range", UI_func_pb_range);
LCDML_add(32, LCDML_0_1_3_2, 2, "MW Assign", UI_func_mw_assign); LCDML_add(32, LCDML_0_1_3_1, 2, "PB Step", UI_func_pb_step);
LCDML_add(33, LCDML_0_1_3_2, 3, "MW Mode", UI_func_mw_mode); LCDML_add(33, LCDML_0_1_3, 2, "Mod Wheel", NULL);
LCDML_add(34, LCDML_0_1_3, 3, "Aftertouch", NULL); LCDML_add(34, LCDML_0_1_3_2, 1, "MW Range", UI_func_mw_range);
LCDML_add(35, LCDML_0_1_3_3, 1, "AT Range", UI_func_at_range); LCDML_add(35, LCDML_0_1_3_2, 2, "MW Assign", UI_func_mw_assign);
LCDML_add(36, LCDML_0_1_3_3, 2, "AT Assign", UI_func_at_assign); LCDML_add(36, LCDML_0_1_3_2, 3, "MW Mode", UI_func_mw_mode);
LCDML_add(37, LCDML_0_1_3_3, 3, "AT Mode", UI_func_at_mode); LCDML_add(37, LCDML_0_1_3, 3, "Aftertouch", NULL);
LCDML_add(38, LCDML_0_1_3, 4, "Foot Ctrl", NULL); LCDML_add(38, LCDML_0_1_3_3, 1, "AT Range", UI_func_at_range);
LCDML_add(39, LCDML_0_1_3_4, 1, "FC Range", UI_func_fc_range); LCDML_add(39, LCDML_0_1_3_3, 2, "AT Assign", UI_func_at_assign);
LCDML_add(40, LCDML_0_1_3_4, 2, "FC Assign", UI_func_fc_assign); LCDML_add(40, LCDML_0_1_3_3, 3, "AT Mode", UI_func_at_mode);
LCDML_add(41, LCDML_0_1_3_4, 3, "FC Mode", UI_func_fc_mode); LCDML_add(41, LCDML_0_1_3, 4, "Foot Ctrl", NULL);
LCDML_add(42, LCDML_0_1_3, 5, "Breath Ctrl", NULL); LCDML_add(42, LCDML_0_1_3_4, 1, "FC Range", UI_func_fc_range);
LCDML_add(43, LCDML_0_1_3_5, 1, "BC Range", UI_func_bc_range); LCDML_add(43, LCDML_0_1_3_4, 2, "FC Assign", UI_func_fc_assign);
LCDML_add(44, LCDML_0_1_3_5, 2, "BC Assign", UI_func_bc_assign); LCDML_add(44, LCDML_0_1_3_4, 3, "FC Mode", UI_func_fc_mode);
LCDML_add(45, LCDML_0_1_3_5, 3, "BC Mode", UI_func_bc_mode); LCDML_add(45, LCDML_0_1_3, 5, "Breath Ctrl", NULL);
LCDML_add(46, LCDML_0_1, 4, "MIDI", NULL); LCDML_add(46, LCDML_0_1_3_5, 1, "BC Range", UI_func_bc_range);
LCDML_add(47, LCDML_0_1_4, 1, "MIDI Channel", UI_func_midi_channel); LCDML_add(47, LCDML_0_1_3_5, 2, "BC Assign", UI_func_bc_assign);
LCDML_add(48, LCDML_0_1_4, 2, "Lowest Note", UI_func_lowest_note); LCDML_add(48, LCDML_0_1_3_5, 3, "BC Mode", UI_func_bc_mode);
LCDML_add(49, LCDML_0_1_4, 3, "Highest Note", UI_func_highest_note); LCDML_add(49, LCDML_0_1, 4, "MIDI", NULL);
LCDML_add(50, LCDML_0_1_4, 4, "MIDI Send Voice", UI_func_sysex_send_voice); LCDML_add(50, LCDML_0_1_4, 1, "MIDI Channel", UI_func_midi_channel);
LCDML_add(51, LCDML_0_1, 5, "Setup", NULL); LCDML_add(51, LCDML_0_1_4, 2, "Lowest Note", UI_func_lowest_note);
LCDML_add(52, LCDML_0_1_5, 1, "Portamento", NULL); LCDML_add(52, LCDML_0_1_4, 3, "Highest Note", UI_func_highest_note);
LCDML_add(53, LCDML_0_1_5_1, 1, "Port. Mode", UI_func_portamento_mode); LCDML_add(53, LCDML_0_1_4, 4, "MIDI Send Voice", UI_func_sysex_send_voice);
LCDML_add(54, LCDML_0_1_5_1, 2, "Port. Gliss", UI_func_portamento_glissando); LCDML_add(54, LCDML_0_1, 5, "Setup", NULL);
LCDML_add(55, LCDML_0_1_5_1, 3, "Port. Time", UI_func_portamento_time); LCDML_add(55, LCDML_0_1_5, 1, "Portamento", NULL);
LCDML_add(56, LCDML_0_1_5, 2, "Polyphony", UI_func_polyphony); LCDML_add(56, LCDML_0_1_5_1, 1, "Port. Mode", UI_func_portamento_mode);
LCDML_add(57, LCDML_0_1_5, 3, "Transpose", UI_func_transpose); LCDML_add(57, LCDML_0_1_5_1, 2, "Port. Gliss", UI_func_portamento_glissando);
LCDML_add(58, LCDML_0_1_5, 4, "Fine Tune", UI_func_tune); LCDML_add(58, LCDML_0_1_5_1, 3, "Port. Time", UI_func_portamento_time);
LCDML_add(59, LCDML_0_1_5, 5, "Mono/Poly", UI_func_mono_poly); LCDML_add(59, LCDML_0_1_5, 2, "Polyphony", UI_func_polyphony);
LCDML_add(60, LCDML_0_1, 6, "Internal", NULL); LCDML_add(60, LCDML_0_1_5, 3, "Transpose", UI_func_transpose);
LCDML_add(61, LCDML_0_1_6, 1, "Note Refresh", UI_func_note_refresh); LCDML_add(61, LCDML_0_1_5, 4, "Fine Tune", UI_func_tune);
LCDML_add(62, LCDML_0_1_6, 2, "Velocity Lvl", UI_func_velocity_level); LCDML_add(62, LCDML_0_1_5, 5, "Mono/Poly", UI_func_mono_poly);
LCDML_add(63, LCDML_0_1, 7, "Operator", UI_handle_OP); LCDML_add(63, LCDML_0_1, 6, "Internal", NULL);
LCDML_add(64, LCDML_0_1, 8, "Save Voice", UI_func_save_voice); LCDML_add(64, LCDML_0_1_6, 1, "Note Refresh", UI_func_note_refresh);
LCDML_add(65, LCDML_0, 3, "Load/Save", NULL); LCDML_add(65, LCDML_0_1_6, 2, "Velocity Lvl", UI_func_velocity_level);
LCDML_add(66, LCDML_0_3, 1, "Performance", NULL); LCDML_add(66, LCDML_0_1, 7, "Operator", UI_handle_OP);
LCDML_add(67, LCDML_0_3_1, 1, "Load Perf.", UI_func_load_performance); LCDML_add(67, LCDML_0_1, 8, "Save Voice", UI_func_save_voice);
LCDML_add(68, LCDML_0_3_1, 2, "Save Perf.", UI_func_save_performance); LCDML_add(68, LCDML_0, 3, "Load/Save", NULL);
LCDML_add(69, LCDML_0_3, 2, "Voice Config", NULL); LCDML_add(69, LCDML_0_3, 1, "Performance", NULL);
LCDML_add(70, LCDML_0_3_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig); LCDML_add(70, LCDML_0_3_1, 1, "Load Perf.", UI_func_load_performance);
LCDML_add(71, LCDML_0_3_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig); LCDML_add(71, LCDML_0_3_1, 2, "Save Perf.", UI_func_save_performance);
LCDML_add(72, LCDML_0_3, 3, "Effects", NULL); LCDML_add(72, LCDML_0_3, 2, "Voice Config", NULL);
LCDML_add(73, LCDML_0_3_3, 1, "Load Effects", UI_func_load_fx); LCDML_add(73, LCDML_0_3_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig);
LCDML_add(74, LCDML_0_3_3, 2, "Save Effects", UI_func_save_fx); LCDML_add(74, LCDML_0_3_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig);
LCDML_add(75, LCDML_0_3, 5, "MIDI", NULL); LCDML_add(75, LCDML_0_3, 3, "Effects", NULL);
LCDML_add(76, LCDML_0_3_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); LCDML_add(76, LCDML_0_3_3, 1, "Load Effects", UI_func_load_fx);
LCDML_add(77, LCDML_0_3_5, 2, "MIDI Snd Bank", UI_func_sysex_send_bank); LCDML_add(77, LCDML_0_3_3, 2, "Save Effects", UI_func_save_fx);
LCDML_add(78, LCDML_0_3_5, 3, "MIDI Snd Voice", UI_func_sysex_send_voice); LCDML_add(78, LCDML_0_3, 5, "MIDI", NULL);
LCDML_add(79, LCDML_0, 4, "Drums", NULL); LCDML_add(79, LCDML_0_3_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank);
LCDML_add(80, LCDML_0_4, 1, "Drums Main Vol", UI_func_drum_main_volume); LCDML_add(80, LCDML_0_3_5, 2, "MIDI Snd Bank", UI_func_sysex_send_bank);
LCDML_add(81, LCDML_0_4, 2, "Drum Volumes", UI_func_drum_volume); LCDML_add(81, LCDML_0_3_5, 3, "MIDI Snd Voice", UI_func_sysex_send_voice);
LCDML_add(82, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan); LCDML_add(82, LCDML_0, 4, "Drums", NULL);
LCDML_add(83, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send); LCDML_add(83, LCDML_0_4, 1, "Drums Main Vol", UI_func_drum_main_volume);
LCDML_add(84, LCDML_0, 5, "Sequencer", NULL); LCDML_add(84, LCDML_0_4, 2, "Drum Volumes", UI_func_drum_volume);
LCDML_add(85, LCDML_0_5, 1, "Sequencer", UI_func_sequencer); LCDML_add(85, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan);
LCDML_add(86, LCDML_0_5, 2, "Velocity Edit", UI_func_seq_vel_editor); LCDML_add(86, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send);
LCDML_add(87, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain); LCDML_add(87, LCDML_0, 5, "Sequencer", NULL);
LCDML_add(88, LCDML_0_5, 4, "Seq. Length", UI_func_seq_lenght); LCDML_add(88, LCDML_0_5, 1, "Sequencer", UI_func_sequencer);
LCDML_add(89, LCDML_0_5, 5, "Tempo", UI_func_seq_tempo); LCDML_add(89, LCDML_0_5, 2, "Velocity Edit", UI_func_seq_vel_editor);
LCDML_add(90, LCDML_0_5, 6, "L.Transp.Key", UI_func_seq_live_transpose_oct); LCDML_add(90, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain);
LCDML_add(91, LCDML_0_5, 7, "L.Trp.Offset", NULL); LCDML_add(91, LCDML_0_5, 4, "Seq. Length", UI_func_seq_lenght);
LCDML_add(92, LCDML_0_5, 8, "Track Setup", UI_func_seq_track_setup); LCDML_add(92, LCDML_0_5, 5, "Tempo", UI_func_seq_tempo);
LCDML_add(93, LCDML_0_5, 9, "Seq.Disp.Style", UI_func_seq_display_style); LCDML_add(93, LCDML_0_5, 6, "L.Transp.Key", UI_func_seq_live_transpose_oct);
LCDML_add(94, LCDML_0_5, 10, "LOAD Patterns", UI_func_seq_pattern_load); LCDML_add(94, LCDML_0_5, 7, "L.Trp.Offset", NULL);
LCDML_add(95, LCDML_0_5, 11, "SAVE Patterns", UI_func_seq_pattern_save); LCDML_add(95, LCDML_0_5, 8, "Track Setup", UI_func_seq_track_setup);
LCDML_add(96, LCDML_0, 6, "System", NULL); LCDML_add(96, LCDML_0_5, 9, "Seq.Disp.Style", UI_func_seq_display_style);
LCDML_add(97, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); LCDML_add(97, LCDML_0_5, 10, "LOAD Patterns", UI_func_seq_pattern_load);
LCDML_add(98, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); LCDML_add(98, LCDML_0_5, 11, "SAVE Patterns", UI_func_seq_pattern_save);
LCDML_add(99, LCDML_0_6, 3, "Favorites", UI_func_favorites); LCDML_add(99, LCDML_0, 6, "System", NULL);
LCDML_add(100, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); LCDML_add(100, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(101, LCDML_0, 7, "Info", UI_func_information); LCDML_add(101, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_addAdvanced(102, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); LCDML_add(102, LCDML_0_6, 3, "Favorites", UI_func_favorites);
#define _LCDML_DISP_cnt 102 LCDML_add(103, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset);
LCDML_add(104, LCDML_0, 7, "Info", UI_func_information);
LCDML_addAdvanced(105, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 105
#endif #endif

@ -58,82 +58,85 @@ LCDML_add(24, LCDML_0_1_2_3_4, 6, "Level", UI_func_reverb_level);
LCDML_add(25, LCDML_0_1_2_3_4, 7, "Reverb Send", UI_func_reverb_send); LCDML_add(25, LCDML_0_1_2_3_4, 7, "Reverb Send", UI_func_reverb_send);
LCDML_add(26, LCDML_0_1_2_3, 5, "EQ", NULL); LCDML_add(26, LCDML_0_1_2_3, 5, "EQ", NULL);
LCDML_add(27, LCDML_0_1_2_3_5, 1, "Bass", UI_func_eq_bass); LCDML_add(27, LCDML_0_1_2_3_5, 1, "Bass", UI_func_eq_bass);
LCDML_add(28, LCDML_0_1_2_3_5, 2, "Treble", UI_func_eq_treble); LCDML_add(28, LCDML_0_1_2_3_5, 2, "MidBass", UI_func_eq_midbass);
LCDML_add(29, LCDML_0_1, 3, "Controller", NULL); LCDML_add(29, LCDML_0_1_2_3_5, 3, "Mid", UI_func_eq_mid);
LCDML_add(30, LCDML_0_1_3, 1, "Pitchbend", NULL); LCDML_add(30, LCDML_0_1_2_3_5, 4, "MidTreble", UI_func_eq_midtreble);
LCDML_add(31, LCDML_0_1_3_1, 1, "PB Range", UI_func_pb_range); LCDML_add(31, LCDML_0_1_2_3_5, 5, "Treble", UI_func_eq_treble);
LCDML_add(32, LCDML_0_1_3_1, 2, "PB Step", UI_func_pb_step); LCDML_add(32, LCDML_0_1, 3, "Controller", NULL);
LCDML_add(33, LCDML_0_1_3, 2, "Mod Wheel", NULL); LCDML_add(33, LCDML_0_1_3, 1, "Pitchbend", NULL);
LCDML_add(34, LCDML_0_1_3_2, 1, "MW Range", UI_func_mw_range); LCDML_add(34, LCDML_0_1_3_1, 1, "PB Range", UI_func_pb_range);
LCDML_add(35, LCDML_0_1_3_2, 2, "MW Assign", UI_func_mw_assign); LCDML_add(35, LCDML_0_1_3_1, 2, "PB Step", UI_func_pb_step);
LCDML_add(36, LCDML_0_1_3_2, 3, "MW Mode", UI_func_mw_mode); LCDML_add(36, LCDML_0_1_3, 2, "Mod Wheel", NULL);
LCDML_add(37, LCDML_0_1_3, 3, "Aftertouch", NULL); LCDML_add(37, LCDML_0_1_3_2, 1, "MW Range", UI_func_mw_range);
LCDML_add(38, LCDML_0_1_3_3, 1, "AT Range", UI_func_at_range); LCDML_add(38, LCDML_0_1_3_2, 2, "MW Assign", UI_func_mw_assign);
LCDML_add(39, LCDML_0_1_3_3, 2, "AT Assign", UI_func_at_assign); LCDML_add(39, LCDML_0_1_3_2, 3, "MW Mode", UI_func_mw_mode);
LCDML_add(40, LCDML_0_1_3_3, 3, "AT Mode", UI_func_at_mode); LCDML_add(40, LCDML_0_1_3, 3, "Aftertouch", NULL);
LCDML_add(41, LCDML_0_1_3, 4, "Foot Ctrl", NULL); LCDML_add(41, LCDML_0_1_3_3, 1, "AT Range", UI_func_at_range);
LCDML_add(42, LCDML_0_1_3_4, 1, "FC Range", UI_func_fc_range); LCDML_add(42, LCDML_0_1_3_3, 2, "AT Assign", UI_func_at_assign);
LCDML_add(43, LCDML_0_1_3_4, 2, "FC Assign", UI_func_fc_assign); LCDML_add(43, LCDML_0_1_3_3, 3, "AT Mode", UI_func_at_mode);
LCDML_add(44, LCDML_0_1_3_4, 3, "FC Mode", UI_func_fc_mode); LCDML_add(44, LCDML_0_1_3, 4, "Foot Ctrl", NULL);
LCDML_add(45, LCDML_0_1_3, 5, "Breath Ctrl", NULL); LCDML_add(45, LCDML_0_1_3_4, 1, "FC Range", UI_func_fc_range);
LCDML_add(46, LCDML_0_1_3_5, 1, "BC Range", UI_func_bc_range); LCDML_add(46, LCDML_0_1_3_4, 2, "FC Assign", UI_func_fc_assign);
LCDML_add(47, LCDML_0_1_3_5, 2, "BC Assign", UI_func_bc_assign); LCDML_add(47, LCDML_0_1_3_4, 3, "FC Mode", UI_func_fc_mode);
LCDML_add(48, LCDML_0_1_3_5, 3, "BC Mode", UI_func_bc_mode); LCDML_add(48, LCDML_0_1_3, 5, "Breath Ctrl", NULL);
LCDML_add(49, LCDML_0_1, 4, "MIDI", NULL); LCDML_add(49, LCDML_0_1_3_5, 1, "BC Range", UI_func_bc_range);
LCDML_add(50, LCDML_0_1_4, 1, "MIDI Channel", UI_func_midi_channel); LCDML_add(50, LCDML_0_1_3_5, 2, "BC Assign", UI_func_bc_assign);
LCDML_add(51, LCDML_0_1_4, 2, "Lowest Note", UI_func_lowest_note); LCDML_add(51, LCDML_0_1_3_5, 3, "BC Mode", UI_func_bc_mode);
LCDML_add(52, LCDML_0_1_4, 3, "Highest Note", UI_func_highest_note); LCDML_add(52, LCDML_0_1, 4, "MIDI", NULL);
LCDML_add(53, LCDML_0_1_4, 4, "MIDI Send Voice", UI_func_sysex_send_voice); LCDML_add(53, LCDML_0_1_4, 1, "MIDI Channel", UI_func_midi_channel);
LCDML_add(54, LCDML_0_1, 5, "Setup", NULL); LCDML_add(54, LCDML_0_1_4, 2, "Lowest Note", UI_func_lowest_note);
LCDML_add(55, LCDML_0_1_5, 1, "Portamento", NULL); LCDML_add(55, LCDML_0_1_4, 3, "Highest Note", UI_func_highest_note);
LCDML_add(56, LCDML_0_1_5_1, 1, "Port. Mode", UI_func_portamento_mode); LCDML_add(56, LCDML_0_1_4, 4, "MIDI Send Voice", UI_func_sysex_send_voice);
LCDML_add(57, LCDML_0_1_5_1, 2, "Port. Gliss", UI_func_portamento_glissando); LCDML_add(57, LCDML_0_1, 5, "Setup", NULL);
LCDML_add(58, LCDML_0_1_5_1, 3, "Port. Time", UI_func_portamento_time); LCDML_add(58, LCDML_0_1_5, 1, "Portamento", NULL);
LCDML_add(59, LCDML_0_1_5, 2, "Polyphony", UI_func_polyphony); LCDML_add(59, LCDML_0_1_5_1, 1, "Port. Mode", UI_func_portamento_mode);
LCDML_add(60, LCDML_0_1_5, 3, "Transpose", UI_func_transpose); LCDML_add(60, LCDML_0_1_5_1, 2, "Port. Gliss", UI_func_portamento_glissando);
LCDML_add(61, LCDML_0_1_5, 4, "Fine Tune", UI_func_tune); LCDML_add(61, LCDML_0_1_5_1, 3, "Port. Time", UI_func_portamento_time);
LCDML_add(62, LCDML_0_1_5, 5, "Mono/Poly", UI_func_mono_poly); LCDML_add(62, LCDML_0_1_5, 2, "Polyphony", UI_func_polyphony);
LCDML_add(63, LCDML_0_1, 6, "Internal", NULL); LCDML_add(63, LCDML_0_1_5, 3, "Transpose", UI_func_transpose);
LCDML_add(64, LCDML_0_1_6, 1, "Note Refresh", UI_func_note_refresh); LCDML_add(64, LCDML_0_1_5, 4, "Fine Tune", UI_func_tune);
LCDML_add(65, LCDML_0_1_6, 2, "Velocity Lvl", UI_func_velocity_level); LCDML_add(65, LCDML_0_1_5, 5, "Mono/Poly", UI_func_mono_poly);
LCDML_add(66, LCDML_0_1, 7, "Operator", UI_handle_OP); LCDML_add(66, LCDML_0_1, 6, "Internal", NULL);
LCDML_add(67, LCDML_0_1, 8, "Save Voice", UI_func_save_voice); LCDML_add(67, LCDML_0_1_6, 1, "Note Refresh", UI_func_note_refresh);
LCDML_add(68, LCDML_0, 3, "Load/Save", NULL); LCDML_add(68, LCDML_0_1_6, 2, "Velocity Lvl", UI_func_velocity_level);
LCDML_add(69, LCDML_0_3, 1, "Performance", NULL); LCDML_add(69, LCDML_0_1, 7, "Operator", UI_handle_OP);
LCDML_add(70, LCDML_0_3_1, 1, "Load Perf.", UI_func_load_performance); LCDML_add(70, LCDML_0_1, 8, "Save Voice", UI_func_save_voice);
LCDML_add(71, LCDML_0_3_1, 2, "Save Perf.", UI_func_save_performance); LCDML_add(71, LCDML_0, 3, "Load/Save", NULL);
LCDML_add(72, LCDML_0_3, 2, "Voice Config", NULL); LCDML_add(72, LCDML_0_3, 1, "Performance", NULL);
LCDML_add(73, LCDML_0_3_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig); LCDML_add(73, LCDML_0_3_1, 1, "Load Perf.", UI_func_load_performance);
LCDML_add(74, LCDML_0_3_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig); LCDML_add(74, LCDML_0_3_1, 2, "Save Perf.", UI_func_save_performance);
LCDML_add(75, LCDML_0_3, 3, "Effects", NULL); LCDML_add(75, LCDML_0_3, 2, "Voice Config", NULL);
LCDML_add(76, LCDML_0_3_3, 1, "Load Effects", UI_func_load_fx); LCDML_add(76, LCDML_0_3_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig);
LCDML_add(77, LCDML_0_3_3, 2, "Save Effects", UI_func_save_fx); LCDML_add(77, LCDML_0_3_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig);
LCDML_add(78, LCDML_0_3, 5, "MIDI", NULL); LCDML_add(78, LCDML_0_3, 3, "Effects", NULL);
LCDML_add(79, LCDML_0_3_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); LCDML_add(79, LCDML_0_3_3, 1, "Load Effects", UI_func_load_fx);
LCDML_add(80, LCDML_0_3_5, 2, "MIDI Snd Bank", UI_func_sysex_send_bank); LCDML_add(80, LCDML_0_3_3, 2, "Save Effects", UI_func_save_fx);
LCDML_add(81, LCDML_0_3_5, 3, "MIDI Snd Voice", UI_func_sysex_send_voice); LCDML_add(81, LCDML_0_3, 5, "MIDI", NULL);
LCDML_add(82, LCDML_0, 4, "Drums", NULL); LCDML_add(82, LCDML_0_3_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank);
LCDML_add(83, LCDML_0_4, 1, "Drums Main Vol", UI_func_drum_main_volume); LCDML_add(83, LCDML_0_3_5, 2, "MIDI Snd Bank", UI_func_sysex_send_bank);
LCDML_add(84, LCDML_0_4, 2, "Drum Volumes", UI_func_drum_volume); LCDML_add(84, LCDML_0_3_5, 3, "MIDI Snd Voice", UI_func_sysex_send_voice);
LCDML_add(85, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan); LCDML_add(85, LCDML_0, 4, "Drums", NULL);
LCDML_add(86, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send); LCDML_add(86, LCDML_0_4, 1, "Drums Main Vol", UI_func_drum_main_volume);
LCDML_add(87, LCDML_0, 5, "Sequencer", NULL); LCDML_add(87, LCDML_0_4, 2, "Drum Volumes", UI_func_drum_volume);
LCDML_add(88, LCDML_0_5, 1, "Sequencer", UI_func_sequencer); LCDML_add(88, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan);
LCDML_add(89, LCDML_0_5, 2, "Velocity Edit", UI_func_seq_vel_editor); LCDML_add(89, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send);
LCDML_add(90, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain); LCDML_add(90, LCDML_0, 5, "Sequencer", NULL);
LCDML_add(91, LCDML_0_5, 4, "Seq. Length", UI_func_seq_lenght); LCDML_add(91, LCDML_0_5, 1, "Sequencer", UI_func_sequencer);
LCDML_add(92, LCDML_0_5, 5, "Tempo", UI_func_seq_tempo); LCDML_add(92, LCDML_0_5, 2, "Velocity Edit", UI_func_seq_vel_editor);
LCDML_add(93, LCDML_0_5, 6, "L.Transp.Key", UI_func_seq_live_transpose_oct); LCDML_add(93, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain);
LCDML_add(94, LCDML_0_5, 7, "Track Setup", UI_func_seq_track_setup); LCDML_add(94, LCDML_0_5, 4, "Seq. Length", UI_func_seq_lenght);
LCDML_add(95, LCDML_0_5, 8, "Seq.Disp.Style", UI_func_seq_display_style); LCDML_add(95, LCDML_0_5, 5, "Tempo", UI_func_seq_tempo);
LCDML_add(96, LCDML_0_5, 9, "LOAD Patterns", UI_func_seq_pattern_load); LCDML_add(96, LCDML_0_5, 6, "L.Transp.Key", UI_func_seq_live_transpose_oct);
LCDML_add(97, LCDML_0_5, 10, "SAVE Patterns", UI_func_seq_pattern_save); LCDML_add(97, LCDML_0_5, 7, "Track Setup", UI_func_seq_track_setup);
LCDML_add(98, LCDML_0, 6, "System", NULL); LCDML_add(98, LCDML_0_5, 8, "Seq.Disp.Style", UI_func_seq_display_style);
LCDML_add(99, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); LCDML_add(99, LCDML_0_5, 9, "LOAD Patterns", UI_func_seq_pattern_load);
LCDML_add(100, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); LCDML_add(100, LCDML_0_5, 10, "SAVE Patterns", UI_func_seq_pattern_save);
LCDML_add(101, LCDML_0_6, 3, "Favorites", UI_func_favorites); LCDML_add(101, LCDML_0, 6, "System", NULL);
LCDML_add(102, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); LCDML_add(102, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(103, LCDML_0, 7, "Info", UI_func_information); LCDML_add(103, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_addAdvanced(104, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); LCDML_add(104, LCDML_0_6, 3, "Favorites", UI_func_favorites);
#define _LCDML_DISP_cnt 104 LCDML_add(105, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset);
LCDML_add(106, LCDML_0, 7, "Info", UI_func_information);
LCDML_addAdvanced(107, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 107
#endif #endif

@ -612,6 +612,18 @@
#define EQ_BASS_MAX 10 #define EQ_BASS_MAX 10
#define EQ_BASS_DEFAULT 0 #define EQ_BASS_DEFAULT 0
#define EQ_MIDBASS_MIN -10
#define EQ_MIDBASS_MAX 10
#define EQ_MIDBASS_DEFAULT 0
#define EQ_MID_MIN -10
#define EQ_MID_MAX 10
#define EQ_MID_DEFAULT 0
#define EQ_MIDTREBLE_MIN -10
#define EQ_MIDTREBLE_MAX 10
#define EQ_MIDTREBLE_DEFAULT 0
#define EQ_TREBLE_MIN -10 #define EQ_TREBLE_MIN -10
#define EQ_TREBLE_MAX 10 #define EQ_TREBLE_MAX 10
#define EQ_TREBLE_DEFAULT 0 #define EQ_TREBLE_DEFAULT 0
@ -673,6 +685,9 @@ typedef struct fx_s {
uint8_t reverb_diffusion; uint8_t reverb_diffusion;
uint8_t reverb_level; uint8_t reverb_level;
int8_t eq_bass; int8_t eq_bass;
int8_t eq_midbass;
int8_t eq_mid;
int8_t eq_midtreble;
int8_t eq_treble; int8_t eq_treble;
} fx_t; } fx_t;

Loading…
Cancel
Save