• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

src/H03-May-2022-67,28859,588

test/H03-May-2022-1,9481,653

.gitignoreH A D16-Sep-202024 54

CHANGELOGH A D16-Sep-2020538 109

COPYINGH A D16-Sep-202017.6 KiB341281

READMEH A D16-Sep-202017.4 KiB255185

cmake_uninstall.cmake.inH A D16-Sep-20201 KiB2220

README

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