1Welcome to the INFAMOUS Plugins README
2
3These are audio plugins in the LV2 format, developed for linux. Most are suitable for live use (exceptions are noted in the description). Installation is discussed first here, then the plugins below. Some are experimental/not that useful so they are not included in the batch install but are described below in case you might find them interesting.
4
5To install, fulfill the dependencies (below), then run the commands:
6 mkdir build
7 cd build
8 cmake ..
9 make
10 sudo make install
11
12To install the package under a specific library path (i.e. if you are using fedora), use the LIBDIR cmake variable:
13 mkdir build
14 cd build
15 cmake -DLIBDIR=lib64 ..
16 make
17 sudo make install
18
19Once this is complete you can already start using the plugins in your favorite LV2 host
20
21There is also an uninstall available:
22 sudo make uninstall
23
24Dependencies:
25 cmake
26 ntk
27 ntk-fluid
28 cairo
29 lv2-dev
30 zita-resampler
31 fftw3
32
33If you do not have ntk and ntk-fluid already installed use these commands to install:
34 git clone git://git.tuxfamily.org/gitroot/non/fltk.git ntk
35 cd ntk
36 ./waf configure
37 ./waf
38 sudo ./waf install
39
40If you do not like GUIs or cannot fulfill the ntk dependencies, cmake will detect that cairo and/or ntk aren't installed and will only install the host-generated UI versions.
41
42HOW TO INSTALL THE "EXPERIMENTAL" PLUGINS:
43Each plugin can be built and installed individually by navigating to the directory src/$pluginName. If you are using guis you can do an out of source build by performing:
44 mkdir build
45 cd build
46 cmake ..
47 make
48 sudo make install
49
50
51Now lets talk about what you're installing:
52
53==========================================
541. Cellular Automaton Synth
55
56This synthesizer plugin is an additive synthesizer, where 16 harmonics are added according to rules of elementary cellular automata. A rule is created and determines whether a cell will survive, die, or be created based on its previous state and its neighbors. Thus a harmonic will either play or be silent according to its associated cell's state. The 16 cells are on a torus where the ends wrap around to meet, therefore the highest harmonic influences the state of the first harmonic. This synth has no filter, so harmonics must be controlled through the rule and initial condition. To assist in your sound design there is a command line utility included called rule that will print out the cell states in sequence (see rule on line 53). For more information regarding Cellular Automaton in general read wikipedia under Elementary Cellular Automaton.
57
58It is unlimitedly polyphonic and has 2 LFOs. It also features an ADBSSR envelope generator for the amplitude envelope. Using the GUI you get to select each bit of the rule and initial condition. You can also click to the right of the row of buttons to set the value directly. Also if you click on HAL 9000 it will randomize all the parameters (except master gain and channel).
59
60Parameter Description:
61 CHANNEL - Midi channel, set to 0 for all channels
62 MASTER_GAIN - total volume
63 RULE - rule for determining next state in cellular automaton
64 CELL_LIFE - length between cell states measured in beats (most hosts default to 120bpm)
65 INIT_CELLS - initial condition of cells when a note is played
66 NHARMONICS - number of harmonics added in
67 HARM_MODE - determines gains of the harmonics
68 HARM_WIDTH - std. deviation of random detuning of harmonics in cents
69 WAVE - basic Waveform of the harmonics
70 ENV_A - attack time
71 ENV_D - decay time
72 ENV_B - break point gain (to switch between decay and swell)
73 ENV_SWL - swell time
74 ENV_SUS - sustain gain
75 ENV_R - release time
76 AMOD_WAV - amplitude modulation waveform
77 AMOD_FREQ - amplitude modulation frequency
78 AMOD_GAIN - amplitude modulation gain
79 FMOD_WAV - frequency modulation waveform
80 FMOD_FREQ - frequency modulation frequency
81 FMOD_GAIN - frequency modulation gain
82
83
84
85
86==========================================
871b. infamous-rule
88
89This program is less necessary as the new GUI shows the first 20 states of the cells. The source is still there and compiles easily with a direct call to gcc.
90This visualizes cell automata on a torus. Run it by opening a terminal run
91
92 infamous-rule <rule number> <initial condition>
93
94The least significant digit corresponds to the first harmonic
95
96
97==========================================
982. Envelope Follower
99
100This is a fully featured envelope follower plugin. It can be used for pumping the gain with the bass or all sorts of other things that I don't really know about. I prefer doing things like having an envelope controlled distortion or flange with it. Someone just wanted it so I made it. It sends a midi control value according to the amplitude of the input audio. I have also added a separate version that outputs an LV2 CV.
101
102
103Parameter Description:
104 PEAKRMS - blend of peak and/or rms value for amplitude
105 THRESHOLD - audio low value mapped MINV
106 SATURATION - audio high value mapped to MAXV (anything greater still outputs MAXV)
107 ATIME - rise time of the output
108 DTIME - fall time of the output
109 CHANNEL - Midi channel to send output over
110 CONTROL_NO - Midi control # to change
111 MINV - minimum midi value to send
112 MAXV - maximum midi value to send
113 REVERSE - switches direction of the midi output (larger input amplitude -> smaller midi value)
114 CMINV - minimum CV to send
115 CMAXV - maximum CV to send
116 CREVERSE - switches direction of the CV output
117
1182b. Envelope Follower CV
119
120Due to limited CV support in hosts, the envelope follower had the CV port disabled. This second version is to be used for CV and has no midi port.
121
122===========================================
1233. Hip2B
124
125This is a distortion/destroyer plugin that is even more fun than I imagined. Inspired by effect pedals by dwarfcraft, this takes your analog signal and turns it into a square wave. It gives you a glitchy type effect. It was originally meant to be pretty minimal, but I decided there wasn't a good reason to be so a simple amplifier was added to turn it down, and some basic DC offset removal was added. Its not limited in polyphony or anything, it is simply distorting your signal to be a bandlimited square wave. Basically its a switching function with hysteresis. Or think of it as a bit crusher that creates 1 bit audio. Play with the up and down threshold parameters to change the square wave pulse width and have some fun. You'll find lower values give more sustain, but stay away from 0.0 on those two, it gets really loud and noisy. Unless thats what you want. Be my guest. Depending on your noise floor, other low values may be problematic in the same light.
126
127Parameter Description:
128 UP - threshold that the input must cross for the square wave to rise
129 DOWN - threshold that the input must cross for the square wave to fall
130 OCTAVE - change the octave of the square wave output (down to -2)
131 INGAIN - input gain, also affects the output signal in the mix, use to get your signal passing the thresholds
132 WETDRY - mix of the original signal with the square signal
133 OUTGAIN - output gain
134
135===========================================
1364. cheap distortion
137
138Another distortion plugin, but this one I wanted to get it as light as possible. I haven't benchmarked it, but using some hackery on the bits I accomplished a pretty nice saturation function waveshaper using only a bitshift and an integer add. Thats right, not a single floating point operation! However this cheapness and hackery comes at a cost that its using undefined behavior and breaks some rules or at least is highly not recommended. It works when compiled with GCC on x86 systems. Go ahead and try it, the worst that happens is that it sounds awful. On machines with different endianness it will fail for sure. If you experience this I can easily make one for the other endian machines. Just let me know. Because the goal was super cheap computation, there is no input or output gains, so make use of your simple amplifier plugins. All in all though it worked out better than I dreamed. It even has 3 different waveshapes of increasing "aggression". On 2 & 3 settings, you'll probably want a gate, because it has really high gain for values near zero.
139
140Parameter Description:
141 AGGRESSION - wave shape, higher basically means more gain
142
143=============================================
1445. stuck
145
146This is a clone of the electro-harmonix freeze. It drones the note being played when the "Stick It!" port is set to 1 (or the CV port input goes above 1), causing the note to be "stuck". Once the port falls below 1 the drone is released with a decay set in seconds. The drone is added to the dry signal (so original signal is passed through at all times un-processed). This plugin is pretty useless except in live situations, though I'd love someone to creatively prove me wrong.
147
148 STICKIT - control the drone being on (>=1) or off (<1)
149 DRONEGAIN - gain of drone
150 RELEASE - time of drone decay in seconds
151
1525b. stuck stacker
153
154This is identical to the stuck but it does not pass the dry signal through at all. This allows you to put several together in parallel without changing the dry signal gain.
155
156=============================================
1576. power cut
158
159This effect is commonly called tape stop. Another one I might not actually use, but the DSP was fun anyway. It just copies the audio through until the "Pull the Plug!" port is toggled to 1 (or the CV trigger port goes above 1). Then it slows the audio down gradually to a complete stop and outputs silence until the trigger is released, much like unplugging the power chord of a record player or maybe tape player. I've never heard this happen to a tape player. A turntable actually has enough inertia. Anyway, you can adjust the length of the decay and the curve. Its pretty fun. With some automation this can make some crazy glitch type effects.
160
161 PULL THE PLUG - start the decay (>=1) or turn it off/reset it(<1)
162 DECAY TIME - length of decay in seconds
163 DECAY CURVE - the shape of the decay, concave (logarithmic) slows more and more with time, convex (exponential) slows less and less with time
164
165=============================================
1667. power up
167
168This is the opposite of the power cut. It "winds up" rather than down, or goes from silence when off, to slowly speeding up to full speed in the amount of time set by the control. NOTE THIS PLUGIN IS ABSOLUTELY NOT USEABLE LIVE! It introduces nearly 10 seconds of latency. But in a recording context your modern DAW will compensate. I wasn't even going to do this because of the non-causal DSP but then the math was challenging and I couldn't back down. The latency could be dynamic but I have no idea how well hosts would cope with that, so I chose to leave it static.
169
170 FIRE IT UP - start the startup (>=1) or turn it off/reset it(<1)
171 STARTUP TIME - length of startup in seconds
172 STARTUP CURVE - the shape of the startup, concave (logarithmic) starts quickly then changes less and less with time, convex (exponential) takes a while to get started then quickly approaches normal speed.
173
174=============================================
1758. ewham
176
177I wanted a whammy style pitchshifter and found folks weren't quite satisfied with the alternatives. This one is based on the algorithm in Fons Adriaensen's AT1 pitch corrector. I haven't benchmarked mine to see if its better than others but considering its sitting around 4% DSP load I think its not too shabby. It does incur 128 samples of latency. It could do better but the sound quality might suffer some. Its geared mostly toward voice but works quite well for guitar too. It will struggle with polyphonic sounds, but works great for leads.
178
179 EXPRESSION - This would be what you tie your midi expression pedal to. It blends the pitch shift from the start to the finish value
180 START - Pitch shift amount (in semitones) when the expression is at 0
181 FINISH - Pitch shift amount (in semitones) when the expression is at 1
182 MODE - determines if dry signal is mixed in (harmonizer) or not (classic shifter). Chorus mode makes the detune more fine grained (cents instead of semitones) so you can use the expression to dial in more or less chorus effect
183 LOCK MODE - this can allow the pitch shift to go smoothly to any value, slide to the nearest semitone when expression stops changing, or to jump directly from semitone to semitone
184
185=================================
1869. duffer
187
188*NOT INSTALLED BY DEFAULT* This is a duffing oscillator driven by the input. The duffing oscillator is interesting because it exhibits chaos. The system is simulated by a standard RK4 algorithm, but with each input sample treated as a full second to get more movement from the model. If none of that makes sense just know its not the most musical thing, but you can have a bit of fun making weird noises with it. It can be thought of a bit like a speaker but instead of moving a paper cone, the coil drives a spring side to side that has 2 magnets pulling it in opposite directions all the time (creating non-linear and chaotic behavior). This plugin has a check; if the output begins to grow too large it will reset the state to zero and resume, to allow unstable settings. There is an output to indicate if this condition is being triggered. Its not a big deal when this is triggered, but know that you're more hearing that artificial nonlinearity of the reset than the dynamics of the actual system, and that's not as scientifically intriguing. One tip: when using negative spring nonlinearities keep the spring stiffness very large if you want to avoid triggering the instability reset.
189
190 DAMPING - damps the "spring"
191 SPRING NONLINEARITY - changes the nature of the "spring"
192 INPUT GAIN - adjust how hard the "spring" is driven
193 UNSTABLE! - output to tell if the system is diverging (and artificially reset)
194
195=================================
19610. lushlife
197
198This is a simulated double tracking plugin capable of everything from a thin beatle effect to thick lush choruses to weird outlandish effects. It is primarily for vocals though it works on any monophonic signal. Utilizing 6 channels of doubles that can be individually detuned, delayed, panned, and mixed (or bypassed), lushlife is fully modulation ready and includes lfos for the delay and pitch shifting of each double. The host-generated UI allows you to go to very extreme values, but the GUI (shown) just uses the cleanest settings.
199
200
201 MASTER GAIN - overall gain
202 DRY GAIN - gain of unshifted signal
203 DRY PAN - pan of unshifted signal
204 LFO SHAPE - blend of sine and random lfo wave
205 LFO SYNC - while 1 all lfos phase is reset
206 WOOSH N - label for parameter group of each of the 6 channels
207 ACTIVE - turns on the doubled channel
208 DETUNE - changes the pitch of the channel in semitones
209 DELAY - changes the delay of the channel in milliseconds
210 GAIN - changes the gain of the channel
211 PAN - changes the panning of the channel
212 DETUNE LFO AMT - semitone range the channel's detune is modulated
213 DETUNE LFO FREQ - frequency of the detune modulation for the channel
214 DELAY LFO AMT - millisecond range the channel's lay is modulated
215 DELAY LFO FREQ - frequency of the delay modulation for the channel
216
217=================================
21811. playback modulation shifter
219
220*NOT INSTALLED BY DEAULT* An experimental plugin that plays back the audio at a reduced rate for a pitch shift, then raises playback rate to catch up to the input. You can select what the period of this cycle is and the duty cycle or percentage of the cycle is the low playback rate. The low rate is determined by the pitch setting.
221
222
223 SHIFT - pitch adjustment in semitones
224 PERIOD - time in milliseconds of the cycle of low then high playback rate
225 DUTY - percentage of the cycle that is low playback rate
226
227=================================
22812. mindi
229
230this plugin was made for the MOD ecosystem, but may be of some use outside of that application. It is a mini MIDI message maker. Simply compose a midi message and enable it and it will send out the message. It also sends a message whenever you change values so you can use it to control midi CCs for example. It can compose and send sysex type messages, but not practical ones.
231
232
233 MSGTYPE - note, pressure, CC, bend you name it we'll make it
234 CHAN - channel 0-15
235 DATA1 - note, CC, or PG number
236 DATA2 - value for CCs, velocity for notes, ignored for PG
237 DELAY - send a message N milliseconds after the plugin is first created
238 AUTOFF - automatically send note-off messages when the enable is turned off and in note-on mode (makes mindi a practical one note trigger)
239
240=================================
24113. octolo
242
243A combination tremolo octave (see what I did there?). I keep wanting to make a CPU cheap octaver, and this is the closest I've gotten. By using the tremolo effect I'm able to play back the sounds at different speeds to achieve an octave up and octave down effect. At long tremolo lengths (slow speed) you will notice the timing effects which may make it a bit unweildy for certain things. With short lengths its not a problem.
244
245
246 LENGTH - number of beats per tremolo cycle
247 DRY - gain of dry signal (no tremolo effect)
248 WET - gain of unshifted voice (only tremolo effect)
249 OCTDOWN - gain of octave down voice
250 OCTUP - gain of octave up voice
251 SLOPE - speed of voice fade ("shape" of the tremolo effect)
252 SEQUENCE - pattern that voices play back in, if voice is 0 there is silence at that point in the sequence
253 OVERLAP - begin playing the next voice before the previous is faded out
254
255