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