diff --git a/TODO b/TODO index a5bdd94..d882af5 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,5 @@ -make complete gui -cabinet models --tone library --effects library -effects level -handling presets (saving, exporting to xml patches) -buildsystem (install knob.png to share dir, don't use inline knob pixbuf) diff --git a/effects.c b/effects.c index e9ff691..a8d84e8 100644 --- a/effects.c +++ b/effects.c @@ -529,6 +529,72 @@ static EffectGroup eq_group[] = { {EQ_TYPE_WARM, "Warm", EQ_TYPE, EQ_POSITION, eq_settings, G_N_ELEMENTS(eq_settings)}, }; +static EffectGroup tone_lib_group[] = { + {TONE_LIB_OVERDRIVE, "Overdrive", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_ROCK1, "Rock 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_ROCK2, "Rock 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_BLUES1, "Blues 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_BLUES2, "Blues 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_METAL1, "Metal 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_METAL2, "Metal 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_COUNTRY1, "Country 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_COUNTRY2, "Country 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_WARM_DRIVE, "Warm Drive", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_CRUNCH, "Crunch", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_TEXAS_TONE, "Texas Tone", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_ROCKABILLY, "Rockabilly", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_SOLO1, "Solo 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_SOLO2, "Solo 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_ROCKWAH, "Rock Wah", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_CHUNKY, "Chunky", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_SMOOTH, "Smooth", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_HEAVY, "Heavy", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_CLEAN1, "Clean 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_CLEAN2, "Clean 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_BRITISH1, "British 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_BRITISH2, "British 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_AMERICAN1, "American 1", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_AMERICAN2, "American 2", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_TUBE_DRIVE, "Tube Drive", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_DISTORTION, "Distortion", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_SCOOPED, "Scooped", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_PUNCHY, "Punchy", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, + {TONE_LIB_BRIGHT_CLEAN, "Bright Clean", LIBRARY_TONE, LIBRARY_POSITION, NULL, -1}, +}; + +static EffectGroup effects_lib_group[] = { + {EFFECTS_LIB_CHORUS, "Chorus", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PHASER, "Phaser", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_FLANGER, "Flanger", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PITCH, "Pitch", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_TREMOLO, "Tremolo", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_ROTARY, "Rotary", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_ENVELOPE, "Envelope Filter", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_DIGITAL, "Digital Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_ANALOG, "Analog Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PONG, "Pong Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_MOD, "Mod Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_TAPE, "Tape Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_HALL, "Hall Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PLATE, "Plate Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_SPRING, "Spring Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_CHORUS_DIGITAL, "Chorus + Digital Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_CHORUS_DELAY_REVERB, "Chorus + Delay + Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_FLANGER_ANALOG, "Flanger + Analog Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PHASER_TAPE, "Phaser + Tape Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PHASER_MOD, "Phaser + Mod Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PHASER_ROOM, "Phaser + Room Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_DIGITAL_HALL, "Digital Delay + Hall Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_ANALOG_SPRING, "Analog Delay + Spring Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_CHORUS_HALL, "Chorus + Hall Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PONG_HALL, "Pong Delay + Hall Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_TAPE_SPRING, "Tape Delay + Spring Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_TREMOLO_TAPE, "Tremolo + Tape Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_PITCH_DIGITAL, "Pitch + Digital Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_MOD_PLATE, "Mod Delay + Plate Reverb", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, + {EFFECTS_LIB_ROTARY_TAPE, "Rotary + Tape Delay", LIBRARY_EFFECTS, LIBRARY_POSITION, NULL, -1}, +}; + static Effect wah_effect[] = { {"Wah", WAH_ON_OFF, WAH_POSITION, wah_group, G_N_ELEMENTS(wah_group)}, }; diff --git a/gdigi.h b/gdigi.h index f65b49c..552a75f 100644 --- a/gdigi.h +++ b/gdigi.h @@ -442,6 +442,79 @@ enum { #define EXP_MIN 8195 #define EXP_MAX 8196 +#define LIBRARY_TONE 8704 +#define LIBRARY_EFFECTS 8705 + +#define LIBRARY_POSITION 25 + +/* LIBRARY_TONE valid options */ +#define TONE_LIB_OVERDRIVE 1793 +#define TONE_LIB_ROCK1 1794 +#define TONE_LIB_ROCK2 1795 +#define TONE_LIB_BLUES1 1796 +#define TONE_LIB_BLUES2 1797 +#define TONE_LIB_METAL1 1798 +#define TONE_LIB_METAL2 1799 +#define TONE_LIB_COUNTRY1 1800 +#define TONE_LIB_COUNTRY2 1801 +#define TONE_LIB_WARM_DRIVE 1802 +#define TONE_LIB_CRUNCH 1803 +#define TONE_LIB_TEXAS_TONE 1804 +#define TONE_LIB_ROCKABILLY 1805 +#define TONE_LIB_SOLO1 1806 +#define TONE_LIB_SOLO2 1807 +#define TONE_LIB_ROCKWAH 1808 +#define TONE_LIB_CHUNKY 1809 +#define TONE_LIB_SMOOTH 1810 +#define TONE_LIB_HEAVY 1811 +#define TONE_LIB_CLEAN1 1812 +#define TONE_LIB_CLEAN2 1813 +#define TONE_LIB_BRITISH1 1814 +#define TONE_LIB_BRITISH2 1815 +#define TONE_LIB_AMERICAN1 1816 +#define TONE_LIB_AMERICAN2 1817 +#define TONE_LIB_TUBE_DRIVE 1818 +#define TONE_LIB_DISTORTION 1819 +#define TONE_LIB_SCOOPED 1820 +#define TONE_LIB_PUNCHY 1821 +#define TONE_LIB_BRIGHT_CLEAN 1822 +/* setting LIBRARY_TONE to this option seems to crash device */ +#define TONE_LIB_CUSTOM 1792 + +/* LIBRARY_EFFECTS valid options */ +#define EFFECTS_LIB_CHORUS 1857 +#define EFFECTS_LIB_PHASER 1858 +#define EFFECTS_LIB_FLANGER 1859 +#define EFFECTS_LIB_PITCH 1860 +#define EFFECTS_LIB_TREMOLO 1861 +#define EFFECTS_LIB_ROTARY 1862 +#define EFFECTS_LIB_ENVELOPE 1863 +#define EFFECTS_LIB_DIGITAL 1864 +#define EFFECTS_LIB_ANALOG 1865 +#define EFFECTS_LIB_PONG 1866 +#define EFFECTS_LIB_MOD 1867 +#define EFFECTS_LIB_TAPE 1868 +#define EFFECTS_LIB_HALL 1869 +#define EFFECTS_LIB_PLATE 1870 +#define EFFECTS_LIB_SPRING 1871 +#define EFFECTS_LIB_CHORUS_DIGITAL 1872 +#define EFFECTS_LIB_CHORUS_DELAY_REVERB 1873 +#define EFFECTS_LIB_FLANGER_ANALOG 1874 +#define EFFECTS_LIB_PHASER_TAPE 1875 +#define EFFECTS_LIB_PHASER_MOD 1876 +#define EFFECTS_LIB_PHASER_ROOM 1877 +#define EFFECTS_LIB_DIGITAL_HALL 1878 +#define EFFECTS_LIB_ANALOG_SPRING 1879 +#define EFFECTS_LIB_CHORUS_HALL 1880 +#define EFFECTS_LIB_PONG_HALL 1881 +#define EFFECTS_LIB_TAPE_SPRING 1882 +#define EFFECTS_LIB_TREMOLO_TAPE 1883 +#define EFFECTS_LIB_PITCH_DIGITAL 1884 +#define EFFECTS_LIB_MOD_PLATE 1885 +#define EFFECTS_LIB_ROTARY_TAPE 1886 +/* setting EFFECTS_LIBRARY to this option seems to crash device */ +#define EFFECTS_LIB_CUSTOM 1856 + #define USB_POSITION 0 #define USB_AUDIO_PLAYBACK_MIX 12297 #define USB_AUDIO_LEVEL 12307