1 /* B.Oops 2 * Glitch effect sequencer LV2 plugin 3 * 4 * Copyright (C) 2020 by Sven Jähnichen 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 3, or (at your option) 9 * any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software Foundation, 18 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 */ 20 21 #ifndef PORTS_HPP_ 22 #define PORTS_HPP_ 23 24 enum BOopsPortIndex 25 { 26 CONTROL = 0, 27 NOTIFY = 1, 28 AUDIO_IN_1 = 2, 29 AUDIO_IN_2 = 3, 30 AUDIO_OUT_1 = 4, 31 AUDIO_OUT_2 = 5, 32 33 CONTROLLERS = 6, 34 35 PLAY = 0, 36 SOURCE = 1, 37 PLAY_MODE = 2, 38 ON_MIDI = 3, 39 AUTOPLAY_BPM = 4, 40 AUTOPLAY_BPB = 5, 41 AUTOPLAY_POSITION = 6, 42 STEPS = 7, 43 BASE = 8, 44 BASE_VALUE = 9, 45 46 SLOTS = 10, 47 SLOTS_EFFECT = 0, 48 SLOTS_PARAMS = 1, 49 SLOTS_PLAY = 0, 50 SLOTS_ATTACK = 1, 51 SLOTS_DECAY = 2, 52 SLOTS_SUSTAIN = 3, 53 SLOTS_RELEASE = 4, 54 SLOTS_PAN = 5, 55 SLOTS_MIX = 6, 56 SLOTS_OPTPARAMS = 7, 57 NR_OPTPARAMS = 12, 58 NR_PARAMS = SLOTS_OPTPARAMS + NR_OPTPARAMS, 59 NR_SLOTS = 12, 60 61 NR_CONTROLLERS = SLOTS + (SLOTS_PARAMS + SLOTS_OPTPARAMS + NR_OPTPARAMS) * NR_SLOTS 62 }; 63 64 enum BOopsPlayIndex 65 { 66 PLAY_OFF = 0, 67 PLAY_ON = 1, 68 PLAY_BYPASS = 2 69 }; 70 71 enum BOopsPlayModeIndex 72 { 73 AUTOPLAY = 0, 74 MIDI_CONTROLLED = 1, 75 HOST_CONTROLLED = 2 76 }; 77 78 enum BOopsBaseIndex 79 { 80 SECONDS = 0, 81 BEATS = 1, 82 BARS = 2 83 }; 84 85 enum BOopsEffectsIndex 86 { 87 FX_NONE = 0, 88 FX_SURPRISE = 1, 89 FX_AMP = 2, 90 FX_BALANCE = 3, 91 FX_WIDTH = 4, 92 FX_PITCH = 5, 93 FX_DELAY = 6, 94 FX_REVERSER = 7, 95 FX_CHOPPER = 8, 96 FX_JUMBLER = 9, 97 FX_TAPE_STOP = 10, 98 FX_TAPE_START = 11, 99 FX_TAPE_SPEED = 12, 100 FX_SCRATCH = 13, 101 FX_WOWFLUTTER = 14, 102 FX_BITCRUSH = 15, 103 FX_DECIMATE = 16, 104 FX_DISTORTION = 17, 105 FX_FILTER = 18, 106 FX_NOISE = 19, 107 FX_CRACKLES = 20, 108 FX_STUTTER = 21, 109 FX_FLANGER = 22, 110 FX_PHASER = 23, 111 FX_RINGMOD = 24, 112 FX_OOPS = 25, 113 FX_WAH = 26, 114 FX_REVERB = 27, 115 FX_GALACTIC = 28, 116 FX_INFINITY = 29, 117 FX_TREMOLO = 30, 118 FX_WAVESHAPER = 31, 119 FX_TESLACOIL = 32, 120 FX_BANGER = 33, 121 FX_EQ = 34, 122 NR_FX = 35, 123 FX_INVALID = 255 124 }; 125 126 enum BOopsSourceIndex 127 { 128 SOURCE_STREAM = 0, 129 SOURCE_SAMPLE = 1 130 }; 131 132 enum BOopsDistortionIndex 133 { 134 HARDCLIP = 0, 135 SOFTCLIP = 1, 136 FOLDBACK = 2, 137 OVERDRIVE = 3, 138 FUZZ = 4 139 }; 140 141 enum BOopsWaveformIndex 142 { 143 SINE_WAVE = 0, 144 TRIANGLE_WAVE = 1, 145 SQUARE_WAVE = 2, 146 SAW_WAVE = 3, 147 REVERSE_SAW_WAVE= 4 148 }; 149 150 #define BOOPSFXNAMES \ 151 { \ 152 {-1, "Basic"}, {2, " Amp"}, {3, " Balance"}, {4, " Width"}, /*{5, "Pitch (TODO)"}, */ \ 153 {-1, "Temporal"}, {27, " Reverb"}, {28, " Galactic reverb"}, {29, " Infinity reverb"}, {6, " Delay"}, {7, " Reverse"}, \ 154 {-1, "Pattern"}, {30, " Tremolo"}, {8, " Chop"}, {21, " Stutter"}, {9, " Jumble"}, \ 155 {-1, "Tape"}, {10, " Tape stop"}, /*{11, "Tape start (TODO)"}, */{12, " Tape speed"}, {14, " Wow & flutter"}, \ 156 {-1, "Vinyl"}, {13, " Scratch"}, {19, " Noise"}, {20, " Crackles"}, \ 157 {-1, "Distortion"}, {15, " Crush"}, {16, " Decimate"}, {17, " Distortion"}, {31, " Waveshaper"}, \ 158 {-1, "Filter"}, {18, " Filter"}, {34, " EQ"}, \ 159 {-1, "Modulators"}, {22, " Flanger"}, {23, " Phaser"}, {24, " Ring modulator"}, {26, " Wah"}, {33, " Banger"}, \ 160 {-1, "SFX"}, {32, " Tesla coil"}, {25, " Oops"}, \ 161 {-1, "Random"}, {1, " Surprise box"} \ 162 } 163 164 #define BOOPSFXBGNAMES \ 165 { \ 166 "", \ 167 "inc/Surprise_bg.png", \ 168 "inc/Amp_bg.png", \ 169 "inc/Amp_bg.png", \ 170 "inc/Amp_bg.png", \ 171 "", \ 172 "inc/Delay_bg.png", \ 173 "inc/Delay_bg.png", \ 174 "inc/Chop_bg.png", \ 175 "inc/Chop_bg.png", \ 176 "inc/Tape_bg.png", \ 177 "", \ 178 "inc/Tape_bg.png", \ 179 "inc/Vinyl_bg.png", \ 180 "inc/Tape_bg.png", \ 181 "inc/Distortion_bg.png", \ 182 "inc/Distortion_bg.png", \ 183 "inc/Distortion_bg.png", \ 184 "inc/Distortion_bg.png", \ 185 "inc/Vinyl_bg.png", \ 186 "inc/Vinyl_bg.png", \ 187 "inc/Chop_bg.png", \ 188 "inc/Flanger_bg.png", \ 189 "inc/Flanger_bg.png", \ 190 "inc/Flanger_bg.png", \ 191 "inc/Oops_bg.png", \ 192 "inc/Flanger_bg.png", \ 193 "inc/Delay_bg.png", \ 194 "inc/Delay_bg.png", \ 195 "inc/Delay_bg.png", \ 196 "inc/Chop_bg.png", \ 197 "inc/Distortion_bg.png", \ 198 "inc/TeslaCoil_bg.png", \ 199 "inc/Flanger_bg.png", \ 200 "inc/Distortion_bg.png" \ 201 } 202 203 #endif /* PORTS_HPP_ */ 204