The building blocks bidules are aimed at the more experienced
users. Their main feature is that they have inputs for their main parameters
instead of a GUI which means that the parameter values are applied at each
sample instead of at each block of samples. With these you can design
your own effects and synths.
Really basic file player that let you decide which samples to play.
- Wave file: select a file from the MediaPool
- Add Files: shortcut to add audio files to the MediaPool
- Interpolation: calculation method for interpolating samples when playing at speeds different than 1x
- Play Trigger Input: send a 1 to start the playback of the file
- Play Gate Input: once a trigger is received the playing will continue for as long that 1 is received in this input
- Play Position Input: wanted sample to play at each sample
- Amplitude Input: wanted amplitude to apply to the output
- # of samples in audio file Output: use this to know the upper bound to use in the play pos input or to calculate the length of the file with the sample rate output
- Sample Rate of Audio File Output: sampling rate of the currently selected audio file
Basic delay line
- Audio Input: input for the audio signal
- Delay Length: delay length for the current sample (in samples)
ADSR envelope
- Gate Input: gate input for the duration of the A, D, and S parts of the envelope
- Retrigger Input: retrigger the ADSR by sending a 1
The second output is an activity gate, it will output 1 for the entire
time that the envelope is active.
Basic ADSR envelope, same as the ADSR envelope except that the values used
are inputs instead of sliders.
- Attack Input: Attack time in ms
- Decay Input: Decay time in ms
- Sustain Input: Sustain level in %
- Release Input: Release time in ms
- Gate Input: gate input for the duration of the A, D, and S parts of the envelope
- Retrigger Input: retrigger the ADSR by sending a 1
The second output is an activity gate. It will output 1 for the entire
time that the envelope is active.
Basic envelope follower.
The second output is an activity gate, it will output 1 for the entire
time that the envelope is active.
Exponential envelope.
The second output is an activity gate. It will output 1 for the entire
time that the envelope is active.
Basic Exponential Envelope
Basic exponential envelope.
Same as the Exponential Envelope except that the decay time
is an input instead of a slider.
Basic allpass filter.
- Audio Input: input for the audio signal
- Delay Time: delay time for the filter (in ms)
Collection of basic one pole, one zero and one pole/one zero 6db filters
that you can cascade to create others.
- Type : select the type of filter
Basic biquad filter.
- Audio Input: input for the audio signal
- Frequency Input: frequency to use for the filter for the current sample (in Hz)
- Q/Bandwidth: Q/Bandwidth for the current sample, depending on the selected filter type
Basic comb filter.
- Audio Input: input for the audio signal
- Delay Time: delay time for the filter in ms
Basic crossover filter.
- Audio Input: input for the audio signal
- Frequency Input: frequency to use for the filter for the current sample (in Hz)
Only does Hilbert 90 degree phase shift for now. And coeffs are only valid
in 44100 or 48000 sampling rates (for now).
Accumulate at each sample by a specified amount and output the value at each sample with
defined minimum and maximum values.
- Accumulation type: select the wanted operation to use
- Loop values between low/high: if this is selected, the accum will wrap around when hitting the lower/upper bound
- Value to accum Input: at each sample, use this value and the selected operation on the current value to get the new current value
- Start Value Input: the start value
- Reset Trigger Input: when a 1 is received, resets the accumulated value to the minimum
- Value lower bound Input: lower bound of the accum
- Value higher bound Input: upper bound for the accum
Math binary operators.
- +
- -
- *
- /
- %
- **
- MIN
- MAX
- LOUDEST
- QUIETEST
Monitors the incoming signal and outputs 0 when the current sample value is the same as
the previous one, 1 when it's greater, and -1 when it's lower.
Clips the incoming signal between the specified minimum and maximum values. Don't forget
to hit ENTER to validate a value you just typed.
Useful set of available constants; you can also specified your own. This bidule can be synched to a step sequencer to obtain the BPM or the number of samples per beat. Don't forget to hit ENTER
to validate a value you just typed.
Simple counter with specified minimum and maximum values.
Don't forget to hit ENTER to validate a value you just typed.
- Number of samples to increment at Input: used to specify the counting interval.
(I.e. increment at each 10000 samples)
- Reset Trigger Input: send a 1 to reset the counter
Mathematical expression with up to 3 variables (fed into the three inputs) that is evaluated at
each sample. Don't forget to hit ENTER to validate the function you just typed.
The following functions and constants are available:
- +,-,*,/,%
- abs(x)
- floor(x)
- ceil(x)
- exp(x)
- ln(x)
- sin(x)
- sinh(x)
- cps(x)
- cosh(x)
- tan(x)
- tanh(x)
- asin(x)
- acos(x)
- atan(x)
- sqrt(x)
- atan2(x,y)
- mod(x,y)
- min(x,y)
- max(x,y)
- pi()
Same as the Function bidule except that you have access to
the 4 previous values of each variable as well as the 4 previous
results using the following functions with 1,2,3 or 4 as the
parameter.
- prevX(n)
- prevY(n)
- prevZ(n)
- prevR(n)
Simple logic gate.
- Left-Side Argument Input: input for the left-side argument of the logic operator
- Right-Side Argument Input: input for the right-side argument of the logic operator
- Value for True Input: input to be redirected to the output when the operator result is true
- Value for False Input: input to be redirected to the output when the operator result is false
Simple logic operator.
- Left-Side Argument Input: input for the left-side argument of the logic operator
- Right-Side Argument Input: input for the right-side argument of the logic operator
Math unary operators.
- INVERSION
- RECIPROCAL
- ABS
- FLOOR
- CEIL
- SQUARE
- CUBE
- SQRT
- EXP
- LOG
- LOG10
- SIN
- COS
- TAN
- ASIN
- ACOS
- ATAN
- SINH
- COSH
- TANH
- LOGICAL NOT
- ROUND
Useful sets of common unit conversions.
A list of values separated by a semi colon (';'). A value will be output until
the next trigger is received - by sending a 1 in the trigger input.
The second input is used to reset the list to its first member (without
requiring to wait until the list loops back to start).
User-defined variable range with slider and input box. Don't forget to hit ENTER to validate
a value you just typed.
- Min and Max: define the range of the slider
Creation of MIDI CC messages. It stores the last value
for any given CC number and will output a CC message only
if the value has changed. The amount of created messages
is bound by the MIDI specifications which means about
a thousand messages per second.
- CC Number Input: the number of the CC to create
- CC Normalized Value Input: the CC value remapped between 0 and 1
The opposite of the MIDI Note Extractor: use values to generate MIDI notes.
- Frequency Input: frequency value for the outgoing MIDI note (in Hz)
- Amplitude Input: velocity value remapped between 0 and 1
- Gate Input: input for the gate signal, set to 1 on MIDI Note On until a MIDI Note Off is received
- Trigger input: input for triggers, set to 1 for the sample on which the MIDI note should be created
- Add Microtonal info (param): if this is selected, the outgoing MIDI notes will carry a detune factor if the frequency input is not an exact MIDI note
Look at the Arpegiator group's internals for an example of how to use the MIDI Note Creator.
Useful information extracted from MIDI ON/OFF messages.
- Frequency Output: frequency value for the incoming MIDI note with pitch bend applied (in Hz)
- Amplitude Output: velocity value remapped between 0 and 1 (NOTE ON only!)
- Gate Output: output for gate signal, set to 1 on MIDI Note On until a MIDI Note Off is received
- Trigger Output: output for triggers, set to 1 for the sample on which the MIDI note is received
- Stealing Mode: select "Use Lowest" to have portamento
- Glide Time: used when in portamento mode
- Wheel Range: range of the pitch bend in cents
- Always Retrig: select this to send a trigger output even if the note is currently in legato (portamento mode)
Note that once a note is rececived, the frequency and amplitude outputs will continue to output the previous note's information, even if note becomes OFF (gate=0). This is useful to allow for proper envelope release. Please look at the "PhatSynth" group's
internals for an example.
For the geek in you wanting to see it all passing by.
For the geek in you wanting to see it all passing by.
A simple oscillator with a bandlimited (or not:) signal.
Frequency Input: frequency value (in Hz)Amplitude Input: amplitude value between 0 and 1Phase Reset Input: trigger input to reset the phase to 0Phase Offset Input: input for the value to use as the applied phase offset.
By using a combination of phase reset/phase offset you can create for example, PWM or Phase Distortion synthesis.
Generates random values at the specific rate.
Rate Input: rate at which new values are generatedAmplitude Input: amplitude value between 0 and 1Basic sample and hold.
- Audio Input: input for the audio signal
- Trigger Input: input for the signal with zero crossings
You can sync this bidule to any master bidule to use some of the sync
info for your processing.
- Playing Output: sends 1 when playing and 0 when not
- BPM Output: the current BPM
- Numerator Output: the current time signature numerator
- Denominator Output: the current time signature denominator
- Samples per beat Output: # of samples per beat
- ppq Pos Output : the current ppq position
- Last Bar started at Output: start ppq of the last bar
- Trigger at bar Start Output: sends a 1 at each start of bar
Sends a trigger (a value of 1) in the output signal when the the button is pressed,
or at the start of each measure when synched to a syncsource.
Sends a trigger (a value of 1) in the output signal when the
# of samples has been counted.
- # of samples between triggers Input: # of samples before sending a trigger
- Reset Clock Input: send a 1 here to restart the clock to the current # of samples input