diff --git a/TODO b/TODO index 4ea1181..2fc4209 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,6 @@ -figure out all magic commands -make complete gui -amp/cabinet models --expression pedal options -audio setup options -tone library -effects library diff --git a/gdigi.c b/gdigi.c index 3c82de8..01bd6e4 100644 --- a/gdigi.c +++ b/gdigi.c @@ -150,23 +150,68 @@ void set_option(guint id, guint position, guint value) static char option[] = {0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x00, 0x00, /* ID */ 0x00, /* position */ - 0x00, /* value */ - 0x00, /* checksum */ - 0xF7}; + 0x00, /* value length (not necesarry) */ + 0x00, 0x00, 0x00, /* value (can be either 1, 2 or 3 bytes) */ + 0x00, /* checksum */ 0xF7}; - if (((id & 0x80) >> 7) == 1) /* 8th bit equals 1 */ - option[8] = 0x20; - else /* otherwise */ - option[8] = 0x00; + option[8] = ((id & 0x80) >> 2); - option[9] = ((id & 0xFF00) >> 8); - option[10] = ((id & 0x007F)); /* 8th bit has to be zero */ + option[9] = ((id & 0xFF00) >> 8); + option[10] = ((id & 0x007F)); option[11] = position; - option[12] = value; - option[13] = calculate_checksum(option, sizeof(option), 13) ^ 0x07; - send_data(option, sizeof(option)); + if (value < 0x80) { + // [12] = value, [13] - checksum, [14] = 0xF7 + option[12] = value; + + option[14] = 0xF7; + option[13] = calculate_checksum(option, 15, 13) ^ 0x07; + + send_data(option, 15); + } else if (value <= 0xFF) { + option[8] |= 0x08; // there'll be length before value + if (((value & 0x80) >> 7) == 1) + option[8] |= 0x04; + + option[12] = 0x01; + // [13] = value, [14] - checksum, [15] = 0xF7 + option[13] = (value & 0x007F); + + option[15] = 0xF7; + option[14] = calculate_checksum(option, 16, 14) ^ 0x07; + + send_data(option, 16); + } else if (value <= 0xFFFF) { + option[8] |= 0x08; // there'll be length before value + if (((value & 0x80) >> 7) == 1) + option[8] |= 0x02; + + option[12] = 0x02; + + option[13] = ((value & 0xFF00) >> 8); + option[14] = ((value & 0x007F)); + + option[16] = 0xF7; + option[15] = calculate_checksum(option, 17, 15) ^ 0x07; + + send_data(option, 17); + } else if (value <= 0xFFFFFF) { + option[8] |= 0x08; // there'll be length before value + if (((value & 0x80) >> 7) == 1) + option[8] |= 0x01; + + option[12] = 0x03; + + option[13] = ((value & 0xFF0000) >> 16); + option[14] = ((value & 0x00FF00) >> 8); + option[15] = ((value & 0x00007F)); + + option[17] = 0xF7; + option[16] = calculate_checksum(option, 18, 16) ^ 0x07; + + send_data(option, 18); + } } /* level = 0 to 99 */ @@ -187,72 +232,9 @@ void set_wah_level(int level) set_option(WAH_LEVEL, WAH_POSITION, level); } -void set_higher_option(gint id, gint position, int type) -{ - static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, - 0x00, 0x00, 0x00, /* ID */ - 0x00, /* position */ - 0x00, /* value length */ - 0x00, 0x00, 0x00, /* type */ - 0x00, /* checksum */ 0xF7}; - - set_type[9] = ((id & 0x80) >> 2); - - set_type[10] = ((id & 0xFF00) >> 8); - set_type[11] = ((id & 0x007F)); - - set_type[12] = position; - - if (type < 0x80) { - // [13] = type, [14] - checksum, [15] = 0xF7 - } else if (type <= 0xFF) { - set_type[9] |= 0x08; // there'll be length before value - if (((type & 0x80) >> 7) == 1) - set_type[9] |= 0x04; - - set_type[13] = 0x01; - // [14] = type, [15] - checksum, [16] = 0xF7 - set_type[14] = (type & 0x007F); - - set_type[16] = 0xF7; - set_type[15] = calculate_checksum(set_type, 17, 15) ^ 0x07; - - send_data(set_type, 17); - } else if (type < 0xFFFF) { - set_type[9] |= 0x08; // there'll be length before value - if (((type & 0x80) >> 7) == 1) - set_type[9] |= 0x02; - - set_type[13] = 0x02; - - set_type[14] = ((type & 0xFF00) >> 8); - set_type[15] = ((type & 0x007F)); - - set_type[17] = 0xF7; - set_type[16] = calculate_checksum(set_type, 18, 16) ^ 0x07; - - send_data(set_type, 18); - } else if (type < 0xFFFFFF) { - set_type[9] |= 0x08; // there'll be length before value - if (((type & 0x80) >> 7) == 1) - set_type[9] |= 0x01; - - set_type[13] = 0x03; - - set_type[14] = ((type & 0xFF0000) >> 16); - set_type[15] = ((type & 0x00FF00) >> 8); - set_type[16] = ((type & 0x00007F)); - - set_type[18] = 0xF7; - set_type[17] = calculate_checksum(set_type, 19, 17) ^ 0x07; - - send_data(set_type, 19); - } -} - void set_wah_type(int type) { - set_higher_option(WAH_TYPE, WAH_POSITION, type); + set_option(WAH_TYPE, WAH_POSITION, type); } void set_wah_on_off(gboolean val) @@ -286,7 +268,7 @@ void set_comp_level(int level) void set_comp_type(int type) { - set_higher_option(COMP_TYPE, COMP_POSITION, type); + set_option(COMP_TYPE, COMP_POSITION, type); } void set_comp_on_off(gboolean val) @@ -328,7 +310,7 @@ void set_pickup_on_off(gboolean val) void set_dist_type(int type) { - set_higher_option(DIST_TYPE, DIST_POSITION, type); + set_option(DIST_TYPE, DIST_POSITION, type); } void set_dist_option(guint32 option, int value) @@ -349,7 +331,7 @@ void set_preset_level(int level) void set_eq_type(int type) { - set_higher_option(EQ_TYPE, EQ_POSITION, type); + set_option(EQ_TYPE, EQ_POSITION, type); } /* x = 0 to 99 */ @@ -382,11 +364,7 @@ void set_eq_mid(int x) */ void set_eq_mid_hz(int x) { - if (x <= 0x7F) { - set_option(EQ_MID_HZ, EQ_POSITION, x); - } else { - set_higher_option(EQ_MID_HZ, EQ_POSITION, x); - } + set_option(EQ_MID_HZ, EQ_POSITION, x); } /* x = 0x00 (-12dB) to 0x18 (12dB) */ @@ -401,11 +379,7 @@ void set_eq_treble(int x) */ void set_eq_treb_hz(int x) { - if (x <= 0x7F) { - set_option(EQ_TREBLE_HZ, EQ_POSITION, x); - } else { - set_higher_option(EQ_TREBLE_HZ, EQ_POSITION, x); - } + set_option(EQ_TREBLE_HZ, EQ_POSITION, x); } void set_eq_on_off(gboolean val) @@ -415,7 +389,7 @@ void set_eq_on_off(gboolean val) void set_noisegate_type(int type) { - set_higher_option(NOISEGATE_TYPE, NOISEGATE_POSITION, type); + set_option(NOISEGATE_TYPE, NOISEGATE_POSITION, type); } /* x = 0 to 99 */ @@ -436,7 +410,7 @@ void set_chorusfx_option(guint32 option, int x) void set_chorusfx_type(int type) { - set_higher_option(CHORUSFX_TYPE, CHORUSFX_POSITION, type); + set_option(CHORUSFX_TYPE, CHORUSFX_POSITION, type); } void set_chorusfx_on_off(gboolean val) @@ -447,16 +421,12 @@ void set_chorusfx_on_off(gboolean val) /* x = 0 to 139 */ void set_delay_time(int x) { - if (x <= 0x7F) { - set_option(DELAY_TIME, DELAY_POSITION, x); - } else { - set_higher_option(DELAY_TIME, DELAY_POSITION, x); - } + set_option(DELAY_TIME, DELAY_POSITION, x); } void set_delay_type(int type) { - set_higher_option(DELAY_TYPE, DELAY_POSITION, type); + set_option(DELAY_TYPE, DELAY_POSITION, type); } void set_delay_option(guint32 option, int x) @@ -477,7 +447,7 @@ void set_reverb_option(guint32 option, int x) void set_reverb_type(int type) { - set_higher_option(REVERB_TYPE, REVERB_POSITION, type); + set_option(REVERB_TYPE, REVERB_POSITION, type); } void set_reverb_on_off(gboolean val) diff --git a/gdigi.h b/gdigi.h index 591795a..8ebe2c1 100644 --- a/gdigi.h +++ b/gdigi.h @@ -452,8 +452,10 @@ enum { #define EXP_TYPE 8194 #define EXP_POSITION 19 +#define EXP_MIN 8195 +#define EXP_MAX 8196 + void set_option(guint id, guint position, guint value); -void set_higher_option(gint id, gint position, int type); void set_wah_min(int level); void set_wah_max(int level); void set_wah_level(int level); diff --git a/tests.c b/tests.c index b8141b9..5e60ffc 100644 --- a/tests.c +++ b/tests.c @@ -622,46 +622,243 @@ void test_reverb() void test_exp() { + int x; + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_NONE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PICKUP_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PIKCUP_TYPE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_SUST); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_TONE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_LEVEL); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_ATTACK); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_DISTORTION); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_FILTER); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_VOLUME); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_AMP_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_AMP_GAIN); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_AMP_LEVEL); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_BASS); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_MID); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_TREB); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_THRESHOLD); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_ATTACK); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_RELEASE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_ATTN); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_CHORUSFX_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_SPEED); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_DEPTH); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_REGEN); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_WAVEFORM); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_LEVEL); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_TIME); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_REPEATS); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_LEVEL); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_DUCK_THRESH); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_DUCK_LEVEL); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_REVERB_ENABLE); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_REVERB_LEVEL); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_VOLUME_PRE_FX); - set_higher_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_VOLUME_POST_FX); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PICKUP_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PIKCUP_TYPE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_SUST); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_TONE); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_LEVEL); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_COMP_ATTACK); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_DISTORTION); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_FILTER); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DIST_VOLUME); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_AMP_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_AMP_GAIN); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_AMP_LEVEL); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_BASS); + for (x=0; x<=24; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=24; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_MID); + for (x=0; x<=24; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=24; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_EQ_TREB); + for (x=0; x<=24; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=24; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_THRESHOLD); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_ATTACK); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_RELEASE); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_GATE_ATTN); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_CHORUSFX_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_SPEED); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_DEPTH); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_REGEN); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_WAVEFORM); + for (x=0; x<=2; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=2; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_PHASER_LEVEL); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_TIME); + for (x=0; x<=139; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=139; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_REPEATS); + for (x=0; x<=100; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=100; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_LEVEL); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_DUCK_THRESH); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_DELAY_DUCK_LEVEL); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_REVERB_ENABLE); + for (x=0; x<=1; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=1; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_REVERB_LEVEL); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_VOLUME_PRE_FX); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); + + set_option(EXP_TYPE, EXP_POSITION, EXP_TYPE_VOLUME_POST_FX); + for (x=0; x<=99; x++) + set_option(EXP_MIN, EXP_POSITION, x); + for (x=0; x<=99; x++) + set_option(EXP_MAX, EXP_POSITION, x); } void test_all() @@ -676,4 +873,5 @@ void test_all() test_chorusfx(); test_delay(); test_reverb(); + test_exp(); } diff --git a/tests.h b/tests.h index f111c9d..7621a46 100644 --- a/tests.h +++ b/tests.h @@ -26,4 +26,5 @@ void test_noisegate(); void test_chorusfx(); void test_delay(); void test_reverb(); +void test_exp(); void test_all();