@ -56,6 +56,7 @@ extern void eeprom_update_sys(void);
extern void eeprom_update_performance ( void ) ;
extern void eeprom_update_fx ( void ) ;
extern void eeprom_update_dexed ( uint8_t instance_id ) ;
extern float pseudo_log_curve ( float value , bool type ) ;
extern uint8_t selected_instance_id ;
# ifdef DISPLAY_LCD_SPI
@ -909,7 +910,7 @@ void UI_func_reverb_roomsize(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Reverb Room " , configuration . fx . reverb_roomsize , 1.0 , REVERB_ROOMSIZE_MIN , REVERB_ROOMSIZE_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Reverb Room " , configuration . fx . reverb_roomsize , 1.0 , REVERB_ROOMSIZE_MIN , REVERB_ROOMSIZE_MAX , 3 , false , false , true ) ;
}
if ( LCDML . FUNC_loop ( ) ) // ****** LOOP *********
@ -921,7 +922,7 @@ void UI_func_reverb_roomsize(uint8_t param)
else if ( LCDML . BT_checkUp ( ) )
configuration . fx . reverb_roomsize = constrain ( configuration . fx . reverb_roomsize - ENCODER [ ENC_R ] . speed ( ) , REVERB_ROOMSIZE_MIN , REVERB_ROOMSIZE_MAX ) ;
}
lcd_display_bar_int ( " Reverb Room " , configuration . fx . reverb_roomsize , 1.0 , REVERB_ROOMSIZE_MIN , REVERB_ROOMSIZE_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Reverb Room " , configuration . fx . reverb_roomsize , 1.0 , REVERB_ROOMSIZE_MIN , REVERB_ROOMSIZE_MAX , 3 , false , false , false ) ;
freeverb_r . roomsize ( mapfloat ( configuration . fx . reverb_roomsize , REVERB_ROOMSIZE_MIN , REVERB_ROOMSIZE_MAX , 0.0 , 1.0 ) ) ;
freeverb_l . roomsize ( mapfloat ( configuration . fx . reverb_roomsize , REVERB_ROOMSIZE_MIN , REVERB_ROOMSIZE_MAX , 0.0 , 1.0 ) ) ;
@ -942,7 +943,7 @@ void UI_func_reverb_damping(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Reverb Damp. " , configuration . fx . reverb_damping , 1.0 , REVERB_DAMPING_MIN , REVERB_DAMPING_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Reverb Damp. " , configuration . fx . reverb_damping , 1.0 , REVERB_DAMPING_MIN , REVERB_DAMPING_MAX , 3 , false , false , true ) ;
}
if ( LCDML . FUNC_loop ( ) ) // ****** LOOP *********
@ -955,7 +956,7 @@ void UI_func_reverb_damping(uint8_t param)
configuration . fx . reverb_damping = constrain ( configuration . fx . reverb_damping - ENCODER [ ENC_R ] . speed ( ) , REVERB_DAMPING_MIN , REVERB_DAMPING_MAX ) ;
}
lcd_display_bar_int ( " Reverb Damp. " , configuration . fx . reverb_damping , 1.0 , REVERB_DAMPING_MIN , REVERB_DAMPING_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Reverb Damp. " , configuration . fx . reverb_damping , 1.0 , REVERB_DAMPING_MIN , REVERB_DAMPING_MAX , 3 , false , false , false ) ;
freeverb_l . damping ( mapfloat ( configuration . fx . reverb_damping , REVERB_DAMPING_MIN , REVERB_DAMPING_MAX , 0.0 , 1.0 ) ) ;
freeverb_r . damping ( mapfloat ( configuration . fx . reverb_damping , REVERB_DAMPING_MIN , REVERB_DAMPING_MAX , 0.0 , 1.0 ) ) ;
@ -976,7 +977,7 @@ void UI_func_reverb_level(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Reverb Level " , configuration . fx . reverb_level , 1.0 , REVERB_LEVEL_MIN , REVERB_LEVEL_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Reverb Level " , configuration . fx . reverb_level , 1.0 , REVERB_LEVEL_MIN , REVERB_LEVEL_MAX , 3 , false , false , true ) ;
}
if ( LCDML . FUNC_loop ( ) ) // ****** LOOP *********
@ -989,10 +990,10 @@ void UI_func_reverb_level(uint8_t param)
configuration . fx . reverb_level = constrain ( configuration . fx . reverb_level - ENCODER [ ENC_R ] . speed ( ) , REVERB_LEVEL_MIN , REVERB_LEVEL_MAX ) ;
}
lcd_display_bar_int ( " Reverb Level " , configuration . fx . reverb_level , 1.0 , REVERB_LEVEL_MIN , REVERB_LEVEL_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Reverb Level " , configuration . fx . reverb_level , 1.0 , REVERB_LEVEL_MIN , REVERB_LEVEL_MAX , 3 , false , false , true ) ;
master_mixer_r . gain ( 3 , configuration . fx . reverb_level / 100.0 ) ;
master_mixer_l . gain ( 3 , configuration . fx . reverb_level / 100.0 ) ;
master_mixer_r . gain ( 3 , pseudo_log_curve ( configuration . fx . reverb_level / 100.0 , true ) ) ;
master_mixer_l . gain ( 3 , pseudo_log_curve ( configuration . fx . reverb_level / 100.0 , true ) ) ;
}
if ( LCDML . FUNC_close ( ) ) // ****** STABLE END *********
@ -1125,7 +1126,7 @@ void UI_func_chorus_depth(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Chorus Dpt. " , configuration . fx . chorus_depth [ selected_instance_id ] , 1.0 , CHORUS_DEPTH_MIN , CHORUS_DEPTH_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Chorus Dpt. " , configuration . fx . chorus_depth [ selected_instance_id ] , 1.0 , CHORUS_DEPTH_MIN , CHORUS_DEPTH_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1155,7 +1156,7 @@ void UI_func_chorus_depth(uint8_t param)
# endif
}
lcd_display_bar_int ( " Chorus Dpt. " , configuration . fx . chorus_depth [ selected_instance_id ] , 1.0 , CHORUS_DEPTH_MIN , CHORUS_DEPTH_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Chorus Dpt. " , configuration . fx . chorus_depth [ selected_instance_id ] , 1.0 , CHORUS_DEPTH_MIN , CHORUS_DEPTH_MAX , 3 , false , false , false ) ;
chorus_modulator [ selected_instance_id ] - > amplitude ( configuration . fx . chorus_depth [ selected_instance_id ] / 100.0 ) ;
}
@ -1178,7 +1179,7 @@ void UI_func_chorus_level(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Chorus Lvl. " , configuration . fx . chorus_level [ selected_instance_id ] , 1.0 , CHORUS_LEVEL_MIN , CHORUS_LEVEL_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Chorus Lvl. " , configuration . fx . chorus_level [ selected_instance_id ] , 1.0 , CHORUS_LEVEL_MIN , CHORUS_LEVEL_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1208,7 +1209,7 @@ void UI_func_chorus_level(uint8_t param)
# endif
}
lcd_display_bar_int ( " Chorus Lvl. " , configuration . fx . chorus_level [ selected_instance_id ] , 1.0 , CHORUS_LEVEL_MIN , CHORUS_LEVEL_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Chorus Lvl. " , configuration . fx . chorus_level [ selected_instance_id ] , 1.0 , CHORUS_LEVEL_MIN , CHORUS_LEVEL_MAX , 3 , false , false , false ) ;
//chorus_mixer[selected_instance_id]->gain(0, 1.0 - pseudo_log_curve(mapfloat(configuration.fx.chorus_level[selected_instance_id], CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 0.0, 1.0), true));
//chorus_mixer[selected_instance_id]->gain(1, pseudo_log_curve(mapfloat(configuration.fx.chorus_level[selected_instance_id], CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 0.0, 1.0), true));
@ -1234,7 +1235,7 @@ void UI_func_delay_time(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Delay Time " , configuration . fx . delay_time [ selected_instance_id ] , 10.0 , DELAY_TIME_MIN , DELAY_TIME_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Delay Time " , configuration . fx . delay_time [ selected_instance_id ] , 10.0 , DELAY_TIME_MIN , DELAY_TIME_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1264,7 +1265,7 @@ void UI_func_delay_time(uint8_t param)
# endif
}
lcd_display_bar_int ( " Delay Time " , configuration . fx . delay_time [ selected_instance_id ] , 10.0 , DELAY_TIME_MIN , DELAY_TIME_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Delay Time " , configuration . fx . delay_time [ selected_instance_id ] , 10.0 , DELAY_TIME_MIN , DELAY_TIME_MAX , 3 , false , false , true ) ;
delay_fx [ selected_instance_id ] - > delay ( 0 , configuration . fx . delay_time [ selected_instance_id ] * 10 ) ;
}
@ -1287,7 +1288,7 @@ void UI_func_delay_feedback(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Delay Feedb. " , configuration . fx . delay_feedback [ selected_instance_id ] , 1.0 , DELAY_FEEDBACK_MIN , DELAY_FEEDBACK_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Delay Feedb. " , configuration . fx . delay_feedback [ selected_instance_id ] , 1.0 , DELAY_FEEDBACK_MIN , DELAY_FEEDBACK_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1317,7 +1318,7 @@ void UI_func_delay_feedback(uint8_t param)
# endif
}
lcd_display_bar_int ( " Delay Feedb. " , configuration . fx . delay_feedback [ selected_instance_id ] , 1.0 , DELAY_FEEDBACK_MIN , DELAY_FEEDBACK_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Delay Feedb. " , configuration . fx . delay_feedback [ selected_instance_id ] , 1.0 , DELAY_FEEDBACK_MIN , DELAY_FEEDBACK_MAX , 3 , false , false , false ) ;
delay_fb_mixer [ selected_instance_id ] - > gain ( 1 , configuration . fx . delay_feedback [ selected_instance_id ] / 100.0 ) ; // amount of feedback
}
@ -1340,7 +1341,7 @@ void UI_func_delay_level(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Delay Lvl. " , configuration . fx . delay_level [ selected_instance_id ] , 1.0 , DELAY_LEVEL_MIN , DELAY_LEVEL_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Delay Lvl. " , configuration . fx . delay_level [ selected_instance_id ] , 1.0 , DELAY_LEVEL_MIN , DELAY_LEVEL_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1370,9 +1371,9 @@ void UI_func_delay_level(uint8_t param)
# endif
}
lcd_display_bar_int ( " Delay Lvl. " , configuration . fx . delay_level [ selected_instance_id ] , 1.0 , DELAY_LEVEL_MIN , DELAY_LEVEL_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Delay Lvl. " , configuration . fx . delay_level [ selected_instance_id ] , 1.0 , DELAY_LEVEL_MIN , DELAY_LEVEL_MAX , 3 , false , false , false ) ;
delay_mixer [ selected_instance_id ] - > gain ( 1 , mapfloat ( configuration . fx . delay_level [ selected_instance_id ] , DELAY_LEVEL_MIN , DELAY_LEVEL_MAX , 0.0 , 1.0 ) ) ;
delay_mixer [ selected_instance_id ] - > gain ( 1 , pseudo_log_curve ( mapfloat ( configuration . fx . delay_level [ selected_instance_id ] , DELAY_LEVEL_MIN , DELAY_LEVEL_MAX , 0.0 , 1.0 ) , true ) ) ;
}
if ( LCDML . FUNC_close ( ) ) // ****** STABLE END *********
@ -1393,7 +1394,7 @@ void UI_func_reverb_send(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Reverb Send " , configuration . fx . reverb_send [ selected_instance_id ] , 1.0 , REVERB_SEND_MIN , REVERB_SEND_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Reverb Send " , configuration . fx . reverb_send [ selected_instance_id ] , 1.0 , REVERB_SEND_MIN , REVERB_SEND_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1423,10 +1424,10 @@ void UI_func_reverb_send(uint8_t param)
# endif
}
lcd_display_bar_int ( " Reverb Send " , configuration . fx . reverb_send [ selected_instance_id ] , 1.0 , REVERB_SEND_MIN , REVERB_SEND_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Reverb Send " , configuration . fx . reverb_send [ selected_instance_id ] , 1.0 , REVERB_SEND_MIN , REVERB_SEND_MAX , 3 , false , false , false ) ;
reverb_mixer_r . gain ( selected_instance_id , configuration . fx . reverb_send [ selected_instance_id ] / 100.0 ) ;
reverb_mixer_l . gain ( selected_instance_id , configuration . fx . reverb_send [ selected_instance_id ] / 100.0 ) ;
reverb_mixer_r . gain ( selected_instance_id , pseudo_log_curve ( configuration . fx . reverb_send [ selected_instance_id ] / 100.0 , true ) ) ;
reverb_mixer_l . gain ( selected_instance_id , pseudo_log_curve ( configuration . fx . reverb_send [ selected_instance_id ] / 100.0 , true ) ) ;
}
if ( LCDML . FUNC_close ( ) ) // ****** STABLE END *********
@ -1447,7 +1448,7 @@ void UI_func_filter_cutoff(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Filter Cut " , configuration . dexed [ selected_instance_id ] . filter_cutoff , 1.0 , FILTER_CUTOFF_MIN , FILTER_CUTOFF_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Filter Cut " , configuration . dexed [ selected_instance_id ] . filter_cutoff , 1.0 , FILTER_CUTOFF_MIN , FILTER_CUTOFF_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1477,7 +1478,7 @@ void UI_func_filter_cutoff(uint8_t param)
# endif
}
lcd_display_bar_int ( " Filter Cut " , configuration . dexed [ selected_instance_id ] . filter_cutoff , 1.0 , FILTER_CUTOFF_MIN , FILTER_CUTOFF_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Filter Cut " , configuration . dexed [ selected_instance_id ] . filter_cutoff , 1.0 , FILTER_CUTOFF_MIN , FILTER_CUTOFF_MAX , 3 , false , false , false ) ;
MicroDexed [ selected_instance_id ] - > fx . Cutoff = mapfloat ( configuration . dexed [ selected_instance_id ] . filter_cutoff , FILTER_CUTOFF_MIN , FILTER_CUTOFF_MAX , 1.0 , 0.0 ) ;
}
@ -1500,7 +1501,7 @@ void UI_func_filter_resonance(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( BLOCKBAR ) ;
lcd_display_bar_int ( " Filter Res " , configuration . dexed [ selected_instance_id ] . filter_resonance , 1.0 , FILTER_RESONANCE_MIN , FILTER_RESONANCE_MAX , 2 , false , false , true ) ;
lcd_display_bar_int ( " Filter Res " , configuration . dexed [ selected_instance_id ] . filter_resonance , 1.0 , FILTER_RESONANCE_MIN , FILTER_RESONANCE_MAX , 3 , false , false , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1530,7 +1531,7 @@ void UI_func_filter_resonance(uint8_t param)
# endif
}
lcd_display_bar_int ( " Filter Res " , configuration . dexed [ selected_instance_id ] . filter_resonance , 1.0 , FILTER_RESONANCE_MIN , FILTER_RESONANCE_MAX , 2 , false , false , false ) ;
lcd_display_bar_int ( " Filter Res " , configuration . dexed [ selected_instance_id ] . filter_resonance , 1.0 , FILTER_RESONANCE_MIN , FILTER_RESONANCE_MAX , 3 , false , false , false ) ;
MicroDexed [ selected_instance_id ] - > fx . Reso = mapfloat ( configuration . dexed [ selected_instance_id ] . filter_resonance , FILTER_RESONANCE_MIN , FILTER_RESONANCE_MAX , 1.0 , 0.0 ) ;
}
@ -1608,7 +1609,7 @@ void UI_func_tune(uint8_t param)
encoderDir [ ENC_R ] . reset ( ) ;
lcd_special_chars ( METERBAR ) ;
lcd_display_meter_int ( " Fine Tune " , configuration . dexed [ selected_instance_id ] . tune , 1.0 , - 100.0 , TUNE_MIN , TUNE_MAX , 2 , false , true , true ) ;
lcd_display_meter_int ( " Fine Tune " , configuration . dexed [ selected_instance_id ] . tune , 1.0 , - 100.0 , TUNE_MIN , TUNE_MAX , 3 , false , true , true ) ;
lcd_active_instance_number ( selected_instance_id ) ;
lcd . setCursor ( 14 , 0 ) ;
@ -1638,7 +1639,7 @@ void UI_func_tune(uint8_t param)
# endif
}
lcd_display_meter_int ( " Fine Tune " , configuration . dexed [ selected_instance_id ] . tune , 1.0 , - 100.0 , TUNE_MIN , TUNE_MAX , 2 , false , true , false ) ;
lcd_display_meter_int ( " Fine Tune " , configuration . dexed [ selected_instance_id ] . tune , 1.0 , - 100.0 , TUNE_MIN , TUNE_MAX , 3 , false , true , false ) ;
MicroDexed [ selected_instance_id ] - > controllers . masterTune = ( int ( ( configuration . dexed [ selected_instance_id ] . tune - 100 ) / 100.0 * 0x4000 ) < < 11 ) * ( 1.0 / 12 ) ;
MicroDexed [ selected_instance_id ] - > doRefreshVoice ( ) ;
@ -1878,7 +1879,7 @@ void UI_func_sound_intensity(uint8_t param)
}
lcd_display_bar_int ( " Voice Level " , configuration . dexed [ selected_instance_id ] . sound_intensity , 1.0 , SOUND_INTENSITY_MIN , SOUND_INTENSITY_MAX , 3 , false , false , false ) ;
dexed_level [ selected_instance_id ] - > gain ( mapfloat ( configuration . dexed [ selected_instance_id ] . sound_intensity , SOUND_INTENSITY_MIN , SOUND_INTENSITY_MAX , 0.0 , SOUND_INTENSITY_AMP_MAX ) ) ;
dexed_level [ selected_instance_id ] - > gain ( pseudo_log_curve ( mapfloat ( configuration . dexed [ selected_instance_id ] . sound_intensity , SOUND_INTENSITY_MIN , SOUND_INTENSITY_MAX , 0.0 , SOUND_INTENSITY_AMP_MAX ) , true ) ) ;
}
if ( LCDML . FUNC_close ( ) ) // ****** STABLE END *********