From 40a9d06e4c095fd425d24ccb769524b52237565a Mon Sep 17 00:00:00 2001 From: Stephen Rigler Date: Sun, 10 May 2009 14:13:40 +0200 Subject: [PATCH] add GNX3000 delay settings --- effects.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++----- gdigi.h | 27 ++++++++++++----- 2 files changed, 100 insertions(+), 14 deletions(-) diff --git a/effects.c b/effects.c index a451d8c..7de1946 100644 --- a/effects.c +++ b/effects.c @@ -387,6 +387,11 @@ static EffectValues values_delay_time_0_760 = { 0.0, 760.0, NULL, }; +static EffectValues values_delay_time_0_2000 = { + /** \todo make this display propertly */ + 0.0, 2000.0, NULL, +}; + static EffectValues values_delay_time_0_4650 = { /** \todo make this display propertly */ 0.0, 4650.0, NULL, @@ -407,11 +412,21 @@ static EffectValues values_delay_repeats = { 0.0, 100.0, NULL, }; +static EffectValues values_delay_thresh = { + /** \todo make last value display propertly */ + 0.0, 100.0, NULL, +}; + static EffectValues values_delay_repeat_rate_0_286 = { /** \todo make this display propertly */ 0.0, 286.0, NULL, }; +static EffectValues values_delay_spread_0_49 = { + /** \todo make this display propertly */ + 0.0, 49.0, NULL, +}; + static EffectValues values_on_off = { 0.0, 1.0, on_off_labels, }; @@ -480,10 +495,10 @@ static EffectSettings gnx3k_preset_settings[] = { }; static EffectSettings gnx3k_comp_settings[] = { - {"Attack", GN3K_COMP_ATTACK, COMP_POSITION, &values_fast_medium_slow}, - {"Ratio", GN3K_COMP_RATIO, COMP_POSITION, &values_comp_ratio}, - {"Threshold", GN3K_COMP_THRESHOLD, COMP_POSITION, &values_0_to_99}, - {"Gain", GN3K_COMP_GAIN, COMP_POSITION, &values_0_to_20}, + {"Attack", GNX3K_COMP_ATTACK, COMP_POSITION, &values_fast_medium_slow}, + {"Ratio", GNX3K_COMP_RATIO, COMP_POSITION, &values_comp_ratio}, + {"Threshold", GNX3K_COMP_THRESHOLD, COMP_POSITION, &values_0_to_99}, + {"Gain", GNX3K_COMP_GAIN, COMP_POSITION, &values_0_to_20}, }; static EffectSettings comp_digi_settings[] = { @@ -999,6 +1014,51 @@ static EffectSettings chorusfx_octaver_settings[] = { {"Dry Level", OCTAVER_DRY_LEVEL, CHORUSFX_POSITION, &values_0_to_99}, }; +static EffectSettings gnx3k_delay_mono_settings[] = { + {"Time", GNX3K_DELAY_TIME, DELAY_POSITION, &values_delay_time_0_2000}, + {"Feedback", GNX3K_DELAY_FEEDBACK, DELAY_POSITION, &values_delay_repeats}, + {"Thresh", GNX3K_DELAY_DUCK_THRESH, DELAY_POSITION, &values_delay_thresh}, + {"Atten", GNX3K_DELAY_DUCK_ATTEN, DELAY_POSITION, &values_0_to_99}, + {"Balance", GNX3K_DELAY_BALANCE, DELAY_POSITION, &values_synth_talk_balance}, + {"Level", DELAY_LEVEL, DELAY_POSITION, &values_0_to_99}, +}; + +static EffectSettings gnx3k_delay_pingpong_settings[] = { + {"Time", GNX3K_DELAY_TIME, DELAY_POSITION, &values_delay_time_0_2000}, + {"Feedback", GNX3K_DELAY_FEEDBACK, DELAY_POSITION, &values_delay_repeats}, + {"Thresh", GNX3K_DELAY_DUCK_THRESH, DELAY_POSITION, &values_delay_thresh}, + {"Atten", GNX3K_DELAY_DUCK_ATTEN, DELAY_POSITION, &values_0_to_99}, + {"Balance", GNX3K_DELAY_BALANCE, DELAY_POSITION, &values_synth_talk_balance}, + {"Level", DELAY_LEVEL, DELAY_POSITION, &values_0_to_99}, +}; + +static EffectSettings gnx3k_delay_analog_settings[] = { + {"Time", GNX3K_DELAY_TIME, DELAY_POSITION, &values_delay_time_0_2000}, + {"Feedback", GNX3K_DELAY_FEEDBACK, DELAY_POSITION, &values_delay_repeats}, + {"Thresh", GNX3K_DELAY_DUCK_THRESH, DELAY_POSITION, &values_delay_thresh}, + {"Atten", GNX3K_DELAY_DUCK_ATTEN, DELAY_POSITION, &values_0_to_99}, + {"Balance", GNX3K_DELAY_BALANCE, DELAY_POSITION, &values_synth_talk_balance}, + {"Level", DELAY_LEVEL, DELAY_POSITION, &values_0_to_99}, +}; + +static EffectSettings gnx3k_delay_anapong_settings[] = { + {"Time", GNX3K_DELAY_TIME, DELAY_POSITION, &values_delay_time_0_2000}, + {"Feedback", GNX3K_DELAY_FEEDBACK, DELAY_POSITION, &values_delay_repeats}, + {"Thresh", GNX3K_DELAY_DUCK_THRESH, DELAY_POSITION, &values_delay_thresh}, + {"Atten", GNX3K_DELAY_DUCK_ATTEN, DELAY_POSITION, &values_0_to_99}, + {"Balance", GNX3K_DELAY_BALANCE, DELAY_POSITION, &values_synth_talk_balance}, + {"Level", DELAY_LEVEL, DELAY_POSITION, &values_0_to_99}, +}; + +static EffectSettings gnx3k_delay_spread_settings[] = { + {"Time", GNX3K_DELAY_TIME, DELAY_POSITION, &values_delay_time_0_2000}, + {"Feedback", GNX3K_DELAY_FEEDBACK, DELAY_POSITION, &values_delay_repeats}, + {"Thresh", GNX3K_DELAY_DUCK_THRESH, DELAY_POSITION, &values_delay_thresh}, + {"Atten", GNX3K_DELAY_DUCK_ATTEN, DELAY_POSITION, &values_0_to_99}, + {"Spread", GNX3K_DELAY_SPREAD, DELAY_POSITION, &values_delay_spread_0_49}, + {"Level", DELAY_LEVEL, DELAY_POSITION, &values_0_to_99}, +}; + static EffectSettings delay_analog_settings[] = { {"Time", DELAY_TIME, DELAY_POSITION, &values_delay_time}, {"Level", DELAY_LEVEL, DELAY_POSITION, &values_0_to_99}, @@ -1103,9 +1163,9 @@ static EffectSettings reverb_lex_settings[] = { }; static EffectGroup gnx3k_wah_group[] = { - {GN3K_WAH_TYPE_CRY, "Cry", WAH_TYPE, WAH_POSITION, gnx3k_wah_settings, G_N_ELEMENTS(gnx3k_wah_settings)}, - {GN3K_WAH_TYPE_BOUTIQUE, "Boutique", WAH_TYPE, WAH_POSITION, gnx3k_wah_settings, G_N_ELEMENTS(gnx3k_wah_settings)}, - {GN3K_WAH_TYPE_FULLRANGE, "Full-Range", WAH_TYPE, WAH_POSITION, gnx3k_wah_settings, G_N_ELEMENTS(gnx3k_wah_settings)}, + {GNX3K_WAH_TYPE_CRY, "Cry", WAH_TYPE, WAH_POSITION, gnx3k_wah_settings, G_N_ELEMENTS(gnx3k_wah_settings)}, + {GNX3K_WAH_TYPE_BOUTIQUE, "Boutique", WAH_TYPE, WAH_POSITION, gnx3k_wah_settings, G_N_ELEMENTS(gnx3k_wah_settings)}, + {GNX3K_WAH_TYPE_FULLRANGE, "Full-Range", WAH_TYPE, WAH_POSITION, gnx3k_wah_settings, G_N_ELEMENTS(gnx3k_wah_settings)}, }; static EffectGroup wah_group[] = { @@ -1285,6 +1345,14 @@ static EffectGroup rp500_chorusfx_group[] = { {CHORUS_TYPE_OCTAVER, "Octaver", CHORUSFX_TYPE, CHORUSFX_POSITION, chorusfx_octaver_settings, G_N_ELEMENTS(chorusfx_octaver_settings)}, }; +static EffectGroup gnx3k_delay_group[] = { + {DELAY_GNX3K_TYPE_MONO, "Mono", DELAY_TYPE, DELAY_POSITION, gnx3k_delay_mono_settings, G_N_ELEMENTS(gnx3k_delay_mono_settings)}, + {DELAY_GNX3K_TYPE_PINGPONG, "Ping-Pong", DELAY_TYPE, DELAY_POSITION, gnx3k_delay_pingpong_settings, G_N_ELEMENTS(gnx3k_delay_pingpong_settings)}, + {DELAY_GNX3K_TYPE_ANALOG, "Analog", DELAY_TYPE, DELAY_POSITION, gnx3k_delay_analog_settings, G_N_ELEMENTS(gnx3k_delay_analog_settings)}, + {DELAY_GNX3K_TYPE_ANAPONG, "Analog-Pong", DELAY_TYPE, DELAY_POSITION, gnx3k_delay_anapong_settings, G_N_ELEMENTS(gnx3k_delay_anapong_settings)}, + {DELAY_GNX3K_TYPE_SPREAD, "Spread", DELAY_TYPE, DELAY_POSITION, gnx3k_delay_spread_settings, G_N_ELEMENTS(gnx3k_delay_spread_settings)}, +}; + static EffectGroup rp250_delay_group[] = { {DELAY_TYPE_ANALOG, "Analog", DELAY_TYPE, DELAY_POSITION, delay_analog_settings, G_N_ELEMENTS(delay_analog_settings)}, {DELAY_TYPE_DIGITAL, "Digital", DELAY_TYPE, DELAY_POSITION, delay_digital_settings, G_N_ELEMENTS(delay_digital_settings)}, @@ -1583,6 +1651,10 @@ static Effect rp500_chorusfx_effect[] = { {NULL, CHORUSFX_ON_OFF, CHORUSFX_POSITION, rp500_chorusfx_group, G_N_ELEMENTS(rp500_chorusfx_group)}, }; +static Effect gnx3k_delay_effect[] = { + {NULL, DELAY_ON_OFF, DELAY_POSITION, gnx3k_delay_group, G_N_ELEMENTS(gnx3k_delay_group)}, +}; + static Effect rp250_delay_effect[] = { {NULL, DELAY_ON_OFF, DELAY_POSITION, rp250_delay_group, G_N_ELEMENTS(rp250_delay_group)}, }; @@ -1651,6 +1723,7 @@ static EffectList gnx3000_effects[] = { {"Stompbox", gnx3k_dist_effect, G_N_ELEMENTS(gnx3k_dist_effect)}, {"Noisegate", gnx3k_noisegate_effect, G_N_ELEMENTS(gnx3k_noisegate_effect)}, {"Chorus/Mod", gnx3k_chorusfx_effect, G_N_ELEMENTS(gnx3k_chorusfx_effect)}, + {"Delay", gnx3k_delay_effect, G_N_ELEMENTS(gnx3k_delay_effect)}, }; static Banks rp_banks[] = { diff --git a/gdigi.h b/gdigi.h index fae2ec1..e12a63a 100644 --- a/gdigi.h +++ b/gdigi.h @@ -23,9 +23,9 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS enum { - GN3K_WAH_TYPE_CRY = 129, - GN3K_WAH_TYPE_BOUTIQUE = 130, - GN3K_WAH_TYPE_FULLRANGE = 131, + GNX3K_WAH_TYPE_CRY = 129, + GNX3K_WAH_TYPE_BOUTIQUE = 130, + GNX3K_WAH_TYPE_FULLRANGE = 131, WAH_TYPE_CRY = 132, WAH_TYPE_FULLRANGE = 133, @@ -73,10 +73,10 @@ enum { #define COMP_ON_OFF 193 #define COMP_POSITION 4 -#define GN3K_COMP_ATTACK 194 -#define GN3K_COMP_RATIO 195 -#define GN3K_COMP_THRESHOLD 200 -#define GN3K_COMP_GAIN 201 +#define GNX3K_COMP_ATTACK 194 +#define GNX3K_COMP_RATIO 195 +#define GNX3K_COMP_THRESHOLD 200 +#define GNX3K_COMP_GAIN 201 #define COMP_SUSTAIN 208 #define COMP_TONE 209 @@ -554,6 +554,12 @@ enum { DELAY_RP500_TYPE_PONG = 1055, DELAY_RP500_TYPE_REVERSE = 1064, DELAY_RP500_TYPE_TAPE = 1056, + + DELAY_GNX3K_TYPE_MONO = 1027, + DELAY_GNX3K_TYPE_PINGPONG = 1028, + DELAY_GNX3K_TYPE_ANALOG = 1029, + DELAY_GNX3K_TYPE_ANAPONG = 1030, + DELAY_GNX3K_TYPE_SPREAD = 1031, }; #define DELAY_TYPE 1856 @@ -581,6 +587,13 @@ enum { #define DELAY_MIX 1902 #define DELAY_TIME_0_4650 1901 +#define GNX3K_DELAY_TIME 1862 +#define GNX3K_DELAY_FEEDBACK 1863 +#define GNX3K_DELAY_DUCK_THRESH 1864 +#define GNX3K_DELAY_DUCK_ATTEN 1865 +#define GNX3K_DELAY_BALANCE 1866 +#define GNX3K_DELAY_SPREAD 1867 + enum { REVERB_TYPE_TWIN = 1146, REVERB_TYPE_LEX_AMBIENCE = 1150,