© COPYRIGHT 1999 - 2022 Blue Hell
Look here for more information.
Gen2 |
---|
Oramics |
A file change detector |
Voice |
---|
LPC speech module |
Tiny Speech Synth |
Tiny song synth |
SAPI Speech Synth |
eSpeak Speech Synth |
VOSIM |
A formant / vowel filter |
A formant / vowel filter |
Patch audio input version 1 polyphonic Notes about polyphony: This module sends to all voices equally. |
Audio input module, connects physical audio inputs to the patch. |
Patch audio output version 1 polyphonic Notes about polyphony: This module sums all voices before processing them. |
Audio output module, connects patch signals to the physical audio output. |
MIDI Note input module version 1 monophonic Notes about polyphony: For polyphic patches use PolyMidiNoteIn instead. |
This is a MIDI note input module. The ch selector sets the MIDI channel to listen to. OMNI means that it listens to all MIDI channels, and ch 1 - 16 are the usual MIDI channels. When a note on is seen the gate output will go on and the note number will be put on the 'note' output. The velocity will go to the 'velocity on' output. When a subsequent note off is seen for the currently active note the gate will turn off, and the note off velocity will be set on the 'velocity off' output. Note on messages with a velocity of zero are treated as note offs (with a note off velocity of zero). When the channel is changed the current note will be turned off (with zero note off velocity), and the same will happen when a MIDI all notes off command (CC 123 with value 0) is seen or when the 'Panic' function is used (Action menu / Panic or ctrl+P). |
MIDI Note input module version 1 polyphonic |
This is a MIDI note input module. The ch selector sets the MIDI channel to listen to. OMNI means that it listens to all MIDI channels, and ch 1 - 16 are the usual MIDI channels. When a note on is seen the gate output will go on and the note number will be put on the 'note' output. The velocity will go to the 'velocity on' output. When a subsequent note off is seen for the currently active note the gate will turn off, and the note off velocity will be set on the 'velocity off' output. Note on messages with a velocity of zero are treated as note offs (with a note off velocity of zero). When the channel is changed the current note will be turned off (with zero note off velocity), and the same will happen when a MIDI all notes off command (CC 123 with value 0) is seen or when the 'Panic' function is used (Action menu / Panic or ctrl+P). |
MIDI 4 Note input module version 1 monophonic Notes about polyphony: For polyphic patches use PolyMidiNoteIn instead. |
This is a MIDI four note input module. This module is superceded by the Midi8NoteIn module which uses the same internal coded with the additionl flexibility of setting a limit to the actual amount of notes to handle. For this module the channel count is four and that is fixed. The ch selector sets the MIDI channel to listen to, OMNI means that it listens to all MIDI channels, and ch 1 - 16 are the usual MIDI channels. When a note on is seen the gate output will go on and the note number will be put on the 'note' output. The velocity will go to the 'velocity on' output. When a subsequent note in arrives it will be routed to the 2nd output set, etc. When a subsequent note off is seen for the currently active note the gate will turn off, and the note off velocity will be set on the 'velocity off' output. Note on messages with a velocity of zero are treated as note offs (with a note offf velocity of zero). When the channel is changed the current notes will be turned off (with zero note off velocity), and the same will happen when a MIDI all notes off command (CC 123 with value 0) is seen or when the Panic function is used (menu Action / Panic, or ctrl + P). The 'note stealing' mode comes in effect when there are four active notes and a new one comes in, the different modes act like:
This module handles incoming pitch bend messages and after touch. |
MIDI 8 Note input module version 1 monophonic Notes about polyphony: For polyphic patches use PolyMidiNoteIn instead. |
This is a MIDI multi note input module with one to eight channels. This module supercedes the MidiMultNoteIn module, which uses exaclly the same internal code with the flexibility of setting a limit to the maximum of notes to be used. The max. notes selector sets the amount of channels to be used. The ch selector sets the MIDI channel to listen to, OMNI means that it listens to all MIDI channels, and ch 1 - 16 are the usual MIDI channels. When a note on is seen the gate output will go on and the note number will be put on the 'note' output. The velocity will go to the 'velocity on' output. When a subsequent note in arrives it will be routed to the 2nd output set, etc. When a subsequent note off is seen for the currently active note the gate will turn off, and the note off velocity will be set on the 'velocity off' output. Note on messages with a velocity of zero are treated as note offs (with a note offf velocity of zero). When the channel is changed the current notes will be turned off (with zero note off velocity), and the same will happen when a MIDI all notes off command (CC 123 with value 0) is seen or when the Panic function is used (menu Action / Panic, or ctrl + P). The 'note stealing' mode comes in effect when there are four active notes and a new one comes in, the different modes act like:
This module handles incoming pitch bend messages and after touch. |
MIDI CC input module version 1 monophonic |
This is a MIDI CC input module. The ch selector and the cc selector set the CC event to listen for. When ch = OMNI it will match all MIDI channels, values 1 - 16 to the corresponding MIDI channels. When a new CC event is detected the gate input will go on for a short time, and the value will be put on the value output. The value did not necessarily change when the gate input becomes active, it reacts to a matching incoming CC message. The incoming value range [0,127] is mapped to an output range [0,1]. |
MIDI clock in version 1 polyphonic Notes about polyphony: P and X ins are poly. |
A MIDI clock input module. The control output can be used some different kind of controls. It can either control an LFO which is set to fast 0.254, medium 2:05 or to BPM; a Delay set to 3s or 5 min, or it can control the ClockGen module's BPM value. The sync output is activated for 1 ms on each detected beat (4/4 is assumed always), it can be used to sync an LFO (when the rate multiplier is set to a / mode (less than 1) an extra divider will be needed to not prematurely reset the LFO). The rate multiplier controls determine the scaling applied to the control output, it will make controlled LFOs go faster or slower by some factor. The master (rsm or m) output can be used to control a chain of RateConverter (or Tapper) modules, this module will then be the master controlling all other modules in the chain. Other rate converters (or tappers) can be set to different control modes to get LFOs and delays synced up properly at different rates. The rsmm output is a scaled master output, it scales with the detected BPM and the set rate, all slaves will follow this one whilst the master output scales with the detected BPM rate only, the m output is determined by the detected BPM rate only. The active output will initially be on, it will go off after a MIDI stop message was received, after a start or a continue message it will go on again. The P and X modulation inputs are polyphonic, the active, the m, and the sync output are monophonic and the rsm and control outputs are polyphonic (controlled by P and X). |
MIDI Note output module version 1 polyphonic |
This is a MIDI note output module. The ch selector sets the MIDI channel to send to, where ch 1 - 16 are the usual MIDI channels and ic 1 to 16 are internal MIDI channels (MIDI receivers in a patch can just use ch 1 - 16 (or OMNI) to connect to these). The note input determines what note value will be sent, the velocity inputs determine the on or off velocity to use. Each time when the gate input changes from inactive to active a note on event is sent with the currently set note on velocity. Each time when the gate goes from active to inactive a note off event is sent for the note that that was previously turned on, and this event will be sent to the same MIDI channel that the note on had been sent out (even when the set MIDI channels changed in the mean time). For this event the current note off velocity will be used. When no note on event had been sent there will not be a note off event either. When the note value changes no note event will be sent, only changes on the gate input can cause a note event to be generated (*). When the channel is changed no note event will be sent out, only changes on the gate input can cause a note event to be generated (*). (*) This will not result in hanging notes as when the gate goes inactive the channel and note number for the active note will be used to base the note off on. |
MIDI CC output module version 1 polyphonic Notes about polyphony: This module listens on all voices. |
This is a MIDI CC output module. The ch selector and the cc selector define the CC event to be transmitted, ch 1 - ch 16 to the correspond to to the usual MIDI channels, ic 1 - ic 16 to the internal MIDI channels (MIDI receivers in a patch can just use ch 1 - 16 (or OMNI) to connect to these). All normal CC values 0 - 119 can be sent and additionally the special values 120 - 127 can be used as well. When the gate input goes from inactive to active the event will be sent out using the current value as present on the value input. When the ch, cc or value change there will not be a new MIDI event generated - MIDI events occur only when the gate goes from inactive to active. The sent output will go active after the MIDI message was sent, this can be used to trigger a chain of events to happen in a specified order. |
MIDI Program Change output module version 1 monophonic Notes about polyphony: This module listens to the first voice only. |
This is a MIDI Program Change output module. The ch selector and the prg selector define the program change event to be transmitted, ch 1 - ch 16 to the correspond to to the usual MIDI channels, ic 1 - ic 16 to the internal MIDI channels (MIDI receivers in a patch can just use ch 1 - 16 (or OMNI) to connect to these). When the gate input goes from inactive to active the event will be sent out using the SUM of the current values as set by the prg control and read from the progr. input. When the ch or the progr input change there will not be a new MIDI event generated - MIDI events occur only when the gate goes from inactive to active, or when the prg control is changed manually. The sent output will go active after the MIDI message was sent, this can be used to trigger a chain of events to happen in a specified order. |
MIDI RPN and NRPN output module version 1 monophonic Notes about polyphony: This module listens to the first voice only. |
This is a MIDI RPN and NRPN output module. It can send one (mode M) or two septets (mode B) of data. In RPN mode it will send param h to CC 101 and param l to CC 100 and then it will send the most significant value septet to CC 6. When the mode is B it will then additionally send the least significant data septet on CC 38. In NRPN mode it will send param h to CC 99 and param l to CC 98 and then it will send the most significant value septet to CC 6. When the mode is B it will then additionally send the least significant data septet on CC 38. he value input has a zero to one range, and it is scaled up to the full pussible ange before transmission. |
Midi SysEx output version 1 monophonic [this module is RateSmart [1]] |
A MIDI SysEx output module. NOTE: this module is not working yet. A sequence of numbers and parameters can be filled in from which a MIDI SysEx message will be computed. The parameters are the eight inputs which can be used as %1 .. %8. On the rising edge of the gate input the parameters will be read in and will be filled into the message which will then be sent out over MIDI. NOTE: this module is not working yet. |
Sync Wren instances version 1 polyphonic Notes about polyphony: the 'sync in' input listens on the first voice only, 'sync out' sends to all voices. |
Sync Wren instances over OSC When Wren is set to be an OSC receiver this module will receive OSC /sync messages. When Wren is set to be an OSC transmitter this module will send OSC /sync messages. When a sync message is received the sync output will go active just long enough to reliably trigger a control rate logic input. When the sync in input goes from low to high the OSC /sync message is sent and also the sync output will be activated in the same manner as when an OSC /sync message was received. There can only be one working sync receiver in a patch, when there are more an arbitrary one will service incoming /sync messages. There can be multiple working sync senders though (in a Wren instance that was set to be an OSC transmitter). The sync message has one float parameter, it can, for isnstance, be used to synce tuning over different Wren instances. |
Send or receive OSC version 1 polyphonic Notes about polyphony: The 'send' inputs listen on the first voice only, the 'recv' output sends to all voices. |
Send or receive OSC messages. This module can both send and receive OSC messages, depending on the role chosen for this Wren instance. For an OSC transmitter it will send the value present on the blue (send) input when the green input goes from low to high to the address present in the address box. In this case the value will also be copied to the output (so this doubles as a slow rate sample and hold). For an OSC receiver it will listen to OSC type f messages on the address specified in the address box and it will send the value found in the message to the output. Note that when you you clock in input values as well the output value may toggle between the OSC received value and the clocked in value. To set an address control click the address field to pop up a text editor, and when done use ctrl+enter to save the edit. In the address the leading slash (/) character must not be specified, Wrenn will add it by itself. Each address can be used only once, when it occurs multiple times an arbitrary instance of the module will handle it and the other instances will think it to be handled already after that. There can be multiple senders on the same address for a Wren instance that is set to be an OSC transmitter though. Messages may be sent to Wren with more than one parameter, however only the first parameter will be used and only when it's type is 'f' (float). Note: OSC address strings are case sensitive, so 'module' does not match 'Module'. Note: All Wren modules can receive OSC messages when their name starts with an @ character. |
Controls the patch mutator version 1 polyphonic Notes about polyphony: This module listens to the first voice only. |
A controller for the LiveMorph function in the patch mutator. |
Controls the patch mutator version 1 polyphonic Notes about polyphony: This module listens to the first voice only. |
A controller to trigger auto-randomize, auto-mutate, auto-mate or auto-morph. |
Controls morphing version 1 polyphonic Notes about polyphony: This module listens to the first voice only. |
A controller for automating the morph controls |
Wave recorder version 1 monophonic Notes about polyphony: This module sums all voices before processing them, the 'clear', 'write' and 'record' inputs listen to first voice only, the 'rec off', 'rec on' and 'full' outputs send to all voices equally. |
Recorder A 1 to 8 channel audo recorder that can write it's recording to a wave file on disk. The tape length can be set from 1 to 30 minutes and when the tape is full recording will continue writing over old material. The record control starts or stops recording, the write control starts a disk write (for which a file has to be selected before) and the clear control will erase the tape. Write, clear and record can be controlled by the buttons as well as by logic input signals. The rec on ouput is active when recording is on. The rec of output is active when recording is OFF, such that when it is connected to the clear and write inputs the wave gets saved and cleared when recording is stopped. The full output goes active when the tape loop is fully recorded, such that when connected to the clear and write inputs the wave gets saved when the loop is full. In the file name %patchname% can be used, this will be replaced by the name of the patch. When you patch is C:\wren\patches\silly-putty.wren the patch name will be silly-putty, and the wave data will be written to C:\wren\recordings\cc-silly-putty.wav. When 'time stamped' is being selected the file name will be prefixed by a time stamp. When 'normalized' is selected the wave data will be normalized before it is being written out to the file. When the file name is clear, the box will show 'Ctrl click to select a file' in that case data will not be written to disk at all, there will be no prompt for a file to save to. Longest recording times possible are:
|
Audio rate sine tri saw square oscillator version 1 polyphonic |
An audio rate sine, tri, saw and square wave oscillator The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. The PM input provides linear phase control, the amount can be controlled by an attenuator. The sync input resets the oscillator to phase zero when it's value goes from zero or below zero to above zero. The mute button sets the output to zero when active. A frequency fine control is available which can change the tuning by 50 cents up or down. With the B-Limit control the amount of aliasing can be controlled (for saw, tri and square waves). The speed input provides linear trough zero FM. When the input level is 1 the oscillator will run twice as fast as it normally would, when zero the oscillator will stop, and on negative speeds it will run backwards. The am input controls the output volume, at audio rates. When not connected the assumed value is 1. The shape morph input allows for morphing between the four basic oscillator shapes (it is the input directly left of the shape selector). The morph input signal is being multiplied by four and then added to the wave selector control value. From this two waves are selected ( sine, tri), ( tri, saw), (saw, square) or (square, sine) and a mix from those two will be sent to the output, proportionally to the morph input value. It is the red input left of the wave selector. |
Audio rate square oscillator with PWM version 1 polyphonic |
An audio rate square wave oscillator. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control which can be attenuated. The PM input provides linear phase control. The sync input resets the oscillator to phase zero when it's value changes from zero or less than zero to a value above zero. The PWM input provides linear Pulse Width Modulation. The mute button sets the output to zero when active With the B-Limit control the amount of aliasing can be controlled. The speed input provides linear trough zero FM. When the input level is 1 the oscillator will run twice as fast as it normally would, when zero the oscillator will stop, and on negative speeds it will run backwards. |
DPW Saw by HrastProgrammer version 1 polyphonic |
Bandlimited audio rate oscillator with a few nice features. Freq: Frequency of the oscillator. Morph: Morphing between saw and pulse waveform. PW: Pulse width (doesn't affect saw waveform e.g. when Morph=0). Shape: Internal oscillator waveshaping, for saw waveform acts like lowpass filter (more or less), for pulse waveform morphs between pulse and ramp/triangle. Note: Some level readjustment is usually needed when playing with Shape. FM Input + Amount: Frequency modulation input (exponential). PM Input + Amount: Phase modulation input (linear, that's what Yamaha calls "Frequency Modulation"). PWM Input + Amount: Pulse width modulation input. B-Limit: Oscillator bandlimiting (0 = Off, 1 = Normal, 2..4 = High, and everything in between). Level: Oscillator output level. Sync Input: Resets oscillator phase to zero on transition from <=0 to >0. Normal/Vintage Button: The oscillator waveform looks, well, more "vintage" when activated ;-). Mute Button: Mutes the output. |
Mult waveform oscillator version 1 polyphonic |
An audio rate multi waveform wave oscillator. This module simultaneously makes a sine-, a trianglar-, a saw- and a square-waveform. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control which can be attenuated. The PM input provides linear phase control. The sync input resets the oscillator to phase zero when it's value changes from zero or less than zero to a value above zero. The PWM input provides linear Pulse Width Modulation (on the square output only). The mute button sets the output to zero when active With the B-Limit control the amount of aliasing can be controlled. The speed input provides linear trough zero FM. When the input level is 1 the oscillator will run twice as fast as it normally would, when zero the oscillator will stop, and on negative speeds it will run backwards. |
Audio rate sine oscillator with extra modulation version 1 polyphonic |
An audio rate sine oscillator. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. The Speed input provides linear FM, the lfm input linear FM modulation. For normal speed the control should be set to 0.5. The PM input provides linear phase control, the amount can be controlled by an attenuator. Also an absolute phase offset can be set. The AM input is for amplitude modulation, an offset can be set and a controllable amount of modulation is added to that. The sync input resets the oscillator to phase zero when it's value goes from zero or below zero to above zero. The mute button sets the output to zero when active. A frequency fine control is available which can change the tuning by 50 cents up or down. This input can be modulated. |
Audio rate phase distorted sine oscillator version 1 polyphonic |
An audio rate phase distorted sine oscillator. Phase distortion modulation is very similar to VOSIM. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. The LFM input provides linear frequency control, the amount can be controlled by an attenuator. The sync input resets the oscillator to phase zero when it's value goes from zero or below zero to above zero. The mute button sets the output to zero when active. A modulatable frequency fine control is available which can change the tuning by 50 cents up or down. The speed input provides linear trough zero FM. When the input level is 1 the oscillator will run twice as fast as it normally would, when zero the oscillator will stop, and on negative speeds it will run backwards. |
Audio rate sine tri saw square multi phase oscillator version 1 polyphonic |
An audio rate sine, tri, saw and square wave oscillator The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. The PM input provides linear phase control, the amount can be controlled by an attenuator. The sync input resets the oscillator to phase zero when it's value goes from zero or below zero to above zero. The mute button sets the output to zero when active. A frequency fine control is available which can change the tuning by 50 cents up or down. With the B-Limit control the amount of aliasing can be controlled (for saw, tri and square waves). There are four phase shifted outputs available which can be set to a shift of 90 or 120 degrees, when 120 degrees is selected the rightmost output will shift 180 degrees. The speed input provides linear trough zero FM. When the input level is 1 the oscillator will run twice as fast as it normally would, when zero the oscillator will stop, and on negative speeds it will run backwards. |
A Karplus-Strong oscillator version 1 polyphonic |
A Karplus-Strong type of oscillator. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. A frequency fine control is available which can change the tuning by 50 cents up or down. This setting can be modulated. The Pluck control controls the amount of input signal (excitation). The brightness control changes the frequency response of the feedback filter. Brightness can be modulated trough the bmod input and the bmodamt control. The feedback control controls the amount of feedback. The modulation (fbmod) is added to the main setting with an amount controlled by a depth control (fbmodamt). The mute button sets the output to zero when active The 'interp.' selector allows selection between linear, all-pass, algrange and hermite interpolation modes, all with a slightly different sound quality and some responding better on frequency changes. The module expects impulse like excitation input signals. Other signals work as well, but things may get very loud - use the pluck level controls to compensate. |
A Karplus-Strong oscillator version 1 polyphonic |
A Karplus-Strong type of oscillator. Two delay lines are provided which can be detuned from each other with the detune control. With the cross controll signals are being cross fed between the two delay lines. Each delay line outputs to a separate output. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. A frequency fine control is available which can change the tuning by 50 cents up or down. The Pluck control controls the amount of input signal. The brightness control changes the frequency response of the feedback filter. The brightness can be modulated. The feedback control controls the amount of feedback. The mute button sets the output to zero when active The module expects impulse like input signals. Other signals work as well, but things may get very loud. |
Audio rate sine tri saw square burst version 1 polyphonic |
An audio rate triggered sine, tri, saw and square wave oscillator The FM input provides exponential frequency control, the amount is under control of an attenuator. When the trig input changes from zero or less than zero to a value above zero a preset amount of half waves will be sent to to the output. This can be used for VOSIM like synthesis or as an envelope control. The mute button sets the output to zero when active A frequency fine control is available which can change the tuning by 50 cents up or down. With the B-Limit control the amount of aliasing can be controlled (for saw, try and square waves). The speed input provides linear trough zero FM. When the input level is 1 the oscillator will run twice as fast as it normally would, when zero the oscillator will stop, and on negative speeds it will run backwards. |
Audio rate square burst with PWM version 1 polyphonic |
An audio rate triggered square wave oscillator The FM input provides exponential frequency control. The PWM input provides linear Pulse Width Modulation When the trig input changes from zero or less than zero to a value above zero a preset amount of half waves will be sent to to the output. This can be used for VOSIM like synthesis or as an envelope control. The mute button sets the output to zero when active With the B-Limit control the amount of aliasing can be controlled (for saw, try and square waves). The speed input provides linear trough zero FM. When the input level is 1 the oscillator will run twice as fast as it normally would, when zero the oscillator will stop, and on negative speeds it will run backwards. |
Audio rate noise generator version 1 polyphonic |
An audio rate noise generator. The color control determines the rate of change of the output signal. Set to zero the output freezes and set to max the output will change at it's fastest rate. Color can be modulated trough the color mod input. The mute button sets the output to zero when active. |
Audio rate clocked noise version 1 polyphonic |
An audio rate triggered noise generator When the trig input changes from zero or less than zero to a value above zero a new random value will be sent to to the output. The color control determines the rate of change of the output. When it is set to zero the output will be frozen, when it is set to max the output values will change most from sample to sample. The mute button sets the output to zero when active |
Audio rate Perlin noise generator version 1 polyphonic Notes about polyphony: Only the am input and the output are polyphonic. |
An audio rate Perlin noise generator. The new input, when active, causes a new noise sample to be set after the current noise sample was played. The roughness set ... the roughness of the noise, this can be modulated at audio rate. The layers knob sets the number of layers, each successive layer is a smoothed version of the one above, so the more layers thee are the smoother the noise can be, at the price of some computation overhead. The length knob sets the length of the current noise pattern, the higher it is set the less tone there there will be in the generated output. |
Audio rate clocked Perlin noise generator version 1 polyphonic Notes about polyphony: Only the am input and the output are polyphonic. |
An audio rate clocked Perlin noise generator. The new input, when active, causes a new noise sample to be set after the current noise sample was played. The roughness set ... the roughness of the noise, this can be modulated at audio rate. The layers knob sets the number of layers, each successive layer is a smoothed version of the one above, so the more layers thee are the smoother the noise can be, at the price of some computation overhead. The length knob sets the length of the current noise pattern, the higher it is set the less tone there there will be in the generated output. The clock input going from low to high will cause a new noise sample to be output. |
Audio rate Perlin noise generator version 1 polyphonic Notes about polyphony: Only the am input and the output are polyphonic. |
An audio rate Perlin noise generator. The new input, when active, causes a new noise sample to be set after the current noise sample was played. The roughness set ... the roughness of the noise, this can be modulated at audio rate. The layers knob sets the number of layers, each successive layer is a smoothed version of the one above, so the more layers thee are the smoother the noise can be, at the price of some computation overhead. The length knob sets the length of the current noise pattern, the higher it is set the less tone there there will be in the generated output. |
Audio rate strange attractor module version 1 polyphonic |
An audio rate strange attractor module. There are two modes of operation Lorentz and Roessler. Lorenz function - very broad spectrum noise function with amplitude decreasing with increasing frequency, but tight short-term correlation. The scale of waveform features will change somewhat with the set frequency and sample rate, but not drastically - it's fairly fractal. In particular, there will not be substantial spectral peaks at multiples of the frequency selected by SetFreq. Roessler system - broad spectrum noise function with amplitude decreasing with increasing frequency, and distinct harmonic peaks. The peaks should occur at harmonics of the frequency set by SetFreq. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. |
Audio rate strange attractor module version 1 polyphonic |
An audio rate strange attractor module. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. |
Percussion oscillator version 1 polyphonic |
Percussion Oscillator This one is modelled loosely after the pch2csd implementation of the Clavia G2 OscPerc modue (type 195 there). As an extra a speed input was added, which unconnected holds a value of 0.5. When Speed is 0 the oscillator runs not, it may still click tho. And when speed is 1.0 the oscillator runs twice the speed of the set value. There is a small quirk, when the decay time is set long for the trig repetition rate the module starts to click even when click is zero. The punch effect reshapes the envelope a bit, this does not do the same thing as the Clavia module does. |
FFT based additive oscillator version 1 polyphonic |
PadSynth A PADSynth like module bused on ideas from Nasca Octavian Paul, see: http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm for more on this. This module use IFFT to generate sound from a spectrum as drawn by the faders and influenced further by the other controls. The bw / bw-scale controls manipulate the width of the spectral peaks. The spread and spread type controls manipulate the distance between the peaks. The module works by generating an in-memory waveform from the spectrum. This wave can then be played at different rates by using the position, speed and frequency controls. Some of the controls will be clicky as as the IFFT must be recalculated when their positions change. The module provides its stereo output by using two different tap points on the generated wave. |
Audio graph version 1 polyphonic |
A multiple sine oscillator. This module implements 6 sine oscillators tht are tuned relatively to a master frequency. For the master frequency the pitch can be set and the six generated slave sines can be set to a multiple of that tfrequency. Each slave has an individual multiplication factor for the frequency. In addition to that a mixer is implemented to set the levels of the slave signals, these levels can be modulated. |
Chladnic oscillator version 1 polyphonic |
An 11 channel oscillator module. The oscillator frequenciies are computed from Chladni's law f = C * ( m + 2n) ^ p where p can be controlled trough an input and n + 2m are distributed over the 11 channels. C is the base frequency. |
Wave player version 1 polyphonic |
A wave player module This module can read a wav file from disk into memory. The wav format needs to be 16 bit, 44.1 kHz - stereo and mono are both fine. The maximum file size is not limited by the module, but as the wave has to be read into memory for very large files you may run out of memory resulting in things to get very slow. Recordings with a length of several minutes should not be a problem. The speed input controls how fast the wave will be played, and the wave will be played backwards for negative values (or stand still when the speed is zero). When the FM input is connected too the speed will be multiplied by the FM amount (and speed must not be zero). The position input determines which sample will be sent to the output. This can be used with a sawtooth LFO to play the wave. The speed input can be thought of as a linear FM control while the position input can be seen a sa linear PM control. When a stereo wave is loaded the mono stereo switch will convert the selected wave to mono when set as mono, for a mono wave the left and right outputs will always be the same. Control click the filename field to pop up a file open dialog. The FM input provides exponential speed control, for it to work the speed input must be set to something unequal to zero - which can be done by having the on-off control as on, or by connecting something unequal to zero to the speed input. |
Triggerd Wave player version 1 polyphonic |
A triggered wave player This module can read a wav file from disk into memory. The wav format needs to be 16 bit, 44.1 kHz - stereo and mono are both fine. The maximum file size is not limited by the module, but as the wave has to be read into memory for very large files you may run out of memory resulting in things to get very slow. Recordings with a length of several minutes should not be a problem. The speed input controls how fast the wave will be played, and the wave will be played backwards for negative values (or stand still when the speed is zero). When the FM input is connected too the speed will be multiplied by the FM amount (and speed must not be zero). The speed input can be thought of as a linear FM control while the position input can be seen a sa linear PM control. When a stereo wave is loaded the mono stereo switch will convert the selected wave to mono when set as mono, for a mono wave the left and right outputs will always be the same. Control click the filename field to pop up a file open dialog. The FM input provides exponential speed control, for it to work the speed input must be set to something unequal to zero - which can be done by having the on-off control as on, or by connecting something unequal to zero to the speed input. Wave playing is started from the trigger input, as determined by a window set from trigger level to trigger level plus trigger range. Whenever the trigger input moves into that window a trigger condition is seen and whenever it moves out of that window the trigger condition is removed. Depending on the trigger mode selected:
|
Triggered Wave player version 1 polyphonic |
A triggered wave player This module can read a wav file from disk into memory. The wav format needs to be 16 bit, 44.1 kHz - stereo and mono are both fine. The maximum file size is not limited by the module, but as the wave has to be read into memory for very large files you may run out of memory resulting in things to get very slow. Recordings with a length of several minutes should not be a problem. The speed input controls how fast the wave will be played, and the wave will be played backwards for negative values (or stand still when the speed is zero). When the FM input is connected too the speed will be multiplied by the FM amount (and speed must not be zero). The speed input can be thought of as a linear FM control while the position input can be seen a sa linear PM control. When a stereo wave is loaded the mono stereo switch will convert the selected wave to mono when set as mono, for a mono wave the left and right outputs will always be the same. Control click the filename field to pop up a file open dialog. The FM input provides exponential speed control, for it to work the speed input must be set to something unequal to zero - which can be done by having the on-off control as on, or by connecting something unequal to zero to the speed input. Wave playing is started from the trigger input, as determined by a window set from trigger level to trigger level plus trigger range. Whenever the trigger input moves into that window a trigger condition is seen and whenever it moves out of that window the trigger condition is removed. Depending on the trigger mode selected:
|
NM Classic like master OSC, no audio version 1 polyphonic [this module is RateSmart [1]] |
A Nord Modular Classic like master oscillator. This ooscillator does not produce any sound, but it makes a control signal to drive slave oscillators from. In Wren any oscillator having a speed input can be used as a slave oscillator. The idea is to connect the speed output of the master oscillator to the speed input of other oscillators. For the Nord Modular Classic these would be the 'grey signals'. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. The Speed input provides linear FM, the lfm input linear FM modulation. For normal speed the control should be set to 0.5. A frequency fine control is available which can change the tuning by 50 cents up or down. This input can be modulated. |
audio rate positive only saw version 1 polyphonic |
An audio rate positive only and trivial (aliasing) sawtooth generator. The freq input is an unattenuated FM input with exponential control. The FM input provides exponential frequency control, the amount can be controlled by an attenuator. The PM input provides linear phase control, the amount can be controlled by an attenuator. The sync input resets the oscillator to phase zero when it's value goes from zero or below zero to above zero. A frequency fine control is available which can change the tuning by 50 cents up or down. This module has no anti-aliasing, it is meant to be used as an audio rate control module. For instance the AudiGraph module can be controlled by it. |
Audio graph version 1 polyphonic |
This is an audo rate lookup module, basically. The input value moves a cursor over the horizontal axis and the looked up graph height is then sent to the output. The input wants a positive only signal, the output is bipolar. Points can be added by double clicking (or with ctrl+click) in an empty area. The same action on an existing point will allow that point to be moved or removed - removing being a move to somewhere out of the graph area. The leftmost and rightmost points can not be removed, but can only be moved up or down. This module is better suiatable for audio rates than the DataGraph module, it uses Differential Parabolic Waves internally to suppress the aliasing somewhat. A right click on the graph area will popup a context menu allowing for some standard wave forms to be created, basic symmetry operations and save to and load from file. The Phasor module was made to control this module. the graph on this module uses auto-looping (first and last point will be set to the same Y value) and can optionally use auto-scaling (the full Y range will always be used). The rnd input, when going from false to true, will set new random Y values for all the points in the graph. The amount of randome being applied is the momentary analog value of the rnd input. |
DTMF generator version 1 polyphonic [this module is RateSmart [1]] |
A DTMF tone generator. The number input scales an incoming value to an interval of 0 .. 15. The numbers 0 .. 15 then map to the symbols [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, #, *], the symbol then is converted to it's two tones. |
Wave player version 1 polyphonic |
A wave player module This module can read a wav file from disk into memory. The wav format needs to be 16 bit, 44.1 kHz - stereo and mono are both fine. The maximum file size is not limited by the module, but as the wave has to be read into memory for very large files you may run out of memory resulting in things to get very slow. Recordings with a length of several minutes should not be a problem. The speed input controls how fast the wave will be played, and the wave will be played backwards for negative values (or stand still when the speed is zero). When the FM input is connected too the speed will be multiplied by the FM amount (and speed must not be zero). The position input determines which sample will be sent to the output. This can be used with a sawtooth LFO to play the wave. The speed input can be thought of as a linear FM control while the position input can be seen a sa linear PM control. When a stereo wave is loaded the mono stereo switch will convert the selected wave to mono when set as mono, for a mono wave the left and right outputs will always be the same. Control click the filename field to pop up a file open dialog. The FM input provides exponential speed control, for it to work the speed input must be set to something unequal to zero - which can be done by having the on-off control as on, or by connecting something unequal to zero to the speed input. |
Control rate multi waveform oscillator version 1 polyphonic |
A control rate sine, tri, saw, square, random and random-square wave oscillator (LFO). The FM input provides exponential frequency control, the amount is under control of an attenuator. The PM input provides linear phase control, the amount being controlled by an attenuator. The res input resets the oscillator to phase zero when it's value changes from zero or less than zero to a value above zero. The mute button sets the output to zero when active. The sync output is active around the start point of the wave. The output type selector sets the output to either:
The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. |
Control rate square oscillator version 1 polyphonic |
A control rate square wave oscillator (LFO). The FM input provides exponential frequency control. The PM input provides linear phase control. The res input resets the oscillator to phase zero when it's value changes from zero or less than zero to a value above zero. The PWM input provides linear Pulse Width Modulation. The mute button sets the output to zero when active. The sync output is active around the start point of the wave. The output type selector sets the output to either:
The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. |
Control rate square and sine oscillator version 1 polyphonic |
A control rate square and sine oscillator (LFO). The FM input provides exponential frequency control. The PM input provides linear phase control. The res input resets the oscillator to phase zero when it's value changes from zero or less than zero to a value above zero. The PWM input provides linear Pulse Width Modulation. The mute button sets the output to zero when active. The sync output is active around the start point of the wave. The output type selector sets the output to either:
The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. |
Control rate noise generator version 1 polyphonic |
A control rate noise generator (LFO). The color control determines the rate of change of the output signal, set to zero the output freezes and set to max the output will change at it's fastest rate. Color can be modulated trough the color mod input. The mute button sets the output to zero when active. The output type selector sets the output to either:
|
Interpolated random generator version 1 polyphonic |
A smooth control rate random generator, it linearly interpolates from the current to the next output value (LFO). The random mode can be set to to lin or exp, when set to exp the lambda control sets the jumpiness, i.e. the amount of variation between successive target values. The final random value is smoothed by the distribution control before it is used, distribution can be modulated. The output type selector sets the output to either:
|
Multiple interpolated random generators version 1 polyphonic |
A set of smooth control rate random generators, they linearly interpolate from the current to the next output value (LFO). The random mode can be set to to lin or exp, when set to exp the lambda control sets the jumpiness, i.e. the amount of variation between successive target values. The final random value is smoothed by the distribution control before it is used, distribution can be modulated. The output type selector sets the output to either:
Internal feedback is provided for FM and DISTribution, the amount for each can be set sepately and the amounts can be modulated. The R outputs provide a none cross-faded signal while the X outputs can be set to cross fade between the current and next output value. The level value determined from the lev. knob multiplied by it's modulation input will be multiplied by the internal signals, the signals will then be clipped to be in a range [-1.0,1.0] before the output type scaling is being prformed. For high levels the outputs will spend more time at the extreme values. When the calculated level is below the 'dead level' the output will be zero. The s&h input supports the special NOT_CONNECTED status. The correlation (cor) sets the similarity for the output sets. The topmost output will always be the inversion of the bottom one though - correlation is between the 'channels' out(inv)1, out(inv)2, etc. The higher the correlation the the more similar the channels will be. This value can be modulated with the signal input left of it (corrmod). When the correlation is zero all channels will be totaly independant, when it is one all channels will be the same. |
Random pulses generator version 1 polyphonic |
A random pulses generator. The random mode can be set to to lin or exp, when set to exp the lambda control sets the jumpiness, i.e. the amount of variation between successive target values. In Async mode the frequency controls do nothing. The output range can be set to one of:
|
Control rate 3D random walk generator version 1 polyphonic |
A control rate brownian noise, or random walk, generator. The FM input provides exponential frequency control. The mute button sets all outputs to zero when active. The Color control determines the rate of change of the outputs. This module works by moving a virtual dot in a a virtual cube [(-1,-1,-1),(1,1,1)]. At every clock beat the dot will be moved over a random distance smaller than set by the sum of the distance parameter and the distance modualation input. When the dot hits a wall it will bounce off. The dot position is updated at the rate set by the frequency control. The random mode can be set to B (linear/brownian), E (Exponential) or L (Levy flight). When set to E or L the Lamba control determines the jumpiness, turn right for larger jumps. The output type selector sets the outputs to either:
The sync output goes active when the ouput values change and it will go inactive again halfway the LFO period. |
Control rate strange attractor module version 1 polyphonic |
An LFO rate strange attractor module. There are two modes of operation Lorentz and Roessler. Lorenz function - very broad spectrum noise function with amplitude decreasing with increasing frequency, but tight short-term correlation. The scale of waveform features will change somewhat with the set frequency and sample rate, but not drastically - it's fairly fractal. In particular, there will not be substantial spectral peaks at multiples of the frequency selected by SetFreq. Roessler system - broad spectrum noise function with amplitude decreasing with increasing frequency, and distinct harmonic peaks. The peaks should occur at harmonics of the frequency set by SetFreq. The output type selector sets the output to either:
|
Control rate strange attractor module version 1 polyphonic |
An LFO rate strange attractor module. The output type selector sets the output to either:
|
Curent time version 1 polyphonic Notes about polyphony: This module sends out to all voices equally. |
This module gives the current time of the day (T.O.D.) as a value ranging from zero to one. It has millisecond resolution. So basically this is a saw tooth generator with a period of 24 hours which is synced to the current PC time, at 00:00 it gives output value zero, at 01:00 the ouput value will be 1 / 24 etc. I've added some outputs for hour (h), minute (m) and second (s) - these are saw waves with periods of an hour, minute and second respectively. The 24 hour output is labeled (d). |
Control rate multi waveform burst version 1 polyphonic |
A control rate triggered sine, tri, saw and square wave oscillator (LFO). The FM input provides exponential frequency control, the amount being controlled by an attenuator. When the trig input changes from zero or less than zero to a value above zero a preset amount of half waves will be sent to to the output. This can be used for VOSIM like synthesis or as an envelope control. The mute button sets the output to zero when active. The rdy output becomes active when the module is ready for a new trigger signal. The output type selector sets the output to either:
The mode selector can set the the module into normal or retrig mode. Together with a graph module and when set to a saw shaped wave this will allow for arbitrary envelope shapes. The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. |
control rate square burst version 1 polyphonic |
A control rate triggered square wave oscillator (LFO). The FM input provides exponential frequency control. The PWM input provides linear Pulse Width Modulation. When the trig input changes from zero or less than zero to a value above zero a preset amount of half waves will be sent to to the output. This can be used for VOSIM like synthesis or as an envelope control. The mute button sets the output to zero when active. The rdy output becomes active when the module is ready for a new trigger signal. The output type selector sets the output to either:
The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. |
control rate clocked noise version 1 polyphonic |
A control rate triggered noise generator (LFO). When the tr input changes from zero or less than zero to a value above zero a new random value will be sent to to the output. The color control determines the rate of change of the output. When it is set to zero the output will be frozen, when it is set to max the output values will change most from sample to sample. The mute button sets the output to zero when active. The output type selector sets the output to either:
|
clock generator version 1 monophonic |
A clock generator module. Tempo can be set from 0 to 255 BPM. The * 96 green output sends 96 pulses per whole note. The * 16 green output sends 16 pulses per whole note, swing is applied to this output. The sync rate can be set to n times a whole note time with the sync div control. The sync output can be used to reset sequencers, for instance. Swing can be set from 1/2 to 31/32 The blue 96 and 16 ouputs output the internal phase accumulators, so they provide a positive only sawtooth. These can for instance be used to implement your own swing function by feeding them into a comparator. With the active button the clock can be started and stopped, each time it is started it will be reset internally. External reset is possible withthe res input. External tempo control is possible with the tempo input, this overrides the knob setting. You can use a tap control module (set to the right range) for this. The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. The temo (tempoex) input supports the special NOT_CONNECTED status. |
DataGraph clock generator version 1 polyphonic [this module is RateSmart [1]] |
ClockGen2, a Clock generator. This module was especially made for the DataGraph module, the two can make a versatile sequencer together. The bars control sets the number of bars to be used, that is the number of time divisions to be made in the DataGraph module (which got an input to control its horizontal divisions). Bars/m or bars per minute sets the play rate for the bars - or the number of divisions per minute to be played in the DataGrap. This sets the module's cycle rate and it is output through the sin, tri, saw and sq(uare) outputs. The saw output is always affected by the phase controls, the sin, tri and sq ouputs can be switched on or off for this effect (with the samll button below the outputs). The signal type to be used is set for all four with the same control. Quantization is a rate multiplied version of of the cycle, it is meant to be connected to the DataGraph's quant input and it determines the quantization times to be used - or the note granularity to be used. This is a square wave output and it can have swing (as set by the swing controls) applied to it. Accents is a rate divided down version of the quantize signal, it can be used to apply accents - it is not involved with the DataGraph module. There is an overall speed control input for dynamically changing the speed. The res input provides for a means to sync the module to other signals. And the active input switches the module between active and inactive, it is xor-ed with the ON / off button. When the module goes from inactive to active it will be reset as well. There are modulation inputs for Phase, Swing, Bars/m, quantization and accents - all are multiplicative and are 1.0 when not connected. |
Control rate multi phase multi waveform oscillator version 1 polyphonic |
A control rate sine, tri, saw, square, random and random-square wave oscillator (LFO). The FM input provides exponential frequency control, the amount is under control of an attenuator. The PM input provides linear phase control, the amount being controlled by an attenuator. The res input resets the oscillator to phase zero when it's value changes from zero or less than zero to a value above zero. The mute button sets the output to zero when active. The sync output is active around the start point of the wave. The output type selector sets the output to either:
There are four phase shifted outputs available which can be set to a shift of 90 or 120 degrees, when 120 degrees is selected the rightmost output will shift 180 degrees. The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. |
Audio rate multi waveform LFO version 1 polyphonic |
An audio rate sine, tri, saw, square, random and random-square wave oscillator (LFO). This is an LFO module running at audio rates, it allows for smoother control of delay line based effects. The FM input provides exponential frequency control, the amount is under control of an attenuator. The PM input provides linear phase control, the amount being controlled by an attenuator. The res input resets the oscillator to phase zero when it's value changes from zero or less than zero to a value above zero. The mute button sets the output to zero when active. The sync output is active around the start point of the wave. The output type selector sets the output to either:
The speed input provides linear trough zero FM. When the input level is 1 the LFO will run twice as fast as it normally would, when zero the LFO will stop, and on negative speeds it will run backwards. |
Retriggerable AR envelope version 1 polyphonic |
A retriggerable Attack Release type Envelope. The envelope will start when the trig input goes from zero, or below zero, to above zero. When the envelope period was not finished when a new trigger comes in the Attack phase will start from the value where the output was at that moment. The Envelope amplitude is set by the gain input, when this input is not connected the gain will be 1. The leftmost output will output the envelope signal as is, while the rightmost output will apply the envelope to the signal present at the input above it. The attack phase is linear only and the release phase is exponential only. The mute button will set all outputs to zero when active. A and R time modulation is present, the modulation values are added to the preset times. And then there is the add (A), subtract (S) an multiply (M) mode for the A and R times on the EnvARRetrig modules. These control how the modulation inputs will act. In add mode the modulation input value is added to the knob value to determine the actual time used. In subtract mode the modulation will be subtracted from the knob value and in multiply mode the modulation input will be multiplied by the knob setting. With the Inh(ibit) input the envelope can be disabled (when it's value is >= 0.5). The A/D mode knob selects between the usual digital trigger mode and a couple of analog mode. In analog mode the trig input is level controlled, where the level is being quantised to levels set by the 2, 3, 4, 5, 6 and A modes and whenever that quantised value changes the envelope is triggered. The modes 2, 3, 4, 5 and 6 indicate the number of levels used, while the A mode has an 'infinite' number of levels. |
Retriggerable AR envelope version 1 polyphonic |
A retriggerable Attack Release type Envelope. The envelope will start when the trig input goes from zero, or below zero, to above zero. When the envelope period was not finished when a new trigger comes in the Attack phase will start from the value where the output was at that moment. The Envelope amplitude is set by the gain input, when this input is not connected the gain will be 1. The leftmost output will output the envelope signal as is, while the rightmost output will apply the envelope to the signal present at the input above it. The Attack and Release shapes can be set to Log, Lin, Exp or S type. The mute button will set all outputs to zero when active. A and R time modulation is present, the modulation values are added and / or subtracted to / from the preset times. With the Inh(ibit) input the envelope can be disabled (when it's value is >= 0.5). The A, R and H outputs go active when the A, R or H state is active, the EOC output goes active when none of the A, R, or H states is active. The A/D mode knob selects between the usual digital trigger mode and a couple of analog mode. In analog mode the trig input is level controlled, where the level is being quantised to levels set by the 2, 3, 4, 5, 6 and A modes and whenever that quantised value changes the envelope is triggered. The modes 2, 3, 4, 5 and 6 indicate the number of levels used, while the A mode has an 'infinite' number of levels. |
Attack Hold Decay envelope version 1 polyphonic |
An Attack Hold Decay type envelope generator. The attack and decay types can be set to Linear, Logarithmic or exponential. The timing ranges can be set as fast, medium or slow. The trigger type can be set to gate or trig mode. In gate mode the envelope period needs to be finished before it can restart, in trig mode it can restart at any time. The envelope will start when the trig input goes from zero, or below zero, to above zero. The Envelope amplitude is set by the gain input, when this input is not connected the gain will be 1. The leftmost output will output the envelope signal as is, while the rightmost output will apply the envelope to the signal present at the input above it. The mute button will set all outputs to zero when active. For the Attack and Decay phases the mode can be set to exponential, linear, logarithmic or s-curved. Envelope times can all be modulated. The EOC (End Of Cycle) output goes active when the full envelope period is finished, or when a period nver occured. Fed back into the trigger input sustained self oscillation will take place. The swell controlls can modify the behaviour of the hold period. The A/D mode knob selects between the usual digital trigger mode and a couple of analog mode. In analog mode the trig input is level controlled, where the level is being quantised to levels set by the 2, 3, 4, 5, 6 and A modes and whenever that quantised value changes the envelope is triggered. The modes 2, 3, 4, 5 and 6 indicate the number of levels used, while the A mode has an 'infinite' number of levels. |
Attack Decay Sustain Release envelope version 1 polyphonic |
An Attack Decay Sustain Release type envelope generator. The attack, decay and release types can be set to Linear, Logarithmic or exponential. The timing ranges can be set as fast, medium or slow. The trigger type can be set to gate or trig mode. In gate mode the envelope period needs to be finished before it can restart, in trig mode it can restart at any time. The envelope will start when the trig input goes from zero, or below zero, to above zero. The Envelope amplitude is set by the gain input, when this input is not connected the gain will be 1. The leftmost output will output the envelope signal as is, while the rightmost output will apply the envelope to the signal present at the input above it. The mute button will set all outputs to zero when active. For the Attack, Decay and Release phases the mode can be set to exponential, linear, logarithmic or s-curved. All the times and the sustain level can be modulated. The EOC (End Of Cycle) output goes active when the full envelope period is finished, or when a period nver occured. Fed back into the trigger input sustained self oscillation will take place. The swell controlls can modify the behaviour of the sustain period. The A/D mode knob selects between the usual digital trigger mode and a couple of analog mode. In analog mode the trig input is level controlled, where the level is being quantised to levels set by the 2, 3, 4, 5, 6 and A modes and whenever that quantised value changes the envelope is triggered. The modes 2, 3, 4, 5 and 6 indicate the number of levels used, while the A mode has an 'infinite' number of levels. |
freq version 1 polyphonic |
LpGate, a low-pass gate of sorts. This is modeled loosely after the Buchla LPG, but it differs a bit. Internally an AR envelope is used to control two 6dB low pass filters (as a loose approximation of the vactrol response), the filters are detuned a bit to get a bit more than 6dB / octave and a bit less than 12dB / octave. There is a feedback path from the filter output back to the input, the amount is controlled by the reso knob and modulation. This can spice-up the signal a bit when opened. The AR times can be changed with the time controls, there is a fixed relation between A and R times. The filter's base frequency can be set with the freq controls. The AR triggers when the control signal goes from less than zero to zero or more, in the attack phase the speed of it's signal is proportional to the actual input level. Soft triggering will open the filter less. The release time will not be affected by that. This differs from the Buchla LPG, also a combined mode only is implemented where both level and filter are being controlled from the envelope. Whenever the module's AR is in the attack phase the control light will turn on. The AR implementation differs a bit from the one used in the AR type envelope modules as hold will be active always and on a negative going control signal the module will go to the A phase always. The output signal runs trough a tanh function, as a soft clipper for excessive volumes. Also there is a DC blocker at the output to get rif of the almost DC values when the gate closes. |
Envellope controller version 1 polyphonic |
A retriggerable envelope controller. The envelope will start when the trig input goes from zero, or below zero, to above zero. The output will then in the set Attack time go to the level set with the level control. When the trig input falls off the output will start getting larger again for the set Release time, till a value of 1 is reached. At every new trig start the ouput value is reset to 0, and the above cycle will restart. Both the Attack and Decay phase are linear. This module is meant to control the GraphControl module, the actual envelope shape is then drawn in that module. The set level will then correspond to the vertical distance in the graph where the hold value will be. The EOC (End Of Cycle) output goes active when the full envelope period is finished, or when a period never occured. Fed back into the trigger input sustained self oscillation will take place. |
Envelope follower version 1 polyphonic |
An envelope follower module. The peak decay is meant for the Inv(erted) output. The module tries to estimate a maximum envelope level from the normal output, and that value is used as the reference for the inverted output. inv = ref - env When peak decay is off the ref level will be the maximum level seen ever, when peak decay is on the maximum level will go down at the peak decay rate until a new maximum was seen, it then will set that as the new ref level. The module can be set to use RMS mode or peak level mode. |
Multi envelope follower version 1 polyphonic |
A 17 channel envelope follower / multiplier module. Meant to be used with the splitter and combiner filters etc. to do vocoder like effects. Unused multiplier (blue) inputs default to a value of 1. |
A detector module, phase, frequency, amplitude version 1 polyphonic [this module is RateSmart [1]] |
A detector module. This module detects instantaneous phase, frequency and amplitude of the ingoing signal. This is based on "complexifying" the input using a hilbert transform. The complex signal is then used to determine the phase, frequency and the amplitude. This in principle only works for sine shaped inputs, but it can do some interesting stuff on more complex signals too. The phase output can be used to control the phase input of an oscillator and the amplitude likewise can be connected to the AM input of an oscilator, this then will more or recreate the input signal with the oscillator. The frequency output is linear with frequency, it can drive linear frequency inputs (the MasterOsc module can do lin/exp conversions in various ways). |
non retriggerable AR envelope version 1 polyphonic |
A non-retriggerable Attack Release type Envelope. The envelope will start when the trig input goes from zero, or below zero, to above zero. The envelope can thereafter only be restarted when it's cycle is completely finished. The Envelope amplitude is set by the gain input, when this input is not connected the gain will be 1. The leftmost output will output the envelope signal as is, while the rightmost output will apply the envelope to the signal present at the input above it. The attack phase is linear only and the release phase is exponential only. The mute button will set all outputs to zero when active. A and R time modulation is present, the modulation values are added to the preset times. With the Inh(ibit) input the envelope can be disabled (when it's value is >= 0.5). |
12 dB resonant envelope generator version 1 polyphonic |
A 12 dB resonant envelope generator. Based on a low frequency 12 dB / Oct State Variable Filter, for the envelope the filter's low pass is being used, it is labeled as env on the module. The time and time modulation controls (+ and -) set the cutoff frequency (to a very low value) - there are four ranges available for the timing to be used, fast, medium, slow and vfast (for very fast - in envelope time). The S control adds stretch to the input pulse, it can be + and - modulated by the two inputs eft of it. The stretch time control span is controlled by the range as well. The Q control sets the amount of resonance. The Q value can be modulated trough both a + and a - input. This module doubles as a very low frquency filter when the trig input is not connected; in this case the gain input serves as the main input and when the Q is high, transients will be added to the gain signal (and then be present on the env signal). The env output really is the the filter's low pass signal. The bp and hp outputs return the filter's band pass and hig hpass functions. Hp used to be named inv, and it would then output 1.0 - env, but changed that. If you need the 1.0 - functionality you'll have to add that extrnally now (which is easier than to extternally add the HP .. and ran out of pixels a bit :¬) ). The red input is multiplied by the env signal and then sent to the red output - this acts as a built in VCA. The trig input supports the special NOT_CONNECTED status. |
DC cuttoff filter version 1 polyphonic [this module is RateSmart [1]] |
A DC blocking filter. For audio rates (red mode) the -3dB point can be set from approximately 10/20 Hz to 400/800 Hz (depending on sample rate). In control rate (blue) mode this ranges from approximately 1.25/2.5 Hz to 50/100 Hz (depending on sample rate). |
Dual DC cuttoff filter version 1 polyphonic [this module is RateSmart [1]] |
A DC blocking filter. For audio rates (red mode) the -3dB point can be set from approximately 10/20 Hz to 400/800 Hz (depending on sample rate). In control rate (blue) mode this ranges from approximately 1.25/2.5 Hz to 50/100 Hz (depending on sample rate). |
Click removal module version 1 polyphonic [this module is RateSmart [1]] |
A moving average type of filter. The filter's alpha parameter is fixed. The LP output is calculated as:
This filter is meant to go after a sequencer and before the FM input of an oscillator to filter out fast changes in frequency a bit. |
averager / lag / portamento filter version 1 polyphonic [this module is RateSmart [1]] |
A exponential moving average type of filter. The knob controls the alpha parameter. The LP output is calculated as:
So when alpha is zero the output value is frozen and when alpha is one the output will follow the input. The HP output is calculated as IN - LP, so it will be zero when alpha is one and it will follow the input when alpha is zero. This filter is most useful for making a lag or portamento type of effect, it can smooth out jumps in the input value. |
moving average filter version 1 polyphonic [this module is RateSmart [1]] |
A moving average type of filter. The knob controls the kernel size, or the number of samples the averaging is computed over. This filter is most useful for making a lag or portamento type of effect, it can smooth out jumps in the input value. |
6 dB low and high pass filter version 1 polyphonic [this module is RateSmart [1]] |
A 6 dB / octave low and high pass filter. The knob controls the cut-off frequency. This filter can work at both control and audio rates, but at control rate the frequency is eight times lower than what is being shown. |
6 dB band pass filter version 1 polyphonic [this module is RateSmart [1]] |
A 6 dB / Octave band pass filter. The high pass and the low pass filter are cascaded and can be set independently. This filter can work at both control and audio rates, but at control rate the frequencies are eight times lower than what is being shown. |
6 dB stereo band pass filter version 1 polyphonic [this module is RateSmart [1]] |
A 6 dB / Octave stereo band pass filter. The high pass and the low pass filter are cascaded and can be set independently. This filter can work at both control and audio rates, but at control rate the frequencies are eight times lower than what is being shown. |
6 dB stereo band pass filter version 1 polyphonic [this module is RateSmart [1]] |
A 6 dB / Octave stereo band pass filter. The high pass and the low pass filter are cascaded and can be set independently. The high cut frequency can be modulated. This filter can work at both control and audio rates, but at control rate the frequencies are eight times lower than what is being shown. |
12 dB state variable filter version 1 polyphonic |
A 12 dB / Oct State Variable Filter with Low Pass, Band Pass, High Pass and Band Reject outputs. The fm input controls the cutoff frequency, it is exponentially scaled and the FM amount is controlled by an attenuator. The dist control can add some internal distortion to the filter. The Q control sets the amount of resonance. The Q value can be modulated trough both a + and a - input. |
24 dB moog like low pass filter version 1 polyphonic |
A 24 dB / Oct moog like low pass filter.. The fm input controls the cutoff frequency, it is exponentially scaled and the FM amount is controlled by an attenuator. The Q control sets the amount of resonance. The Q value can be modulated trough both a + and a - input. This filter has some built-in non-linearities, including soft clipping on the output. To avoid soft clipping on the output one can reduce the input level. There are several filter types implemented, the original (and still default) one is / was Huovilainen, the others are Improved, Krajeski, MicroTracker, MusicDSP, OberheimVar, RKSimulation and Stilson. They are all simulations of a ladder filter, for more information see ddiakopoulos / MoogLadders. The copyright messages are:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Dual 12 dB filter version 1 polyphonic |
Dual filter Two 12 dB/Octave filters with three selectable configuarations and frequency spread control and pre/post distortion. The two filters are connected in series, the first filter frequency is set with the frequency controls and the second filter follows it with a modulatable separation offset (which can be negative by using the separation modulation inputs). The filter mode can be set to low pass (lp), high pass (hp) or band pass (bp). In low and high pass modes it will act as a 24 dB / oct. filter where the resonance peak can be split in two by the separation controls. In band pass mode there are two 12 dB / oct. filters where the band width is controlled with the separation controls. The lev control sets the input level and there is pre and post distortion available. The Q control sets the filter Q for both filters, and it can be modulated positively and negatively trough the two modulation inputs. |
State Variable Filter by HrastProgrammer version 1 polyphonic |
Selfoscillating State Variable Filter with additional 24dB stage, combined 12dB/24dB outputs + individual 12dB LP/BP/HP/BR outputs Freq ... Cutoff frequency Q ... Resonance Input + Gain ... Filter input Drive ... Input drive amount (0 = no drive, 1 = total clipping) FM Input + Amount ... Cutoff frequency modulation input (exponential) QM Input + Amount ... Resonance modulation input LP ... LowPass filter amount BP ... BandPass filter amount HP ... HighPass filter amount 12dB ... Combined 12dB LowPass/BandPass/HighPass output level 24dB ... Combined 24dB LowPass/BandPass/HighPass output level Outputs: LP/BP/HP/BR ... Individual 12dB LowPass/BandPass/HighPass/Notch outputs 12dB ... Combined 12dB LowPass/BandPass/HighPass output 24dB ... Combined 24dB LowPass/BandPass/HighPass output Notes: Individual outputs are always available and they don't depend on LP/BP/HP amounts or 12dB/24dB levels. To get notch on 12dB/24dB outputs set LP=1, BP=0 and HP=1. For selfoscillation some signal must be present at input. For example, set input gain to 0.01 and send some noise to the input. Be careful with very high resonance values (over 0.9) when using 24dB output. |
Integrator / Differentiator version 1 polyphonic [this module is RateSmart [1]] |
An integrator and differentiator. The integrator sums all previous input values and sets that as it's output value, this value will be clipped in a range [-100,100]. The differentiator outputs the difference between the previous input sample and the current one. There is a mode selector for how the differentiator output behaves. When set to transparent it will output both positive and negative differences. When set to half wave it will output negative differences as zero, while letting thru positive differences. When set to full wave mode the absolute value of the difference will be output. This can be used for example to trigger something when a signal goes up, or when it changes. There is a gain control for the integrator gain to be able to make it clip less. |
Differentiator version 1 polyphonic [this module is RateSmart [1]] |
A differentiator. This module outputs the difference between the previous input sample and the current one. There is a mode selector for how the differentiator output behaves. When set to transparent it will output both positive and negative differences. When set to half wave it will output negative differences as zero, while letting thru positive differences. When set to full wave mode the absolute value of the difference will be output. This can be used for example to trigger something when a signal goes up, or when it changes. The sel input is scaled up and added to the mode selector and then the result taken modulo 3 to determine the actual mode to be used. |
A 3dB / octave pink filter version 1 polyphonic |
A 3dB / octave pink (10 dB / decade) filter to pinken up white noise. Mode can be normal or economy. In normal mode it is accurate to within +/-0.05dB above 9.2Hz (44100Hz sampling rate). In economy mode this is +/-0.5dB. The DC gain is pretty high, so you may want to put a high pass filter before it to loose excess bass. |
Resonator version 1 polyphonic |
A resonating filter The filter expects impulse like input signals and then will create a damped oscillation from that. |
Tilt filter version 1 polyphonic |
Tilt filter This uses a modulatable center frequency (F0) and then boosts one of the ranges above or below F0, while doing the opposite with the other range, with a modlatable amount. |
Stereo tilt filter version 1 polyphonic |
Tilt filter This uses a modulatable center frequency (F0) and then boosts one of the ranges above or below F0, while doing the opposite with the other range, with a modlatable amount. |
All pass filter version 1 polyphonic |
An all-pass filter. An all pass filter passes all frequencies with zero attenuation, but it will change the signal phase in a frequency dependent way. The delay length can be set with with the length parameter. This is in samples, and so the actual time will depend on the current sample rate. The feedback factor fb is used to trim the frequency at which the the phase shift is halfway. The factor fb can be modulated but the resulting value always has to be in the range [-1,1]. The LEDs indicates internal clipping of the modulation signal, e.g. it is going outside the range [-1,1]. This unit can be used for several purposes. The phase smearing can be used to reduce peak amplitudes for impulse like signals, helping to avoid clipping. When k is being modulated there will be a phase distortion varying with time, resulting in signal warble or in FM like effects for higher modulation rates and longer lengths. |
Tritone filter bank version 1 polyphonic |
A fixed half-octave (tritone) filter bank module. The filter steps are set to be fixed, 6 semi tones apart (tritone). The labels show rounded values for the frequencies the 40 Hz label is exact. The low filter can be set into LowPass or BandPass mode. Thehigh filter can be set into HighPass or BandPass mode All other filters are bandpass filters. There is an overall input level control. The filter Q can be set. The filter steepness can be set from 1 to 4, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass mode. Each step up adds an extra filter layer in series - so a steepness of 4 adds up to 68 filters being used. |
Third filter bank version 1 polyphonic |
A fixed third-octave (major third) filterbank module. The filter steps are set to be fixed, 4 semi tones apart (major third). The labels show rounded values for the frequencies the 160 Hz label is exact. The low filter can be set into LowPass or BandPass mode. The high filter can be set into HighPass or BandPass mode All other filters are bandpass filters. There is an overall input level control. The filter Q can be set. The filter steepness can be set from 1 to 4, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass mode. Each step up adds an extra filter layer in series - so a steepness of 4 adds up to 68 filters being used. |
Tritone splitter version 1 polyphonic |
A fixed half-octave (tritone) frequency splitter module. The filter steps are set to be fixed, 6 semi tones apart (tritone). The labels show rounded values for the frequencies the 40 Hz label is exact. The low filter can be set into LowPass or BandPass mode. The high filter can be set into HighPass or BandPass mode All other filters are bandpass filters. There is an overall input level control. The filter Q can be set. The filter steepness can be set from 1 to 4, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass mode. Each step up adds an extra filter layer in series - so a steepness of 4 adds up to 68 filters being used. Each filter chain has a separate output. A clipping indicator is provided on each output. |
Third filter bank version 1 polyphonic |
A fixed major fifth filterbank module. The filter steps are set to be fixed, 7 semi tones apart (major fifth). The low filter can be set into LowPass or BandPass mode. The high filter can be set into HighPass or BandPass mode All other filters are bandpass filters. There is an overall input level control. The filter Q can be set. The filter steepness can be set from 1 to 4, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass mode. Each step up adds an extra filter layer in series - so a steepness of 4 adds up to 68 filters being used. |
Third splitter version 1 polyphonic |
A fixed third-octave (major third) frequency splitter module. The filter steps are set to be fixed, 6 semi tones apart (tritone). The labels show rounded values for the frequencies the 160 Hz label is exact. The low filter can be set into LowPass or BandPass mode. The high filter can be set into HighPass or BandPass mode All other filters are bandpass filters. There is an overall input level control. The filter Q can be set. The filter steepness can be set from 1 to 4, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass mode. Each step up adds an extra filter layer in series - so a steepness of 4 adds up to 68 filters being used. Each filter chain has a separate output. A clipping indicator is provided on each output. |
Modal filter version 1 polyphonic |
An 11 channel modal filter. For each channel the frequency (f) the q and amplitude (a) can be set. With the freq and FM controls the whole set of filters can be swept over the frequency range. The input level can be set. The F Q and A buttons will randomize the f q and a knobs. |
Third combiner version 1 polyphonic |
A fixed third-octave (major third) frequency combiner module. The filter steps are set to be fixed, 6 semi tones apart (tritone). The labels show rounded values for the frequencies the 160 Hz label is exact. The low filter can be set into LowPass or BandPass mode. The high filter can be set into HighPass or BandPass mode All other filters are bandpass filters. There is an overall input level control. The filter Q can be set. The filter steepness can be set from 1 to 4, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass mode. Each step up adds an extra filter layer in series - so a steepness of 4 adds up to 68 filters being used. Each filter chain has a separate input. A clipping indicator is provided on each input. |
Tritone combiner version 1 polyphonic |
A fixed half-octave (tritone) frequency filter combiner module. The filter steps are set to be fixed, 6 semi tones apart (tritone). The labels show rounded values for the frequencies the 40 Hz label is exact. The low filter can be set into LowPass or BandPass mode. The high filter can be set into HighPass or BandPass mode All other filters are bandpass filters. There is an overall input level control. The filter Q can be set. The filter steepness can be set from 1 to 4, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass mode. Each step up adds an extra filter layer in series - so a steepness of 4 adds up to 68 filters being used. Each filter chain has a separate input. A clipping indicator is provided on each input. |
Modal filter type 2 version 1 polyphonic |
An 11 channel modal filter. The filter settings are loaded fome a text file, wren.modal, and this file has to be located in the Wren application directory. The default file as distributed with Wren has some instructions in it on how to use it, it can be user modified. The Q settings and the level settings as determined fom the definition file can be altered with the a and q knobs of the module. The frequency settings can be modulated with the freq, fm and lfm parameters, the latter being linear FM. Also there is a modulatable overall Q setting changing the relative channel Q's simultaneously. The filter preset can be programmatically changed as well. |
Chladni modal filter version 2 polyphonic |
An 11 channel modal filter. The filter frequencies are computed from Chladni's law f = C * ( m + 2n) ^ p where p can be controlled trough an input and n + 2m are distributed over the 11 channels. C is the base frequency. Added a Fact/Cent selector on the Chladni filter, in Fact(or) mode it will behave as it always did (upping the frequency with a factor for the next filter channel). In Cent mode it will set the amount of cents between the filter channels. |
Fixed filter bank version 1 polyphonic |
A fixed filter bank The lowest frequency is 35Hz the highest one is just under 12kHz The stereo mode sends the odd channels left and the even ones right, with the knob a mix can be set between full mono and full stereo. The Q can add or remove resonance. The lev control sets the input level. The on/byp switch selects between the effect being on and bypass mode. The slopes can be either 6dB or 12dB (12dB or 24dB bandpass filters). |
Fixed filter bank version 1 polyphonic |
A simpler fixed filter bank The lowest frequency is 70Hz the highest one is just above 4kHz The stereo mode sends the odd channels left and the even ones right, with the knob a mix can be set between full mono and full stereo. The Q can add or remove resonance. The lev control sets the input level. The on/byp switch selects between the effect being on and bypass mode. The slopes can be either 6dB or 12dB (12dB or 24dB bandpass filters). |
volume controller version 1 polyphonic [this module is RateSmart [1]] |
A Chainable stereo volume controller. When a mute is active the module will zero the associated mix outputs. The attenuation can be set with the level knob and can be modulated trough the mod(ulation) input by an amount set by the mod(ulation) amount control. |
cross fader version 1 polyphonic [this module is RateSmart [1]] |
A cross fase module. When the ctrl input is -1 in1 will be sent to the output without mixing any of in2 in. When the ctrl value is 1 this is reversed. For inbetween values of the ctrl signal the output will have a mix of in1 and in2. The input type selector determines what input swing will be used for a full left to right control based on the direct position control being in the mid position. |
cross fader version 1 polyphonic [this module is RateSmart [1]] |
A cross fase module. When the ctrl input is -1 in1 will be sent to the output without mixing any of in2 in. When the ctrl value is 1 this is reversed. For inbetween values of the ctrl signal the output will have a mix of in1 and in2. The input type selector determines what input swing will be used for a full left to right control based on the direct position control being in the mid position. |
panner version 1 polyphonic [this module is RateSmart [1]] |
A panning module. When the ctrl input is -1 the in signal will be fully panned tou out1. When the ctrl value is 1 it pans the input to out2. For inbetween values a part of the ipnut signal goes to oit1 and a part 1 - part goes to out2. The input type selector determines what input swing will be used for a full left to right control based on the direct position control being in the mid position. |
panner version 1 polyphonic [this module is RateSmart [1]] |
A panning module. When the ctrl input is -1 the in signal will be fully panned tou out1. When the ctrl value is 1 it pans the input to out2. For inbetween values a part of the ipnut signal goes to oit1 and a part 1 - part goes to out2. The input type selector determines what input swing will be used for a full left to right control based on the direct position control being in the mid position. |
3 to 1 chainable mono mixer version 1 polyphonic [this module is RateSmart [1]] |
A Chainable 3 to 1 mono mixer. When a mute is active the module will zero the associated mix input |
4 to 1 chainable mono mixer version 1 polyphonic [this module is RateSmart [1]] |
A Chainable 4 to 1 mono mixer. When a mute is active the module will zero the associated mix input |
2 to 1 chainable stereo mixer version 1 polyphonic [this module is RateSmart [1]] |
A Chainable 2 to 1 stereo mixer. When a mute is active the module will zero the associated mixer input. Making solo active on the left or right pair will block the audio chain inputs and and it will also block the other audio input pair. Also the solo chain output will then be active which is signalled by a yellow light. When the solo output is connected to a downstream MixS2to1 module that module will block it's local inputs and it will pass on only it's chain inputs. This will be signalled on that module by having an orange solo light. |
5 to 1 chainable stereo mixer version 1 polyphonic [this module is RateSmart [1]] |
A Chainable 5 to 1 stereo mixer. When a mute is active the module will zero the associated mix input Making solo active on the left or right pair will block the audio chain inputs and and it will also block the other audio input pair. Also the solo chain output will then be active which is signalled by a yellow light. When the solo output is connected to a downstream MixS2to1 module that module will block it's local inputs and it will pass on only it's chain inputs. This will be signalled on that module by having an orange solo light. |
1 to 1 chainable three channel mixer version 1 polyphonic [this module is RateSmart [1]] |
A Chainable 1 to 1 triple channel mixer When a mute is active the module will zero the associated mix input |
1 to 1 chainable four channel mixer version 1 polyphonic [this module is RateSmart [1]] |
A Chainable 1 to 1 four channel mixer When a mute is active the module will zero the associated mix input |
16 channel mixer version 1 polyphonic [this module is RateSmart [1]] |
A 16 channel mono mixer with output mute. |
16 channel modulatable mixer version 1 polyphonic [this module is RateSmart [1]] |
A 16 channel mono mixer with modulation control on each fader and output mute. |
8 ch modulatable stereo mixer version 1 polyphonic [this module is RateSmart [1]] |
An 8 channel stereo mixer with modulation control amd mute on each fader. |
6 to 6 fully chainable mono matrix mixer version 1 polyphonic [this module is RateSmart [1]] |
A fully chainable 6 to 6 mono mixer with gain control on each cross point. When a mute input is active the module will zero that input for all output columns. |
Audio mixer with FX send version 1 polyphonic [this module is RateSmart [1]] |
A chainable audio mixer with main and FX outputs and Solo and Mute functionallity. |
Quad stereo 2 to 1 mixer version 1 polyphonic [this module is RateSmart [1]] |
Quad stereo 2 to 1 mixer. There are four channels each having two stereo inputs with level control. Inputs and outputs can be muted independently. |
Quad chainable stereo 1 to 1 mixer version 1 polyphonic [this module is RateSmart [1]] |
Quad chainable stereo 1 to 1 mixer. There are four channels each having a stereo input with level control and a stereo chain input (which has no level control or mute). Inputs and outputs can be muted independently. |
Quad panner version 1 polyphonic [this module is RateSmart [1]] |
Quad panner Four panners in one module. The panning works with a square root panning law. |
Sample and hold version 1 polyphonic [this module is RateSmart [1]] |
A Sample And Hold module. The output will hold the last input value seen when the trig input goes from zero, or below zero, to above zero. When trig is not connected the module is transparent. The trig input supports the NOT_CONNECTED signal. |
Track and hold version 1 polyphonic [this module is RateSmart [1]] |
A Track and Hold module. The output will follow the input when the trig input is zero or below zero, and it will freeze the output when it goes above zero. When the trig input is not connected the module is transparent. The trig input supports the NOT_CONNECTED signal. |
2 to 2 switch version 1 polyphonic [this module is RateSmart [1]] |
A switch module with two inputs and two outputs. (in1, in2) will be switched to (out1, out2) when the ctrl value is zero or below zero. When the ctrl value is above zero it will switch (in1, in2) to (out2, out1) instead (i.e. the routing is swapped). |
Multi Sample and hold version 1 polyphonic [this module is RateSmart [1]] |
A Multi Sample And Hold module. The outputs will hold the last input values seen when the trig input goes from zero, or below zero, to above zero. When the trig input is not connected the module is transparent. The trig input supports the NOT_CONNECTED signal. |
Crossfading multiplexer version 1 polyphonic [this module is RateSmart [1]] |
A crossfading multiplexer The control input selects which input will be passed on to the output. With the x-fade control turned up there cn be a varying amount of overlap. |
Crossfading de-multiplexer version 1 polyphonic [this module is RateSmart [1]] |
A crossfading or holding de-multiplexer The control input selects to what output the input signal will be sent. With the x-fade control the amount of overlap can be set and in hold mode there is no cross fading but outputs will hold their values when they get deselected. |
digitally controlled multiplexer version 1 polyphonic [this module is RateSmart [1]] |
A digitally controlled multiplexer |
digitally controlled de-multiplexer version 1 polyphonic [this module is RateSmart [1]] |
A digitally controlled de-multiplexer In Norm(al) mode a deselected output will go to zero, in hold mode a deselected output will keep the last value it had. |
Serial in to parallel out shifter version 1 polyphonic [this module is RateSmart [1]] |
A serial in to parallel out shift register The clk input clocks in an input signal shifting older ones to the right, untill they fall out trought the carry output. The clkout signal takes the accumulated shifted values and will send them to the outputs. |
Value synchronizer version 1 polyphonic [this module is RateSmart [1]] |
A Value Sync module The module gets triggered by an incoming positive edge on the pulse input, which it will then hold internally along with the value that was present at that time on the value input. When a subsequent positive edge appears on the sync input the Q output will be set active and the captured input value will be passed to the output. Once the pulse got processed the ouput and the internal state are both being cleared when a negative edge is seen on the sync input. The incoming pulse is guaranteed to never get lost. This modue can be used to sync up a pulse event appearing at a random time to a syncing clock signal while capturing a value that was present at that time and passing it on on a sync only. This module acts a bit like a sample and hold in that it captures a value on a trigger, but it will delay passing on that value until a sync signal is seen. |
Copy and shuffle version 1 polyphonic [this module is RateSmart [1]] |
A copy module. The module has a copy and two random modes. In copy mode every input is copied to the output below it and the random modes every input is copied to some randomly selected output below. A trig pulse will set a new random coupling, this is effective only when in random mode.. To set up a localised determined routing it can be handy to use two of these modules (set to copy mode) that are nearby and then manually make some routing - the routing will be in one place on the screen then. In random poly mode the random routings will differ over the voices, in random mono mode the routing will be the same in all voices. All blue (routable) inputs support tthe special NOT_CONNECTED status, the shuffle pin does not. |
Level scaler version 1 polyphonic [this module is RateSmart [1]] |
A scaler module. Each input will be multiplied by the set gain and then the set offset will be added to it to obtain the output value. There is a knob tracking control which can be set into off, lock or mirror mode. In off mode both knobs move independently, in lock mode they will move in tandem and in mirror mode when one goes up the other will go down. The mute button will set all outputs to zero when active. |
Proportional scaler version 1 polyphonic [this module is RateSmart [1]] |
A proportional scaler. The scaling factor p and the offset (1-p) are both set with the same control. When the control is 1 the output value will always be 1, regardless of the input value. When it is set to 0 the output value follows input value. Set to 0.5, for an input signal going from zero to 1 the output would go from 0.5 to 1. The formula used is : out = in * ( 1 - p) + p The value of p can be modulated between zero and 1 trough the modulation input and the modulation amount control. Effectively this sets a lower limit for the output signal, and the input range is distributed proportionally over the remaining (reduced) output space. |
RangeConverter module [inrange] -> [low,high] version 1 polyphonic [this module is RateSmart [1]] |
A range conversion module Input values in a range input range ( [0..1], [-1..1], [0..4], [-4..4]) will map to an output range of [lowvalue,highvalue] - low can be larger than high to get a signal inversion. The inverted outputs give the same range as the regular outputs, but going from high to low where the regular output would go from low to high. |
RangeConverter module [inrange] -> [low,high] version 1 polyphonic [this module is RateSmart [1]] |
A range conversion module Input values in a range input range ( [0..1], [-1..1], [0..4], [-4..4]) will map to an output range of [lowvalue,highvalue] - low can be larger than high to get a signal inversion. The inverted outputs give the same range as the regular outputs, but going from high to low where the regular output would go from low to high. |
Modulatiion depth controller version 1 polyphonic [this module is RateSmart [1]] |
A modulation cotroller The modulation signal goes to the in input, and the amount of modulation is to be controlled with the mod input. The internal signals in this module are always assumed to be unipolar, but the in and outgoing signals can be rescaled if needed to different ranges. The internal computation used is: out = mod * ( in - 1) + 1 , so that when mod = 0 the output will 1 and when mod = 1the ouput will be a copy of the in signal. |
LevelConverter module [inrange] -> [outrange] version 1 polyphonic [this module is RateSmart [1]] |
A Level conversion module Input values in a range input range ( [0..1], [-1..1], [0..4], [-4..4]) will map to an output range of ditto [outputrange] |
dynamic level type switcher version 1 polyphonic [this module is RateSmart [1]] |
Dynamic level type switcher Select two different output types and switch between the types with the select input. A low vlue selects the left type on the left output and the right type on the right one. A high select input toggles that. The rate of type change can be controlled with the slew contol. |
Fourfold mixing level scaler version 1 polyphonic [this module is RateSmart [1]] |
Fourfold mixing level scaler Each input will be multiplied by it's set gain and then it's offset will be added to obtain the output value. There is a knob tracking control which can be set into off, lock or mirror mode. In off mode both knobs move independently, in lock mode they will move in tandem and in mirror mode when one goes up the other will go down. The mute button will set the output to zero when active. The four scalers are summed and sent to the sum output. The summed output level can be trimmed with a knob and a chain input is being mixed in. The sum output can be muted independently of the input mutes. |
Change detector version 1 polyphonic [this module is RateSmart [1]] |
A change detector This module detects it's input being changed. When a change occurs a pulse is being output on the trig output and the amount of change is being sent to the out output. The norm / abs selector determines whether the value (norm mode) or the absolute value (abs mode) of the change is put onto the output. |
Scaled clipper version 1 polyphonic [this module is RateSmart [1]] |
A scaled clipper module. The input values are converted according to the input type setting, and assumed to be in the range [-1.0,1.0] then. These signals are then multipled by the current level setting and clipped to a range [-1.0,1.0]. The result of that is then scaled to the wanted range by applying the out type selection. The idea is that when a triangle wave is being processed the result will be a trapezium shaped wave, but it can be applied to all wave forms to get a signal that spends more time at the extreme values. When the set level gets negative (by setting the level modulation to a negative value) the resulting output wave will be inverted. |
Rate converter version 1 polyphonic |
A rate conversion module. This module is controlled by it's slave input, which is suppoesed to be connected to a MidiClockIn or a Tapper module. The slave output will just pass this signal on. The rate multiplier controls the scaling applied to the control output, it will make controlled LFOs go faster or slower by some factor. The control output can be used some different kind of controls. It can either control an LFO which is set to fast 0.254, medium 2:05 or to BPM mode; a Delay set to 3s or 5 min, or it can control the ClockGen module's BPM value. The slave in and output can be used to chain up several MidiClockIn, RateConverter or Tapper modules, the first one in the chain will be the master controlling all other Tappers. Other tappers can be set to different control modes to get LFOs and delays synced up properly at different rates. With the blue input next to the rate multiplier knob the rate can be modulated, it's value will be multiplied by the knob set value. Note that the internal values for the knob range from -23 for the / 24 setting trough 0 for the X 1 setting to 24 for the X 24 setting - so for effective modulation set the rate to X 24. Only whole valued rates will ever be created, or a reciprocal of while values. The modulation input is internally clipped to a range [-1,1]. A values module would be suitable to control it. When unconnected the assumed modulation value is 1. |
Rotator version 1 polyphonic [this module is RateSmart [1]] |
This module rotates it's input vector (in1,in2) over an angle 2 * PI * angle to calculate an output vector (ou1,out2). This can be used to make a rotating stereo image for instance, or with an input vector of constants, say (0,1) and the angle driven by a saw signal it will make a sine and a cosine on the outputs (quadrature signal). I've added a mode selector, in the sin/cos mode the mode operates as before while in rhee sin/-sin the left input is multipled by 1 + sin( 2 * PI * angle) and the right input by 1 - sin( 2 * PI * angle) The s/c outputs in the sin/cos mode output sin( 2 * PI * angle) and cos( 2 * PI * angle) and in sin/-sin mode that would be sin( 2 * PI * angle) and -sin( 2 * PI * angle). These outputs can be scaled by the sctype selector to be normal, inverted, positive only, etc. In positive only mode they are suitable to modulate the delay length of a delay module, this is meant for creating leslie type effects. |
Simple rotator version 1 polyphonic [this module is RateSmart [1]] |
This module rotates it's input vector (in1,in2) over an angle 2 * PI * angle to calculate an output vector (ou1,out2). This can be used to make a rotating stereo image for instance, or with an input vector of constants, say (0,1) and the angle driven by a saw signal it will make a sine and a cosine on the outputs (quadrature signal). |
Matrix multiplier version 1 polyphonic [this module is RateSmart [1]] |
Matrix multiplier out1 = a * in1 + b * in2 out2 = c * in1 + d * in2 Unconnected value for (in1,in2,a,b,c,d) is (0,0,1,0,0,1) |
Rectifier version 1 polyphonic [this module is RateSmart [1]] |
This module rectifies it's input signal, either half wave or full wave. In half wave mode only the positive part of the input signal goes through, for the negative part the output will be zero. In full wave mode the output signal will be the absolute value of the input signal. The inv. output has the inverse signal from the regular output, i.e. it will be negative only. There also is a transparent mode, in this case the output will follow the input and the inv. output will be the inverse of the input. |
Hard clipping version 1 polyphonic [this module is RateSmart [1]] |
A hard clipping module The low and high clipping values can be set independently, both from -4 to +4. A gain from -4 to +4 can be applied to the clipped signal. |
Audio to control rate converter version 1 polyphonic |
Audio to control rate converter. This can be used to prevent portions of a patch to go 'red' (blue, or control rate, modules use less CPU than red, or audio rate, modules). |
Control rate to audio converter version 1 polyphonic |
Control rate to audio rrate conveter. This module works with linear interpolation between the slow control rate samples to get a smoother audio rate signal. This can be used to reduce artifacts when controlling an audio rate module with a control rate signal. |
slew rate limiter version 1 polyphonic |
A slew rate limiter, or control rate low pass filter. This module can be used to smooth jumps in a control signal. In single mode the up control controls both the upwards and the downwards slew, in dual mode the down control comes in to make the down slope differ from the up slope. Modulation is multiplied by the knob value, unconnected modulation inputs are set to a value if 1.0 |
A Chebyshev polynomial generator, frequency multiplier version 1 polyphonic [this module is RateSmart [1]] |
A Chebyshev polynomial generator The first output has an order two polynomial, for every subsequent output the order is on higher. An order zero Chebyshev polynomial would be a constant 1, and order one would just be a copy of the input signal. Similar tricks can be used for triangular and saw shaped waves, and those were implemeted as well. This module can be used for frequency multiplication, the type of the input signal (sine, tri or saw) has to be set up correctly for that. In general the phase of the ouput signals will not be the same as the input signal .. as in they will not go trough zero at the same time. |
Square wave rate doubler version 1 polyphonic |
Square wave rate multiplier. The rate of the incoming square is being doubled, the pulse / pause information is lost as each edge is translated into a pulse. This module can be cascaded to get repeated rate doubling. When the pulses do not 'fit' after rate multiplication eventually a counter will overflow. This will result in an endless stream of pulses with a glitch once every 4 billion pulses or so. |
Saw Mill version 1 polyphonic [this module is RateSmart [1]] |
A Saw Mill This module performs frequency multiplication on a saw wave. The multiplication factor can be non-integer, but the saw wave must have an amplitude range [-1.1] for this to work. Some input output scaling for various standard ranges is present. The calculation used is : out := FloatMod( M * ( in + 1), 2) - 1; where M, the multiplication factor, can be set and modulated. For non saw inputs some other 'interesting stuff' will happen. |
AM RM modulator version 1 polyphonic [this module is RateSmart [1]] |
An AM / RM modulator The in signal is multiplied by a scaled version of the mod input and then sent to the output. Scaling is applied first on the level shifted mod signal, then the offset is being added. So the modulation depth is controlled by the mod knob, and an offset can be added so the modulation does not have to go down all the way to zero. The AM / RM control fades between Amplitude and Ring modulation (or balanced modulation) types. AM is multiplication by a positive only signal, and RM is multiplication by a bipolar signal. The mod input is first converted into a bipolar signal for the RM bit and then that signal is internally converted to an unipolar signal for the AM part. The FX mod controls can be used to fade between AM and RM. |
Wave wrapper, wave shaping version 1 polyphonic [this module is RateSmart [1]] |
A wave wrapping / folding module. When the input signal is larger than the high level it is reflected back, likewise when lower than low level it is folded back as well. For type I the output is normalized to produce a signal in the range [-1,1]. For type II the output is not normalized, and the output swing is determined directly by the set low and high mirror controls. For type III things work different a bit. This is my take at the smrl variation as found in the link from the previous section. The wrapping is as for type 2, except that the modulation is not used to change the mirrors and the folded signal is not sent to the output. What happens instead is that when the folder changes direction the modulation signal is being added to the current output signal. When the output signal goes over 1.0 it is reset to -1.0. Also the modulation works different in this case, the modulation input and knob are added for this mode instead of being multiplied. |
Wave wiper, wave shaping version 1 polyphonic [this module is RateSmart [1]] |
A wave wiper module This module was constructed after an idea by PHOBoS, you can find more about the original circuit trough the Wren web site. This module takes a top bit of in1 and a bottom bit of in2, glues these together and outputs that to out1. The split level is set by the break input. Out2 does the inverse from out1. |
Wavolver version 1 polyphonic [this module is RateSmart [1]] |
A pulser module. After an idea from http://ijfritz.byethost4.com/sy_cir6.htm When the absolute value of the signal input is larger than the level at the shape input the the signal input is passed to the output, otherwise the output is zero. Both signal and shape output have a level and an offset control. When the output is zero the 'inact' output will go active. This can be used to activate a wave wrapper module for instance, to get a full implementation of the Ian Fritz idea. |
Signal shaper version 1 polyphonic [this module is RateSmart [1]] |
A signal shaper This module can transform a linear input signal into an envelope type output signal. |
Analog Xor version 1 polyphonic [this module is RateSmart [1]] |
Analog XOR After an idea by Ian Fritz, found at http://ijfritz.byethost4.com/sy_cir13_XOR.htm The output goes active when the sum of the input signals is between the set Threshold value and 0.5. The Threshold value can be modulated with a preset amount trough the T mod input. |
Data graph version 1 polyphonic [this module is RateSmart [1]] |
This is a lookup module, basically. The input value moves a cursor over the horizontal axis and the looked up graph height is then sent to the output. To use the module as a sequencer the ClockGen2 module can be used to control it's in (from the ClockGen2 saw output) it's quant (from the ClockGen2 quantisation output) and it's time divisions (from the bars output). Points can be added by double clicking (or with ctrl+click) in an empty area. The same action on an existing point will allow that point to be moved or removed - removal being a move to somewhere out of the graph area. The leftmost and rightmost points can not be removed, but can only be moved up or down. Although this module can be used at audio rates it is not being anti aliased, so drawn wave forms played as audio will give some serious aliasing. A right click on the graph area will popup a context menu allowing for some standard wave forms to be created, basic symmetry operations and save to and load from file. The view and lookup mode can be set as linear, splines, steps or dots. There is a chg (changed) output which will pulse whenever the output value changed. This is usefull mainly in the steps and dots mode, although when using the sync input all modes are usable. Sync when not connected leaves the module under full control of the in input. when sync is being connected and pulsed the output value and the chg (changed) output will be synced to the sync signal. The sync input is normal level logic (that is smaller than or equal to zero is low and greater than zero is high (that way it can be synced from, say, a sine LFO output (in bipolar mode))). The inv and rev inputs can inverse (play upside down) and / or reverse (play right to left) the playing mode. The rnd button changes all values, not their positions. Likwise the three rnd inputs change vertical positions only, the leftmost alters one at random, the moddle one alters 25% of the values amd the rightmost one does the same as the rnd button - it alters all. The amount of grid lines can be set with the up down buttons, the top one for vertical lines (x - horizontal divisions( time)) and the bottom one for horizontal lines (y - vertical divisions (value)). The horizontal divisions can also be controlled from the ClockGen2 module. The sync input supports the special NOT_CONNECTED status. |
A number sequence quantizer version 1 polyphonic [this module is RateSmart [1]] |
A number sequence quantizer. In the values box a number of comma separated values can be entered. The first and the last value are not being used to generate output values but they define the number range to be used. This range will be maped to an internal output range of 0 .. 1. Also the mumber of values is counted (minus 2 for the unused last and first values), and this value will be mapped to an internal input range of 0 .. 1. Now when the internal input value is 0 the first element of the value list (which is the second number in the list) will be selected, and when it is 1 the last element (which is the one but last value in the list), and for input values between 0 and 1 numbers between the first and last will be selected. The selected number will then be translated to an output value using the determined output scale. An example : say you enter 0, 0, 1, 3, 4 into the values box, so there are three values (0, 1, 3) and the range of values is 0 .. 4. The input mapping then is such that input values of 0 .. 1/3 will result in the first value of 0 to be selected, likewise 1/3 .. 2/3 select the value of 1 and 2/3 to 1 will select the last value 3. Now the selected values will be scaled too, such that the range 0 .. 4 is mapped to a range of 0 .. 1. So the selected value of 0 results in an output of 0/4, 1 yields 1/4 and 3 makes 3/4. The values 2 and 4 are not in the list so 2/4 and 4/4 will never be generated. Now all this scaling is internal scaling, and an input mapping is applied before and an output mapping is applied after (with the two signal type selectors). This may get a bit confusing, but usually you'll want the 'positive' signal type (which effectively does not do any pre or post scaling). This module can be used to select a number of pre selected values, for instance the SwanSong module has maze type modulation. Now you probably would not want to use all the possible maze types for the selection. For that control you could set the range from 0 to the number of maze types minus 1, and then between those values enter the indices of the ones you want to select from. So when you have maze types Sierpinsky (0, indices start at 0 always), Penta(1), Hepta(2) ans Squest(3) and you want to only use Penta(1) and Squest(3) enter a string of 0, 1, 3, 3. An input value of 0 .. 1/2 wil then select Penta and 1/2 .. 1 will select Squest. The minimum useful number count would be 3, which then would would always select the middle number and that number would be scale according to the range set by the first and last number. All unusable ranges will result in an unscaled output value of zero. All unparsable strings will result in an output value of zero. The list has to be a series of numbers (which can be fractional or negative as in 0.1, -0.33333, 2, 5.176) separated by commas. Any white space is for readability only and will be stripped before interpretation. The numbers between the first and last can be outside the range defined by the first and last. The last number may be lower than the first one, it will just invert the sequence effectively. The first and last numbers must differ though or otherwise a scaling can not be calculated (resulting in an output of 0 and the displayed selection value to be set to -1). So, it is possible to make this module generate arbitrary numbers, just enter the first value as zero and the last value as one. The inbetween numbers will then essentially be unscaled. |
A number sieve version 1 monophonic [this module is RateSmart [1]] |
A Xenakis like number sieve. I may be more like a generator, nomenclature. Wren's notation for basic modules is:
These can be combined using the following operators:
Parenthesis can be used to enforce an evaluation order, f.i. as in (([3,0]+4,0)*fibonacci)+prime to first evaluate the left +, then the * and the right + last. A simplified formula will be calculated when the the formula changes, or when the external period changes. The simplification does not use prime decomposition, it will compute a sequence and from that it will make a sequence of modules joined through union. The evaluate input will force reevaluation of the formula, this can be useful when a random module is present to obtain a new random sieve. Otherwise this module functions like the Values module, except that the start value will always be 0 (zero) and the end value is set by the external period. The difference (top) output will output differences between sieve sequence values, in case the last sequence value was selected it will be the value of the last minus the first element (this cyclic behaviour was not present in the original concept). Negative numbers can not be used in sieves, the random sieve's probability control is the only floating poin number being used. The simplified formula is displayed above the user supplied formula, or an error will be displayed when the user supplied formula could not be parsed. The currently selected sequence value is displayed right of the changed output. The changed output will go active when the ouput value was changed, the difference output may not have changed then. The regualar (bottom) output will be scaled such that the external period results in an internal output of 1, this can be changed then with the output type selector. The difference (top) output will be scaled such that the largest difference value present will result in an output value of 1, again this can be rescaled using the output type selector. For more information on the subject try googling for Xenakis sieve, or Xenakis sieve algorithm. It may find a 221 page paper by Dimitrios Exarchos (Iannis Xenakis and Sieve Theory), I've founde that to be a very useful text. The formal-ish parser definition is:
|
A number sieve version 1 monophonic [this module is RateSmart [1]] |
A Xenakis like number sieve. I may be more like a generator, nomenclature. Wren's notation for basic modules is:
These can be combined using the following operators:
Parenthesis can be used to enforce an evaluation order, f.i. as in (([3,0]+4,0)*fibonacci)+prime to first evaluate the left +, then the * and the right + last. A simplified formula will be calculated when the the formula changes, or when the external period changes. The simplification does not use prime decomposition, it will compute a sequence and from that it will make a sequence of modules joined through union. The evaluate input will force reevaluation of the formula, this can be useful when a random module is present to obtain a new random sieve. Otherwise this module functions like the Values module, except that the start value will always be 0 (zero) and the end value is set by the external period. The difference (top) output will output differences between sieve sequence values, in case the last sequence value was selected it will be the value of the last minus the first element (this cyclic behaviour was not present in the original concept). Negative numbers can not be used in sieves, the random sieve's probability control is the only floating poin number being used. The simplified formula is displayed above the user supplied formula, or an error will be displayed when the user supplied formula could not be parsed. The currently selected sequence value is displayed right of the changed output. The changed output will go active when the ouput value was changed, the difference output may not have changed then. The regualar (bottom) output will be scaled such that the external period results in an internal output of 1, this can be changed then with the output type selector. The difference (top) output will be scaled such that the largest difference value present will result in an output value of 1, again this can be rescaled using the output type selector. For more information on the subject try googling for Xenakis sieve, or Xenakis sieve algorithm. It may find a 221 page paper by Dimitrios Exarchos (Iannis Xenakis and Sieve Theory), I've founde that to be a very useful text. The formal-ish parser definition is:
|
A chladni controller version 1 polyphonic [this module is RateSmart [1]] |
A Chladni controller. This module is meant to control the frequency or FM input od an oscillator or a filter. It computes the function f = C * ( m + 2n) ^ p where C is the base frequency as shown in the frequency display. |
nop version 1 polyphonic [this module is RateSmart [1]] |
Noop, this module does nothing .. except it provides one sample (control or audio rate, as the module is rate smart) clock of input to output delay. It can be handy for routing signals at times. It has one usefule feature though, the input when not connected to anything holds the special value NOT_CONNECTED, which will be passed to the output. Several modules have special behaviour when their inputs are not connected, so when you pass them the NOT_CONNECTED value such inputs will be seen as unconnected. HAving a module that can output NOT_CONNECTED makes it possible to switch under patch control from connected to unconnected, by passing both a real connection and the output of the noop module (with unconnected input) to a switch. So the noop module doubles as a special NOT_CONNECTED generator. It is best BTW to only use this on inputs that detect the unconnected status - as the the NOT_CONNECTED signal actually is very big! The inputs support the special NOT_CONNECTED status. |
global state version 1 monophonic |
Globals Reflects the value of global settings, For now this is just the globally set LFO relative rate (r.rate). |
Probability graph version 1 polyphonic [this module is RateSmart [1]] |
A probablity graph With the graph tool a cumulative random distribution function (crf) can be set up - with a little twist. The distribution is being used by an internal uniform random generator (all values of 0.0 to 1.0 being equally probable), the looked up value will then have the distribution as laid out by the graph. This gives graphical control over how likely output values will be. On every trig (sync) input pulse a new value will be output and when the value changed a trigger out puslse is being generated as well. For the graph the leftmost point is fixed at the bottom left corner and the rightmost point hangs in the top right corner - external scalling can always be applied with a mixer or amplifier module. The twist is that the X and Y axis are being swapped from what woud be expected for a crf, so the uniform random is distributed along the X axis and the Y axis represents the output values. Output polarity can be set with the selector button ([-1,1], [-1,0] or [0,1] and the inversions thereof), the shape of the graph can be linear, splines, steps or dots. For conveniance the grid marks can be set to severla values. |
Easing curves version 1 polyphonic [this module is RateSmart [1]] |
Easing curves. The module implements the various Esing cirves as defined at https://github.com/warrenm/AHEasing . The pos input will make the cursor walk over the graph and the looked up curve value will be scaled by a connected gain (or by one when gain is unconnected) put on the out output. The inv output will hold 10 minus the out signal. The on the right hand side there is a sigin and a sigout connector, the sigin signal is passed to sigout multiplied by the out signal. Input signal types for gain and pos can be set with the triangle buttons. This module will also work as a wave shaper for audio signals - it is rate smart. |
Zero crossing frequency detector version 1 polyphonic |
Count zero crossings Counts zero crossings when the signal amplitude is over the set threshold value. The period output will be high when the input signal is high and low when that signal is low, a clipped version of the input value. The gate output goes high when the input signal level is over the threshold value. The note output has a control signal for the last note that was detected in the input signal. |
Scala quantizer version 1 polyphonic |
A Scala quantizer Connect the input of this module to a note generator (like a sequencer). Load a Scala keyboard mapping file and a Scala scale file. On the output there will then be the Scala mapping applied to the note value present on the input. For this to work as intended oscillator frequency should be set to 440 Hz, for filters likewise. |
Equal Division Quantizer version 1 polyphonic |
An Equal Divisions Quantizer An octave size can be set which will be divided into divisions equal divisions. An "octave" can be set which will be divided into the set number of divisions, all intervals thus created being equal in size. An "octave" of 2 is the usual octave, and 12 divisions will thus create the usual 12EDO, 12TET or chromatic scale. The input range can be trimmed down with the range controls, these are common for all four channels. |
Transpose or invert notes version 1 polyphonic |
A Transpose / Inversion module Transposition is calculated as : ( amt + in) mod modulo and Inversion as ( pivot - in ) mod modulo. The chain inputs are added to the calculated value. |
Transpose or invert notes version 1 polyphonic |
A transpose module Four separate transposition amounts can be set each having an activation input. The output will be the input note value transposed over the sum of the active transpositions. |
Euclidean scale generator version 1 polyphonic |
This module implements Euclidean Scales The steps selector sets the pattern length and the pattern selector selects one of the possible patterns for that amount of steps. The patterns can be altered dynamically with the pattern modulation input. |
Convert note to delay length version 1 polyphonic |
Convert note to delay length Converts note info like that coming from a sequencer or a quantizer to a value suitable to control the length of a delay line. |
Level quantizer version 1 polyphonic |
A quantizer module The mute control will set the output to zero when active. The input value will be quantized to the fractional value set by the notes control. Like when this is set to 1/1 half tone steps will be output. |
Level quantizer version 1 polyphonic |
A quantizer module The input value moves the output value between the fractions set by the lo and hi controls. The following values can be set :
When the lo value is higher than the hi value the range is traversed in reversal. The inv output works reversed from the out output. Whenever the ouput changes a changed (chg) output pulse will be generated. |
Level quantizer version 1 polyphonic |
A quantizer module There are 22 quantized outputs, each quantizing the input to fixed levels. The quantization levels are 1, 1/2, 1/3, 2/3 .. 7/8. Suggested usage is to couple some ot the outputs to a multiplexer which can then be used to select the currently wanted one. |
Note quantizer version 1 polyphonic |
A note quantizer module the input value is quantized to the nearest note selected by the the buttons, when no notes are selected the input is passed unchanged, and when a lower and a higher note are equidistant from the the input value the higher value prevails. This assumes a 12TET scaling with middle A having note number 69 (or middle E having 64, or middle C having 60). There is no maximum or minimum on the input signal. A scaling of 128 notes / unit is used. The range control attenuates (or inverts) the input signal. |
Note quantizer with presets version 1 polyphonic |
A note quantizer module the input value is quantized to the nearest note selected by the the buttons, when no notes are selected the input is passed unchanged, and when a lower and a higher note are equidistant from the the input value the higher value prevails. This assumes a 12TET scaling with middle A having note number 69 (or middle E having 64, or middle C having 60). There is no maximum or minimum on the input signal. A scaling of 128 notes / unit is used. The range control attenuates (or inverts) the input signal. Scales can be selected from a preset and the presets will be dynamically loaded from a file wren.scale that must be in the same folder as the Wren executable file. When this file does not exist Wren will create it. After that you can edit it with a text editor (like Notepad for instance) and Wren will not touch it anymore. A scale can be altered manually with the note buttons, but that may get you locked, as once when a custom scale is in effect the preset will not work anymore. You can use the enforce button to fix that, it will set the currently selected preset. The mudule show a scale name in case it happens to know the note combination, or Custom when it does not, or Transparent when no notes at all are selected - in this case the input passes unquantized to the output. A transposition can be applied to the selected scale with the transpose control. Note C4 is the 'neutral' base note (not leading to any changes). Transpositions are not reflected in the shown note pattern. Note: The inv2 output will follow the set scale, the inv2 output will not. Both are an invesion of the regular output and both play notes from the same octave as the regular output is in. When the transparent input is active the range scaled in summed with the chain input is passed on to out and the inversion outputs then both hold 1.0 - out. This will also happen when the scale input is set negative (but unequal to NOT_CONNECTED). The scale input supports the special NOT_CONNECTED status. |
Modulatable Note quantizer version 1 polyphonic |
A modulatable note quantizer module the input value is quantized to the nearest note selected by the the buttons. When no notes are selected the output stays unchanged. When a lower and a higher note are equidistant from the the input value the higher value prevails. This assumes a 12TET scaling with middle A having note number 69 (or middle E having 64, or middle C having 60). There is no maximum or minimum on the input signal. A scaling of 128 notes / unit is used. The range control attenuates (or inverts) the input signal. Each quantization step can be enabled or disabled by a modulation input, or by clicking on the note selector. |
Scale randomizer version 1 polyphonic Notes about polyphony: The greem scal randomization iput works on the first voice only. |
This module implements a scale randomizer. Each time the rnd input goes from inactive to active, or when the rnd button is clicked, a new random scale mapping will be computed. A scale will always have 12 notes per octave, and all octave mappings will be identical. Within an octave all the 12 notes will be randomly mapped to 12 (probably, but not guaranteed so, different) notes. |
Learning quantizer version 1 polyphonic |
A learning quantizer This quantizer will learn the notes to quantize to from it's learn input. It will remember the amount of notes as set by the history parameter. The results will be scaled to be within one octave (the span of an octave being set by the global octave span size) and the quantization will be set by the the global notes per octave setting. Input values will then be quantized to the nearest remembered quantizer step, leaving it's octave as is. The range to be used can be controlled with the range parameter (an attenuator on the in connector) History length and range can be modulated. |
Convert note into note and octave version 1 polyphonic |
Convert note into note and octave |
Combine note and octave version 1 polyphonic |
Combine note and octave into a single note This really is just an adder, but it is the inverse of the note splitter ... hence ... |
Find nearest value in history version 1 polyphonic |
Find nearest value in history This module will learn the values to find from it's learn input. It will remember the amount of values as set by the history parameter. The results will not be quantized. Input values will then be converted to the nearest remembered value. The range to be used can be controlled with the range parameter (an attenuator on the in connector) History length and range can be modulated. |
Inverter version 1 polyphonic [this module is RateSmart [1]] |
A multiple inverter module. Each output will be the inverse signal of the input above it. So when an input has a value of one it's corresponding output will have a value of -1. |
Adder / Mixer version 1 polyphonic [this module is RateSmart [1]] |
An adder module. The output will have the sum of all the input signals. An unconnected input will have a value of zero. The mute button will set the output to zero when active. |
Pos value Adder version 1 polyphonic [this module is RateSmart [1]] |
An absolute value adder module. The output will have the sum of all positive input signals. An unconnected input will have a value of zero, a negative valued input will be seen as a zero value as well. The mute button will set the output to zero when active. |
Multiplier / VCA / Ringmodulator version 1 polyphonic [this module is RateSmart [1]] |
A multiplier module. The output value is the product of all the input values. An unconnected input will have a value of 1. The mute button will set the output to zero when active. You can use this module as a ring modulator too by multiplying two signals. A ring modulator is just that, a multiplier. |
Pos value Multiplier version 1 polyphonic [this module is RateSmart [1]] |
A positive value multiplier module. The output value is the product of all the rectified input values. An unconnected input will have a value of 1 and a connected input with a negative value will pass a value of zero. The mute button will set the output to zero when active. |
Exponentiator version 1 polyphonic [this module is RateSmart [1]] |
An power 2 module. The output value is two to the power of the input value divided by two, so for an input range of -1 to 1 it outputs 1/4 to 1, with 1/2 inbetween as 2^0. This module is the inverse of the Log2 module. The mute button will set the output to zero when active. |
multiplyer array version 1 polyphonic [this module is RateSmart [1]] |
An array multiplier module. The output values are the product of the corresponding input value and the mult input. An unconnected input will have a value of 1. Or ring modulate up to eight inputs with one common carrier - ring modulation is just multiplication. |
eight multipliers version 1 polyphonic [this module is RateSmart [1]] |
Eight multipliers in one module. Each output is the product of the two associated inputs. Unconnected inputs are set to 1 internally. This module can be seen as a fourfold ring modulator as well. |
Amplifier version 1 polyphonic [this module is RateSmart [1]] |
An amplifier module. Each output will be have the value of the corresponding input multiplied by the value set by the knob. Unconnected inputs will have a value of zero. The mute button will set all outputs to zero when active. |
Minimum and Maximum of two signals version 1 polyphonic [this module is RateSmart [1]] |
This module determines the momentary minimum and maximum of it's two inputs. When in1 > in2 the max output will be in1 and the min output will be in2, and this will reverse when in2 < in1. |
Min, Max or Mix of two signals version 1 polyphonic [this module is RateSmart [1]] |
This module determines the momentary minimum, maximum or mix of it's two inputs. When both inputs are negative the result is the minimum of the wo inputs, when both are positive the output gets the maximum of the two values. When the signs are oposite the output gets the sum of the inputs. |
Analog AND and OR version 1 polyphonic [this module is RateSmart [1]] |
Analog AND and OR The AND (A) output (leftmost) will hold the minimum value of all inputs, or 1.0 when no inputs are connected. The OR (O) output (rightmost) will hold the maximum value of all inputs, or -1.0 when no inputs are connected. When more than one input is connected the module behaves as a multi input MINimum and MAXimum finction. All inputs support the special NOT_CONNECTED status. |
Median of last n samples version 1 polyphonic [this module is RateSmart [1]] |
On every trigger the current input value is sampled and added to the bin, where the bin size can be set by the bin size control. When the new value is added a median value and an average value is calculated over all values that are in the bin, and that value is set as the output value. Note that for even bin sizes the median is calculated as the average of the two mid values. A lowest and highest value are available too, a binary or ternary sorter can be constructed that way, for arpeggios for instance. NOTE: Added 'lowest' and 'highest' value outputs to Median module. Also allowing now for even valued settings for the bin size - a binary or trinary sorter can be made this way. Note however that an even setting for the bin size results in the median being the average of the middle two values (after sorting) and thus that this needs not be a value that was actually present in the input stream. The lowest and highest values will always be values that were present in the input. |
Reciprocal 1/x version 1 polyphonic [this module is RateSmart [1]] |
Calculates 1 / X When X is zero the ouput is set to zero, otherwise the output is set as 1 / X. The result however is clipped to a range -1000 to +1000. |
Divide x/y version 1 polyphonic [this module is RateSmart [1]] |
Calculates X / Y When Y is zero the ouput is set to X, otherwise the output is set as X / Y. The result however is clipped to a range-1000 to +1000. |
Ratio, multiplier / divider version 1 polyphonic [this module is RateSmart [1]] |
Ratio This module multiplies it's input signals by a selectable ratio. The multiplier control sets the numerator, the divider control sets the denominator. The numerator can be zero or negative, the denominator must be greater than zero. The mute control will set the output to zero when active. |
Constant version 1 polyphonic [this module is RateSmart [1]] |
A constant module, the ouput will have the value set by the knob. available modes are :
The mute button will set the output to zero when active, it does however not work in the note mode. The add input is added to the output value. |
An arbitrary value module version 1 polyphonic [this module is RateSmart [1]] |
Arbitrary value Use CTRL+RIGHT-CLICK to enter edit mode, type a value there (which may use a modifying suffix), the entered value will be multiplied by the mult input and added to the add input and the result of that will be on the output connector. An unconnected mult input has a value of one. |
A selectable constant version 1 polyphonic [this module is RateSmart [1]] |
Select a constant value. Some more or less often used mathematical constants. The add input is added to the output value. |
A selectable function of x version 1 polyphonic [this module is RateSmart [1]] |
Calculates a selectable function of X Invalid X values will lead to an unchanged output value, otherwise the function is being calculated with the result being clipped to the interval -1000 to +1000 |
A selectable function of x and y version 1 polyphonic [this module is RateSmart [1]] |
Calculates a selectable function of X and Y. Invalid X,Y value combinations will lead to an unchanged output value, otherwise the function is being calculated with the result being clipped to the interval -1000 to +1000 |
RMS calculator version 1 polyphonic [this module is RateSmart [1]] |
RMS Calculator. This module calculates the RMS value of it's input value. The averaging time can be set with the time control. |
Rectangular to Polar version 1 polyphonic [this module is RateSmart [1]] |
This module converts a point (X,Y) in rectangular coordinates to a point (A,D) in polar coordinates, where A is the angle [0,2.Pi> and D is the distance, or radius. |
Polar to rectangular version 1 polyphonic [this module is RateSmart [1]] |
This module converts a point (A,D) in polar coordinates to a point (X,Y) in ectangular coordinates, where A is the angle and D is the distance, or radius. |
out = RangeMap(sig,min,max,0,1) version 1 polyphonic [this module is RateSmart [1]] |
MinMaxRange that is: out <- RangeMap( sig, min, max, 0.0, 1.0) when (max - min) = 0 the output is 0. This can be used to scale a value sig into the range [0,1] when you have a minimum value and a maximum available value for sig. |
8 constants version 1 polyphonic [this module is RateSmart [1]] |
8 settable constant values with mute and multiplier, the sum output gets the sum of the individual outputs (without mute being applied). The only difference between this and a mixer is that unused inputs default to 1.0 instead of 0.0. |
16 constants version 1 polyphonic [this module is RateSmart [1]] |
16 settable constant values with mute and multiplier, the sum output gets the sum of the individual outputs (without mute being applied). The only difference between this and a mixer is that unused inputs default to 1.0 instead of 0.0. |
Exponentiator version 1 polyphonic [this module is RateSmart [1]] |
A base 2 logarithm module. First the absolute value of the input is taken, when it is >= 1/8 the base 2 logarithm is being calculated and then 1.0 is being added, when the absolute input value <= 1/8 the output value is -2.0. Thus an input range [1/4 .. 1] results in an output range [-1 .. 1], it is the inverse of the Power2 functionality (with some constraints). The mute button will set the output to zero when active. |
logic NOT version 1 polyphonic [this module is RateSmart [1]] |
A logic NOT module Logic input values are said to be false when the value is zero or lower. When the value is greater than zero it is said to be true. Logic output values are -1 for a false result and 1 for a true result. For each input with a false value the corresponding output value will be true, and inputs with a true value result in the output to be set false. |
logic NOT version 1 polyphonic [this module is RateSmart [1]] |
A high-logic NOT module Logic input values are said to be false when the value is 0.5 or lower. When the value is greater than 0.5 it is said to be true. Logic output values are -1 for a false result and 1 for a true result. For each input with a false value the corresponding output value will be true, and inputs with a true value result in the output to be set false. |
Logic functions version 1 polyphonic [this module is RateSmart [1]] |
A logic AND. NAND, OR, NOR, XOR, XNOR, ONE or NONE gate module. The AND. NAND, OR, NOR, XOR and XNOR gates have been generalized to operate on multiple bits, this works by quantizing the input values into a selectable number of bits (1 bit gives the old behaviour) and then performing the logical operation on the resulting bit vector. The XOR and XNOR ports operate like cascaded ports, which makes them behave like and odd or even parity generator respectivly, the output being active when an odd number (or an even number) of inputs are active. The ONE port activates it's output when precisely one input is active, the NONE port is the same with an inverter added at it's output. These two port types do not generalize to bit vectors. When the bit size is set different from one the input signals are AD converted to the set number of bits, after that the logic function is applied and then the signal is converted back to an analog signal. When for instance only one input is being used and the module is set to 'OR' mode and the input value is in the range [ 0, 1] this will result in a quantizer function being performed (with four possible output values in two bit mode, eight in three bit mode, etc., and of course in one bit mode it will have two possible output values). For the 1 bit mode the following function table applies:
|
Logic functions version 1 polyphonic [this module is RateSmart [1]] |
A high-logic AND. NAND, OR, NOR, XOR, XNOR, ONE or NONE gate module. A high-logic signal is considered on when it's analog value is over 0.5, otherwise it is off. The AND. NAND, OR, NOR, XOR and XNOR gates have been generalized to operate on multiple bits, this works by quantizing the input values into a selectable number of bits (1 bit gives the old behaviour) and then performing the logical operation on the resulting bit vector. The XOR and XNOR ports operate like cascaded ports, which makes them behave like and odd or even parity generator respectivly, the output being active when an odd number (or an even number) of inputs are active. The ONE port activates it's output when precisely one input is active, the NONE port is the same with an inverter added at it's output. These two port types do not generalize to bit vectors. When the bit size is set different from one the input signals are AD converted to the set number of bits, after that the logic function is applied and then the signal is converted back to an analog signal. When for instance only one input is being used and the module is set to 'OR' mode and the input value is in the range [ 0, 1] this will result in a quantizer function being performed (with four possible output values in two bit mode, eight in three bit mode, etc., and of course in one bit mode it will have two possible output values). For the 1 bit mode the following function table applies:
|
Logic functions version 1 polyphonic [this module is RateSmart [1]] |
A fourfold logic AND. NAND, OR, NOR, XOR, XNOR, ONE or NONE gate module. The XOR and XNOR ports operate like cascaded ports, which makes them behave like and odd or even parity generator respectivly, the output being active when an odd number (or an even number) of inputs are active. The ONE port activates it's output when precisely one input is active, the NONE port is the same with an inverter added at it's output. These two port types do not generalize to bit vectors. The following function table applies:
|
Frequency divider version 1 polyphonic [this module is RateSmart [1]] |
A logic divider module. Logic input values are said to be FALSE when the value is zero or lower. When the value is greater than zero it is said to be TRUE. Logic output values are -1 for a FALSE result and 1 for a TRUE result. This module divides down the rate of it's input signal. The number of FALSE / TRUE and TRUE / FALSE input changes will be divided down by the amount set by the knob. This means that when the input frequency is 440 Hz and the knob is set to 2 the output frequency will be 220 Hz, and no matter what shape the input wave had, the output will be a square wave. |
Fixed frequency divider version 1 polyphonic [this module is RateSmart [1]] |
A fixed divider module. The module has a series of outputs with fixed divison rates. After reset all the outputs will be off, to be toggled each time the number of input clock periods matches the division count for that output. The ouput will stay high for one clock period then. |
Fixed fractional frequency divider version 1 polyphonic [this module is RateSmart [1]] |
A fixed divider module. The module has a series of outputs with fixed divison rates. After reset all the outputs will be off, to be toggled each time the number of input clock periods matches the division count for that output. The ouput will stay high for one clock period then. |
Fixed prime divider version 1 polyphonic [this module is RateSmart [1]] |
A fixed divider module. The module has a series of outputs with fixed divison rates. After reset all the outputs will be off, to be toggled each time the number of input clock periods matches the division count for that output. The ouput will stay high for one clock period then. |
Frequency divider version 1 polyphonic [this module is RateSmart [1]] |
A random logic divider module. Logic input values are said to be FALSE when the value is zero or lower. When the value is greater than zero it is said to be TRUE. Logic output values are -1 for a FALSE result and 1 for a TRUE result. This module divides down the rate of it's input signal. The number of FALSE / TRUE input changes will randomly be divided down by the amount set by the knob. |
D type flip flop version 1 polyphonic [this module is RateSmart [1]] |
A D type flip flop The D value is copied to the Q output when the clk input goes from a zero, or negative, value to a positive value. The not Q output is the logic inverse of the Q output. |
RS type flip flop version 1 polyphonic [this module is RateSmart [1]] |
An RS type flip flop A rising input edge on the S input (signal goes from zero or negative to positive) will set the flip flop. A rising edge on the R input will clear the flip flop When the flip flop is set it's Q output is 1 and it's not Q output is zero, the output state is reversed when the flip flop is cleared. |
Pulse Sync version 1 polyphonic [this module is RateSmart [1]] |
A Pulse Sync module The module gets triggered by an incoming positive edge on the pulse input, which it will then hold internally. When a subsequent positive edge appears on the sync input the output will be set active. Once the pulse got processed the ouput and the internal state are both being cleared when a negative edge is seen on the sync input. The incoming pulse is guaranteed to never get lost. This modue can be used to sync up a pulse event appearing at a random time to a syncing clock signal. |
Up down counter version 1 polyphonic [this module is RateSmart [1]] |
A logic counter module. The module will either count up or down depending on the dir input. For an unconnected dir input it will count up. There are two modes, binary and sequentially. In sequential mode it wil simply count 1, 2, 3, etc. In binary multiple outputs can be active at the same time [], [1], [2], [1,2], [3], etc. The reset input will reset the counter to 1 or 16 or [] or[all] - depending on mode and direction. A mode switch will reset the counter. |
Analog to Digital Converter version 1 polyphonic [this module is RateSmart [1]] |
Analog to Digital Converter. The highest numbered input is the most significant bit and it will go active when the input value is greater or equal to 0.5. This module will also handle negative input values, for correct results it should be used for input signals in a range [0.5,05> only then. For positive input signals the valis range is [0.0,1.0>. The [x,y> notation indicates a half open interval, meaning that values <y are acceptabele, but the value y itself is out of range, x however is a valid value to be used. |
Digital to Analog Converter version 1 polyphonic [this module is RateSmart [1]] |
Digital to Analog Converter. The highest numbered bit is the most significant bit, and it will add 0.5 to the output when active. |
Phase detector with low pass version 1 polyphonic [this module is RateSmart [1]] |
Phase detector, a building block for a digital Phase Locked Loop. This is modeled after the CMOS CD4046 type I and type II phase comparator, and it adds a filter as external three state outputs are not possible. The out output is the filtered phase detection output. The output will go up when the frequency on the sig in input is higher than the frequency on the cmp in input, the other way around it will go down and when the frequencies are equal it will stay where it is. To use this module you should connect an oscillator's FM input to the output of this module, and then connect the Oscillator's output to the cmp in input of this module. The type I comparator is an XOR function, the type II comparator is a larger state machine that actually implements a 'phase frequency' comparator. Type III used analog multiplication of the input signals (a double balanced mixer). |
Compare two inputs for < = > version 1 polyphonic [this module is RateSmart [1]] |
This module compares it's two input values, the < output going active when in1 < in2, etc. The range for equality can be be set with the eq. range control (in dB). |
Logic selector version 1 polyphonic [this module is RateSmart [1]] |
A logic selection module. When the sel input is inactive input A is sent to output A and input B to output B. When the sel input is active input A goes to output B and input B tou output A. |
Programmable frequency divider version 1 polyphonic [this module is RateSmart [1]] |
A programmable clock divider. A low and a high division rate can be set as well as a step value. When the select input is zero the divider will operate using the low count value, getting the select input up will add the set step value repeatedly to the used count until (for a modulation input of 1) the high count is reached. |
Stacked window comparator version 1 polyphonic [this module is RateSmart [1]] |
A stacked window comparator. Eight levels can be set, where each level is internally added to the previous to create a set of ranges. When the input signal is within one of the ranges it's output will go active. The input level is internally multiplied by four before comparisons take place, and additionally it can be further scaled with the input level control (which can add an additional multiplication by a factor of four). The level modulation input value is multiplied with the input level as set by the knob. Each individual output can be routed to one of three output buses. The 'rnd' button will randomize the positions of the comparator level knobs, the 'clr' button sets those pots all to zero. Note: the individula outputs are high logic ( 0.0 for false instead of -1.0, and still 1.0 for true) |
Pulse delay version 1 polyphonic [this module is RateSmart [1]] |
A logic pulse delay module. This module can operate in three modes: Pulse stretch mode : an incoming pulse will be stretched to the set delay time, or when it is longer than tat it will be truncated. That is the ouput pulse start when the input pulse starts, but it ends when the set time is over, no matter what the input did. This makes changes to the positive part of the incoming signal only. Pulse delay mode: an incoming pulse will be delayed by the the set time. This will move the entire pulse in time, so it's length will not be changed. This will shift both the positive and negative parts of the incoming signal. osc mode : when the input is active pulses will be generated continuesly at the set pulse duration rate and whe nthe input is inactive thou output will be off. The delay time can be modulated from the delay time modulation input, the amount of modulation can be set with the knob. This module has the same ranges as are used for envelopes, except that the module can be set to run at audio rate. When running at audio rate the set time will be eight times shorter as compared to running at control rate. In Delay mode only one pulse can be handled properly, meaning the module cycle has to be finished before a new one gets handled properly. When you need to delay a pulse train an audio delay module should be used. In Stretch mode, when a next pulse comes in before the current one is finished it will be ignored. The output indicator shows the internal logic output state, this can be modified with the output type control to determine thaa actual values being sent out. The other indicator shows module activity, e.g. when it is actively stretching, delaying or oscillating. |
Pulse skipper version 1 polyphonic [this module is RateSmart [1]] |
A pulse skipping module. The current level of the input is compared to the current compare (cp) level, when it is larger incoming pulses will be passed on to the output and otherwise they will be skipped. Only complete pulses will be passed on, so the ouput will always be in sync with the trig signal. The levels are computed as the input value times the modulation added to the preset level as shown in the display. The res iput when going active sets the ouput off. The trig input when going off sets the output to off as well. The output signal type is selectable. |
Rungler version 1 polyphonic [this module is RateSmart [1]] |
A rungler module. This module was modeled after an idea by Rob Hordijk, he used this circuit in his Benjolin device. The length of the shift register can be set from 3 to 64 (the original uses 8) and the number of taps can be set from 1 to 8 (the original uses 3). The idea is to clock the module from an oscillator and to provide data from another oscillator, the output of the rungler is then fed back to the frequency control input of the data oscillator. This way short varying patterns will be generated. The shift register length matters not much, but it should be set larger than the number of taps used. The number of taps determines the number of distinct levels present in the output signal. For more information about this go to http://hordijk-synths.info |
Logic shift register version 1 polyphonic [this module is RateSmart [1]] |
A cascadable logic shift register The register is 32 bits long, and it can be chained using cil (carry in low), cih (carry in high), col (carry out low) and coh (carry out high). Input from the in input will be XORed with either the cil or cih signal before being added at either the left or the right side of the internal shift register. A shift is being made on each upgoing edge of the trig input. Shifting can be to the right or to the left depending on the rev (reverse) input. The unreversed direction is from left to right (that is 0 to 1 to 3 etc.). The indicator bar shows the lowest bit on the left side (same direction as the outputs). When the free / clocked selector is in the free position reset is immediate, otherwise it will be synced to the trig input. With the T/G mode selector the outputs can be switched between triggered and gate mode, where gate mode makes overlapping pulses and trigger mode ands the outputs with the trig signal. The carry outputs are always gated. |
Linear feedback shift register version 1 polyphonic [this module is RateSmart [1]] |
A 32 bit linear-feedback shift register. Input from the in input will be XORed with the XOR of the active taps before being added at either the left or the right side of the internal shift register. A shift is being made on each upgoing edge of the trig input. Shifting can be to the right or to the left depending on the rev (reverse) input. The unreversed direction is from left to right (that is 0 to 1 to 3 etc.). The indicator bar shows the lowest bit on the left side (same direction as the outputs). When the free / clocked selector is in the free position reset is immediate, otherwise it will be synced to the trig input. With the T/G mode selector the output can be switched between triggered and gate mode, where gate mode makes overlapping pulses and trigger mode ands the output with the trig signal. |
Binary stack version 1 polyphonic [this module is RateSmart [1]] |
A binary stack module 16 bit wide binary values can be pushed and popped There is an initial entry on the stack with a value of zero for all bits. |
Quad Bernoulli gate version 1 polyphonic [this module is RateSmart [1]] |
Branches, a quadruple Bernoulli gate After a module made by Mutable Instruments When the input changes it's value is routed to either the top or down output. When p is set to zero it will always be the top one and when p is one it will be the bottom one. |
Euclidean Rhythm generator version 1 polyphonic [this module is RateSmart [1]] |
This module implements an Euclidean Rhythm player. The steps selector sets the pattern length and the pattern selector selects one of the possible patterns for that amount of steps. The patterns can be altered dynamically with the pattern modulation input. |
Random note sequencer version 1 polyphonic [this module is RateSmart [1]] |
A random notes sequencer. Will play a sequence of random notes with a set length, a set lowest note and a set highest note. The notes will be picked from a scale set by scale and base note controls. A low to high on the trig input will play the next note and a low to high on the random input will select a new random sequence. Scales can be user defied, at program startup a file wren.scale will bee loaded when present in the application directory. When such a file is not present the program will make a default one. The change inputs are sampled on a rising step input, so a change will occur when such an inpujt is active at the momenent the step input goes from low to high. |
Random value sequencer version 1 polyphonic [this module is RateSmart [1]] |
A random value sequencer. Will play a sequence of random values with a set length, a set lowest value and a set highest value. The base control can offset the selected values. A low to high on the trig input will play the next value and a low to high on the random input will select a new random sequence. The quantize function can be turned on or off, When it is turned on the random values will be quantized to note fractions as selected by the notes control. When it is off the raw internal values are used. the value from the chain input will just be added to the computed output, it will never be quantized. The slew function implements an exponential moving average filter which can be applied either pre- or post- quantizer. |
A Morse code generator version 1 polyphonic Notes about polyphony: The text is shared over all voices, the position in the text can differ per voice. [this module is RateSmart [1]] |
A Morse code generator. Input text is translated into an off pattern on the output connector at a speed determined by the incoming clock signal. The Reset input will make the sequence restart from the beginning. When the sequence ends it will repeat from the beginning. The blue output genrates note values 0 to 7 based on a primitive implementation of SolReSol. This module can use input from a file by typing : file:fillename or file:fillename regular-expression The last non-empty line of the file will be read (or an error message will be returned) and that line will be filtered with the optional regular expression. When the regular expression contains a group named 'result' that will be the matched bit from that last line. Example:
|
Sequencer sequencer version 1 polyphonic [this module is RateSmart [1]] |
A sequencer sequencer. This module makes it easier to sequence sequencers. It assumes the controlled sequencers to be set to a length of of 16, and it assumes all controls to be obtained through this module. You will then add as many sequencers as needed for the wanted step count.
To set up sequenced sequencing you use this module as a controller. Clock it from some source, and maybe use the direction input and or the reset input. Then for every sequencer connect the res trig and dir outs to the corresponding inputs of the first sequencer in a sequencer chain. Every next sequencer should be chained from the preceding one. The act ins of the sequencers go to successive outputs of this module. |
Gate sequencer version 1 polyphonic [this module is RateSmart [1]] |
A gate sequencer. Each step has three modes, it can be off (blank) it can be a trigger step (o) active for half a clock period or it can be in gate mode (O) staying active a full clock period. The rnd button will set a random pattern. The clr button will clear all steps. The res input is a synced reset, it will only reset when the signal is active on a low to high transition of the trigger input. The a-res input is an unsynced reset, it will always reset the module when the signal goes from low to high. |
Leaky gate sequencer version 1 polyphonic [this module is RateSmart [1]] |
A leaky gate sequencer. Each step has three modes, it can be off (blank) it can be a trigger step (o) active for half a clock period or it can be in gate mode (O) staying active a full clock period. The rnd button will set a random pattern. The clr button will clear all steps. The leak parameter controls hpw fast the sequencer will forget it's sequence. The set and res inputs can set or clear a sequencer step, and the rnd button and input will select a new random pattern. The res input is a synced reset, it will only reset when the signal is active on a low to high transition of the trigger input. The a-res input is an unsynced reset, it will always reset the module when the signal goes from low to high. |
16 steps sequencer version 1 polyphonic [this module is RateSmart [1]] |
A 16 step sequencer for values and for notes. It can be set to various signal types. A cross fade utility is implemented to smooth the signal from one step to the next, cross fading works on all four X outputs, the R outputs are not cross faded (Raw). Smoothing slope type can be set independently for up going and down going signals to eiher exponential, linear, logarithmic or s-shaped. This module can be used as a complex envelope generator when properly clocked. The four outputs are all offset by four steps each, so when output 1 is at step 5, output 2 is at step 9, output 3 at 13 and output 4 will be at step 1. The chain input is being used on all four outputs when the module is not active (as controlled by the act input). The sequnecer can be set to run reversed with the dir input, and it can be set to inverse mode with the inv input. Inverse mode being that the slider is read out upside down. There are three random inputs which will set the sliders to random positions when going active, 1 for one value, some for some values and all for all value. There are three clear inputs which will set the sliders to zero positions when going active, 1 for one value, some for some values and all for all value. When the hold input is active the sequencer will still step but will keep the ouptut values frozen, this differs from what the act input does, that one freezes everything. Skip inputs when active will skip the corresponding step to be used, making the sequence a step shorter. When all steps are skipped the sequencer will stop moving. The clock skip input, when seen active will cause a clock (trigger) action to not be executed. This differs from the inactive mode in that in inactive mode the sequencer passes on the chain inputs and when the clock is stopped the output will no longer change at all. The shf (Shuffle) input will shuffle the values for the steps on gong from inactive to active. The steps output for the current step will go active when the sequencer is active and either the trig input is high or the T(rigger) / (G)ate mode is set to G. The TimeWarp (tw) output, which can be used to control the speed of a driving clock module, it is meant to drive the speed input of an LFO. The idea is that when steps are being skipped the sequence length can be kept the same`when using the TimeWarp output in this manner. The changed outputs (in the C column) will pulse briefly when the associated sequencer output changes. The outputs below the res, dir and act inputs just copy tose inputs. The res input is a synced reset, it will only reset when the signal is active on a low to high transition of the trigger input. The a-res input is an unsynced reset, it will always reset the module when the signal goes from low to high. |
16 steps repeating sequencer version 1 polyphonic [this module is RateSmart [1]] |
A 16 step sequencer for values and for notes. It can be set to various signal types. A cross fade utility is implemented to smooth the signal from one step to the next, cross fading works on all four outputs. Smoothing slope type can be set independently for up going and down going signals to eiher exponential, linear, logarithmic or s-shaped. This module can be used as a complex envelope generator when properly clocked. The chain input is being used on the output when the module is not active. The sequnecer can be set to run reversed with the dir input, and it can be set to inverse mode with the inv input. Inverse mode being that the slider is read out upside down. There is a random input which will set the sliders to randm positions when going active. When the hold input is active the sequencer will still step but will keep the ouptut values frozen. Skip inputs when active will skip the corresponding step to be used, making the sequence a step shorter. When all steps are skipped the sequencer will stop moving. The clock skip input, when seen active will cause a clock (trigger) action to not be executed. This differs from the inactive mode in that in inactive mode the sequencer passes on the chain inputs and when the clock is stopped the output will no longer change at all. The trig step output for the current step will go active when the sequencer is active and the trig input is high. trig is the logical or of all the individual trig step outputs. The main trig output will trigger in the per step set trigger mode (n, s, a or g - see below) The TimeWarp (tw) output, which can be used to control the speed of a driving clock module, it is meant to drive the speed input of an LFO. The idea is that when steps are being skipped the sequence length can be kept the same`when using the TimeWarp output in this manner. With the counts controls the number of clocks per step is set. The amount can be modulated. The modes are trigger modes and can be n - none, s, single, a - all and g - gate. The mode can be modulated. The res input is a synced reset, it will only reset when the signal is active on a low to high transition of the trigger input. The a-res input is an unsynced reset, it will always reset the module when the signal goes from low to high. The stepmod inputs support the special NOT_CONNECTED status (blue row under counts). |
Lookup table version 1 polyphonic [this module is RateSmart [1]] |
A lookup table module. The select input selects one of the faders (or a mix of two when cross fading is in effect) to be sent to the output. This can also be used as a sequencer when controlled with a saw or triangle shaped signal on the select input. The four outputs are offset by four steps each, when output 1 outputs step 5, output 2 will output step 9, output 3 step 13 and output4 step 1. Cross fading works on all four outputs. The steps selector selects the number of steps to use for an input going from zero to one. The blue inputs below the faders modulate the fader values. When not connected they will have a value of 1. When connected and the xfade control is set to one these inputs will make for a 16 step piecewise linear interpolation processor (processor as opposed to shaper). |
Chord sequencer version 1 polyphonic [this module is RateSmart [1]] |
A chainable chord sequencer. The chord to be played is determined by the leftmost active input, when nothing is active the input signals (both blue and green) will be passed on (to make the module chainable). When a chord is active the green outpurts will all follow the gate input. So to use this module you will have to provide a clock signal on the gate input and then make ups some pattern on the active inputs to determine which chord will be played. When you do not want to use the green gate outputs (meant to trigger an envelope) you do not need to apply a gate signal. The blue outputs are meant to control frequency inputs of oscillators, and the green outputs are meant to control envelope generators. The active inputs can be controlled to determine the sequence of the chords, the module will not self-step. |
Probabilistic sequencer version 1 polyphonic [this module is RateSmart [1]] |
A probability based sequencer. For each note the probablility with which it will be played can be set with a slider (and this value can be multiplied by the vlue on the associated input). Notes have to be be enabled before they can sound, and note enables can be selected from a scale preset. The presets will be dynamically loaded from a file wren.scale that must be in the same folder as the Wren executable file. When this file does not exist Wren will create it. After that you can edit it with a text editor (like Notepad for instance) and Wren will not touch it anymore. A transposition can be applied to the selected scale with the transpose control. Note C4 is the 'neutral' base note (not leading to any changes). Transpositions are not reflected in the shown note pattern. A selected scale can be altered with the note buttons, and such a change will be saved with the patch (making the shown scale preset name meaningless, of course). The rnd button will set a random probability distribution, the clr button will set a flat distribution. The distribution can be altered with the tilt control. A zero value means that there is no tilt, a positive value maked higher notes more likely to be selected and negative values will produce more low notes. A transposition can be applied to the selected scale with the transpose control. Note C4 is the 'neutral' base note (not leading to any changes). Transpositions are not reflected in the shown note pattern. The low and high note controls limit the range of possible notes. The sm(oo)th controls determine the likelihood that the next random value is about the same as the current one. |
3 x 32 or 1 x 96 note sequencer version 1 polyphonic [this module is RateSmart [1]] |
A 3 x 32 or 1 x 96 note and gate sequencer. There is a separate selection for notes and octaves. Note durations can be set to multiples of 1/16 of the input clock. In free mode there are three different play clocks, so all three outputs can run at a different rate. In 1 x 96 mode this also means that one sequence can overtake another. In sync mode only one clock (the top input) is being used and the sequencers run in sync in 3 x 32 mode and the play pointers have a constant difference in 1 x 96 mode. This also means that note durations have to be interpreted differently, in sync mode it is the duration of the active part, and each step will have a duration of 16/16 clock pulses. The trigger mode can be trig, gate or repeat. In trig mode one short output pulse is generated on the clk O outputs. In gate mode it will be a long pulse, and in repeat mode there will be several shirt pulses. The dir input when active reverses the direction in which the sequencer runs. The invert input when active will play the sequence "upside down". |
A rhytmic pattern generator version 1 polyphonic [this module is RateSmart [1]] |
A rhythmic pattern generator. This is implemented as a sequence of logic dividers. With each divider you set a note length, at each start of a note an output pulse will be passed from the trig input. Then the divider starts to count, and when done, the next step will be processed. When a divider is set to zero that step will be skipped, and when all dividers are zero there will be no output pulses. Added mode selection to each step. Mode can be set to normal (nrm) to get the behavior described above. It can be set to random mode (rn1) to to get a random count [0,Steps]. Weighted random (rn2) will give divisions by two of the set number of steps, likewise rn3 uses divisions by 3. Skip mode will skip the step. The step outs will produce a 'per step' copy of the main output. This module can be used to make rhythmic figures. |
16 steps voltage controlled pattern sequencer version 1 polyphonic [this module is RateSmart [1]] |
A 16 step sequencer for values and for notes with voltage controlled patterns. It can be set for various signal types. The seqnuecer can be set to run reversed with the dir input, and it can be set to inverse mode with the inv input. Inverse mode being that the slider is read out upside down. There is a random all input which will set the sliders to randm positions when going active. the random 1 input will set a random step to a random value. The clr input will set all steps to the zero position, or to middle A when the notes mode is active. For each step a mode can be set, either on, off or adc. In on mode the step functions normally generates a gate and a trig output, in off mode it will not generate a gate or trig output and the last output value will be maintained. In adc mode the pattern input determines what will happen. This input is converted into a binary value and when the bit corresponding to the current step is on the step behaves as in on mode, it will behave like off mode otherwise. The pattern selection can be modified with the offset and gain controls. The adc uses gray codes, meaning only one bit will change from one step of the pattern to the next. There are three outputs, out, trig and gate. the out one outputs the current slider value for the active step - for inactive steps it will not change value. The gate output outputs a logic high for active steps. The trig output ands the gate output with the trigger input, so it will pulsate for each active step. |
Frequency divider version 1 polyphonic [this module is RateSmart [1]] |
A set of divider sections with a builtin multiplexer. The module consists of eight individually settable divider sections with a common clock. The individual dividers all have their own output and on top of that there is a built in multiplexer selecting from the individual outputs and routing to the mix output. The multiplexr is controlled by a sel input signal and it's start and span can be set and modulated as well. The xfade input will fade over the set span starting at the seection start. The idea is to clock this module with a relatively fast clock (for example the x16 output of the ClockGen module) such that steady patterns can be programmed with an occasional drum roll. Using the xfade controls steps can be faded over to each other (instead of abrubptly being switched over). Added a value control for each step with a mix output for it, this behaves like a set of multiplexed values, or like a sequencer. Note: the xfade control does not make smooth transitions as output values will change value on a clock edge only. |
Primes Rhythm generator version 1 polyphonic [this module is RateSmart [1]] |
This module implements a Primes Rhythm player. The steps selector sets the pattern length which can be modulated by the mod input. Internally the module counts from one to the length of the pattern (and then jumps back to one)(or reversed) when the trig input goes active. When the current count is a prime number the output will activate. The inv output makes the inverse pattern and it will fire when the count is mot a prime. Both outs will deactivate when the trig input goes inactive again. The dir input dwtermines the counting direction - counting up when unconnected. |
1 - 11 step sequencer version 1 polyphonic |
A 1 to 11 step sequencer. When the trig input goes from zero, or below zero, to a value above zero the sequencer will proceed one step. When the dir input is positive the sequencer proceeds from left to right, from right to left otherwise. When the res input goes from zero, or below zero, to a positive value the sequencer will be reset to the first step when the dir input is positive, or to the last step when the dir input is not positive The top right input is a chain input, it's value is added to the value as set by the current step value. Each step has an output that will go to logic true when the step is active, it is logic false otherwise. There is a chain input available, it's value will be added to the sequencer output. the rnd button will set a random pattern, the clr button sets all notes to A4. |
arbitrary length sequencer version 1 polyphonic |
A sequencer with an arbitrary amount of steps. When the trig input goes from zero, or below zero, to a value above zero the sequencer will proceed one step. When the dir input is greater than 0.5 the sequencer proceeds from left to right, from right to left otherwise. An unconnected dir input makes the sequencer run left to right. When the res input goes from zero, or below zero, to a positive value the sequencer will be reset to the first step when the dir input is positive, or to the last step when the dir input is not positive Control click on the display to get into the editor window where notes or values can be added (separated by commas). In 'freq.' mode it is assumed that the module controls the 'freq' input of an oscillator, in this case the values can be either be values on which a modifier like Hz or s can be used, or it can be a note number. Time values like 1:39 or 1:33:00 can be used as well. Anything not understood is interpreted as a rest, the preferred way for entering a rest is to use an underscore character. In 'arbitrary' mode nothing is assumed about what is being controlled and values entered will be output as is. It is still possible to use modifiers though. It is possible to add a repeat count for a value by adding a number after it separated by a colon (:) character, a repeat will add some rests, that is, the note or value will be held and no gates are generated. Repeat counts of zero or less will result in the value being output once. A rest results in the the previous output value being held and no gate output pulse will be generated for that step. An example string for the 'freq.' mode would be: 'A1:2, 333 Hz:3, _, C1' first A1 will be output for two clock periods, then 333 Hz for 3 clock periods, then a rest for one clock period ( extending the 333 Hz signal for another clock time) and finally C1 for one clock period. It is not possible to output a new value while suppressing he gate output. When done with editing use CTRL+ENTER to close the editor and save the results, or ESC to close the editor without saving the changes. There is a chain input available, it's value will be added to the sequencer output. |
Sequencer step version 1 polyphonic [this module is RateSmart [1]] |
This module implements one step of a chainable sequencer. When the dir input is positive the step will become active when the forward trig input (the leftmost one) goes inactive, and it will stay active then for the amount of time set by the knob. When the dir input is not positive the step will become active when the backward trig input goes inactive, and it will stay active for the time set by the knob. The res input will make the step inactive when it makes a transition from non-positive to positive. When the step is active the note set with the note selector will be set on the output, otherwise it will pass on the value it finds on it's top right input. |
Clocked sequencer step version 1 polyphonic [this module is RateSmart [1]] |
This module implements one step of a chainable sequencer. When the dir input is positive the step will become active when the forward trig input (the leftmost one) goes inactive, and it will stay active then for the number of clocks set by the count knob. When the dir input is not positive the step will become active when the backward trig input goes inactive, and it will stay active for the number of clocks set by the counts knob. The res input will make the step inactive when it makes a transition from non-positive to positive. When the step is active the note set with the note selector will be set on the output, otherwise it will pass on the value it finds on it's top right input. This module will need a clock signal to be connected for it to work properly. |
16 channel CSV data player version 1 polyphonic |
This module implements a Comma Separated Values data player. It reads the values to be played from a CSV file with up to 16 columns. The amount of lines to be read is limited only by available memory. Data lines can have comment on them, comment starts with a # character and extend to the end of the line. When comment was found at the end of a line actually containing data that comment can be displayed in the module. The module will output a new set of values on each rising edge of the clock input. When the Direction input is not connected or positive it will start with the first line of data, when the direction input is set to zero or lower it will start with the last line of data. The module has two play modes, repeat and once. For repeat mode when the last data was output the module will then on the next clock restart with the first data line. When its set to once mode the data output will stop at the last line, it can then be restarted by issuing a reset signal (either a global reset or a reset signal on the reset input). |
Building block for klee like sequencer version 1 polyphonic |
8 bit part of a Klee Sequencer. Parts can be chained to form a 16 bit or longer Klee like sequencer. |
A simple MIDI file player version 1 monophonic |
A simple MIDI file player. The module can be in once or in loop mode. In once mode the midi track will stop playing when it runs out of events or when an end of track MIDI event was seen. A reset will be needed to play the track again. When dome a Done pulse will be generated. In loop mode the track will restart where the Once mode would stop, a Done pulse is generated still though at the track end. Reset will always reset the track to the beginning, this can be a reset pulse on the rest input or a global rest (from the reset button). All timing info except the track event timing is ignored. The track event durations set a counter that will be decremented on every clock pulse seen. When the counter reaches zero that event will be played. An input clock frequency of about 1 kHz seems to be a reasonable start value. All other meta info is ignored as well. Only note on and note off events will be played, a note on with zero velocity is treated as a note off - running status should be handled OK. When there are non-track chunks in the file the file reader will probably misunderstand ... to avoid that use MIDI 1.0 .. I think ... or wait till I fix that. |
Pattern sequencer version 1 monophonic |
A pattern sequencer. This is a sequencer meant to be used for drum patterns, it controls 24 drum lines at the same time. A full drum pattern is composed of eight Parts (P) where each Part holds eight Sections (S). Each Section has eight Elements (E) and each Element has 24 Bits (buttons) which correspond to the Bit outputs. Each bit can be in one of three states, it outputs nothing (thin white base line) it outputs a positive value while it is selected and the clock is high (a half block on the left side) or it outputs a positive value during the entire bit duration (a full block). At any one time 24 bits are visible for each combintation of the current Part, Section and Element. The sequencer is driven from the 'clk' input, but it only runs when the 'act' input is either not connected or when it is set to a positive vaue. the 'res' input, when going positive, will make the sequencer restart at Part 1, Section 1 and Element 1. The 'Res' button provides a manual reset. The sequencer has two modes, 'Run' mode and 'Edit' mode. In 'Run' mode: The pattern will be played one Element at a time, moving to the next Element on the next clock. When all Elements were played a move is made to the next Section. Then when all Sections were played the next Part will kick in. This makes for a total sequence length of 8 x 8 x 8 = 512 steps. The active Part, Section and Element are indicated by a green color. When all parts were played it depends on the the mode what will happen next. In 'Loop' mode the sequencer jumps back to the beginning, Part 1, Section 1 and Elemment 1. In 'Once' mode there will be no further output and all the bit ouputs will be turned off. Red colored states are skip states and will not be played. Blue colored states act as a reset in 'Loop' mode and as an endpoint in 'Once' mode. When all Parts, Sections and Elements are red nothing will be played. When a Part, Section or Element button is clicked the sequence will jump to that point on the next clock. Clicking on a red button will skip to the first non red one after it. Clicking after a blue point is possible, and will just jump to that point. The active E, S and P buttons will be colored green. The skipped ones are red, the reset ones are blue and all others are gray. So when you see any green E, S or P buttons, you know the sequencer is in 'Run' mode. In 'Edit' mode: The progress of the sequencer is not shown in the P, S and E controls, but it will keep playing the same way as it does in 'Run' mode. The lights at the bit outputs will still show what is happening at the outputs. You can select a specific Part, Section, Element combination with the P, S and E buttons, the button will turn yellow then to indicate selection. It is then possible to edit the 24 bit buttons without the sequencer running away from it. The edit buttons ('copy E', 'copy S', 'copy P', 'clr E', 'clr S' and 'clr P') are functional. They will copy or clear Elements, Sections or Parts. 'copy E' will copy the previous Element to the selected one, when the selected Element is 1 nothing will be copied. 'clr E' will clear the 24 bits for that element to the off state. 'Copy S' will copy the previous Section to the selected one, when the selected Section is 1 nothing will be copied. 'clr S' will clear all bits in the current Section (that is eight tiems 24 bits). 'copy P' will copy the previous Part to the selected one, when the selected Part is 1 nothing will be copied. 'clr P' will clear all bits in the current Part (that is eight tiems eight times 24 bits). Clicking once an E, S, or P button will select the associated Element, Section or Part (yellow). Clicking again will make the the button red, meaning it will be skipped on playback. Clicking yet another ttime will make it blue. Making a button read does not clear any bits. A blue button acts as a reset point, and making a button blue does not cler anything either. Selected E, S, or P buttons are yellow. Unselected, non skipped and non reset ones will be gray. So you know that when you see any yellow E, S or P buttons the sequencer is in 'Edit' mode. The 'res' button also works to reset the sequencer in 'edit' mode. Sequences can be saved to disk and reloaded just as any module can - as a preset. Right click on the module and select load / save preset from the context menu. |
Pattern sequencer version 1 monophonic |
A pattern sequencer. This is a sequencer meant to be used for control or note patterns, it controls 8 analog lines at the same time. A full pattern is composed of eight Parts (P) where each Part holds eight Sections (S). Each Section has eight Elements (E) and each Element has 8 Vlues (sliders) which correspond to the outputs. At any one time 8 values are visible for each combintation of the current Part, Section and Element. The sequencer is driven from the 'clk' input, but it only runs when the 'act' input is either not connected or when it is set to a positive vaue. the 'res' input, when going positive, will make the sequencer restart at Part 1, Section 1 and Element 1. The 'Res' button provides a manual reset. The sequencer has two modes, 'Run' mode and 'Edit' mode. In 'Run' mode: The pattern will be played one Element at a time, moving to the next Element on the next clock. When all Elements were played a move is made to the next Section. Then when all Sections were played the next Part will kick in. This makes for a total sequence length of 8 x 8 x 8 = 512 steps. The active Part, Section and Element are indicated by a green color. When all parts were played it depends on the the mode what will happen next. In 'Loop' mode the sequencer jumps back to the beginning, Part 1, Section 1 and Elemment 1. In 'Once' mode there will be no further output and all the value ouputs will be set to zero. Red colored states are skip states and will not be played. Blue colored states act as a reset in 'Loop' mode and as an endpoint in 'Once' mode. When all Parts, Sections and Elements are red nothing will be played. When a Part, Section or Element button is clicked the sequence will jump to that point on the next clock. Clicking on a red button will skip to the first non red one after it. Clicking after a blue point is possible, and will just jump to that point. The active E, S and P buttons will be colored green. The skipped ones are red, the reset ones are blue and all others are gray. So when you see any green E, S or P buttons, you know the sequencer is in 'Run' mode. In 'Edit' mode: The progress of the sequencer is not shown in the P, S and E controls, but it will keep playing the same way as it does in 'Run' mode. You can select a specific Part, Section, Element combination with the P, S and E buttons, the button will turn yellow then to indicate selection. It is then possible to edit the eight value sliders without the sequencer running away from it. The edit buttons ('copy E', 'copy S', 'copy P', 'clr E', 'clr S' and 'clr P') are functional. They will copy or clear Elements, Sections or Parts. 'copy E' will copy the previous Element to the selected one, when the selected Element is 1 nothing will be copied. 'clr E' will set the eight sliders for that element to zero. 'Copy S' will copy the previous Section to the selected one, when the selected Section is 1 nothing will be copied. 'clr S' will clear all values in the current Section (that is eight times eight values). 'copy P' will copy the previous Part to the selected one, when the selected Part is 1 nothing will be copied. 'clr P' will clear all values in the current Part (that is eight times eight times eight values). Clicking once an E, S, or P button will select the associated Element, Section or Part (yellow). Clicking again will make the the button red, meaning it will be skipped on playback. Clicking yet another ttime will make it blue. Making a button red does not clear any values. A blue button acts as a reset point, and making a button blue does not clear anything either. Selected E, S, or P buttons are yellow. Unselected, non skipped and non reset ones will be gray. So you know that when you see any yellow E, S or P buttons the sequencer is in 'Edit' mode. The 'res' button also works to reset the sequencer in 'edit' mode. Sequences can be saved to disk and reloaded just as any module can - as a preset. Right click on the module and select load / save preset from the context menu. |
Modulated gate sequencer version 1 polyphonic [this module is RateSmart [1]] |
A modulated gate sequencer. Each step has three modes, it can be off (blank) it can be a trigger step (o) active for half a clock period or it can be in gate mode (O) staying active a full clock period. The mdulation inputs control wheter a step will sound or not. A modulation input value <= 0 will make the step silent and a value > 0 will make the step perform according to how the button was set. Unconnected modulation inputs are set to 1, so they will produce active steps. The rnd button will set a random pattern. The clr button will clear all steps. Steps that are turned off trough the modulation inputs wil flash orange instead of yellow. The res input is a synced reset, it will only reset when the signal is active on a low to high transition of the trigger input. The a-res input is an unsynced reset, it will always reset the module when the signal goes from low to high. |
Gen player version 1 monophonic [this module is RateSmart [1]] |
A Nucleic Acid Sequence player module This module scans text files for A, C, G and T (or U) characters (case insensitive) and builds a sequence from those with the letters mapped to the numbers 0, 1, 2 and 3 (such that A and T (U) are complemental, as are C and G). U is treated as if it were T. Additionally W, S, M, K, R, Y, B, D, H, V and N are recognized, these are (according to their rules) randomly translated in one of A, C, G or T. W into A or T; S into C or G; M into A or C; K into G or T; R into A or G; Y into C or T; B into C, G or T; D into A, G or T; H into A, C or T; V into A, C or G; N into A, C, G or T. All other letters (including Z, white space and numerals) will be skipped. On playback the letters can be chained into groups of size 1 to 7 (3 would be the central dogma, codons encoding for amino acids (of which some may not exist for random letter sequences, but this module will assume existing sequences)). For a single letter there are four values [0.0, 0.25, 0.5, 0.75] or [0,0, 0,33, 0.67, 1.0] on the scaled output; for a group of two the values woud be [0.0, 0.125, 0.25. 0.375, 0.5. 0.625, 0.75, 0.875] (or their scaled equivalents). On each trig the next group will be output, when the unit is in repeat mode it will jump back to the start when everything was played and when it is in once mode it will stop at the end. The res input will reset the sequence to the beginning. The changed output will fire when a value change on the output was seen. The leftmost outputs are complement outputs, for ease of implementation just 1.0 - output. |
Gate sequencer version 1 polyphonic [this module is RateSmart [1]] |
A multi gate sequencer. Each step has three modes, it can be off (blank) it can be a trigger step (o) active for half a clock period or it can be in gate mode (O) staying active a full clock period. The rnd button will set a series or randomly selected Euclidean patterns depending on the selected length (which is assumed to be the maximum length under length modulation). The random selection will be all trigs or silence, gate mode will never be selected, but this can be changed manually as needed. The clr button will clear all steps. The select input selects the row to play The number of steps can be modulated. The res input is a synced reset, it will only reset when the signal is active on a low to high transition of the trigger input. The a-res input is an unsynced reset, it will always reset the module when the signal goes from low to high. |
Logistic map module version 1 polyphonic [this module is RateSmart [1]] |
A Logistic map module An impulse on the start input starts the iteration process with the value set by S value and S mod. The R value to use is selected by low R, high Rand R mod, R mod fades R from low R to high R. The onset of chaotic patterns is for R > 3. |
' Poetry' generator version 1 polyphonic [this module is RateSmart [1]] |
A 'Poetry' generator. This module was modeled after the Poetry Generation Algorithm by Johnathan Mackenzie from his thesis 'Using Strange Attractors To Model Sound'. The basic working is as follows: A 'text' is assumed to be present in memory from which an arbitrary part is being selected as a seed. For each new output value to be generated the seed is found in the text and the value following the seed is the new value to be shifted into thee seed from the right side. The first value in the seed is being used as the current output. The Text can be appended to by triggering the 'new input' input, and a new output value is obtained by triggering the 'new output' input. When the text gets longer than the maximum set length the oldest value in the text will drop out and the new value will be appended. A text initially will have zero value only. The seed will always be a sequence present in the text, whenever a new value is added to the text a new random seed will be calculated and whenever an output value is being requested the seed will be left shifted (and the leftmost value will drop out). The seed length can be set longer than the history size, this will result in the history being played as is. The Clr input is a latching input. A low to high transition will be remembered and then when a new value is clocked in a zero will be clocked in instead of the new value. After that the clr state will be reset to off. An active Clr status overrides the mode settings, so that when mode is set to unique a zero vaalue will still be clocked in when Clr had been active. Note that reset will not clear any stored values. |
Arpeggiator version 1 polyphonic [this module is RateSmart [1]] |
A simple arpeggiator On each clock on the 'new in' input a new input sample is is taken and added to a list of samples, the oldest value present will be dropped from the list then. This list can be left unsorted, it can be randomized or be set to play the lowest or highest note first . The list length is set with the length control. On each output clock on the 'new out' input the next stored value from the sorted list will be output. In random mode the order in the sorted list will be randomized when the playout wraps back to the first value. In unsorted mode the playout will be the recording order. On the input side an acceptance filter can be applied. All incoming values can be accepted, values differing from the previous value or values not present yet in the list of samples. The toggle input when inactive causes the selected sort order to be in effect and when active the next sort order will be used. This can be used to toggle between low to high and high to low modes, for instance. When there are not enough input values available (yet) arbitrary values will be clocked out until the playout counter wraps back to zero. The reset input (or a global reset) will cause the playout pointer to be set back to zero without changing any stored values. The Clr input is a latching input. A low to high transition will be remembered and then when a new value is clocked in a zero will be clocked in instead of the new value. After that the clr state will be reset to off. An active Clr status overrides the mode settings, so that when mode is set to unique a zero vaalue will still be clocked in when Clr had been active. Note that reset will not clear any stored values. Thr trans(parant) input cause the module to stop arpeggiting, instead it will on every outclock output the last value clocked in, making it into a sort of a sample and hold mode. |
Markov chain version 1 monophonic |
A markov chain module. This is a first order implementation. The internal state consists of a number of nodes each holding some value (for which a maximum must be set with the max size control), a State variable holding the current node index (which is not under direct user control) and a matrix of transition chances (which is not under direct user control). When the learn input goes active the current input value is looked up in the nodes, and when found the transition probability from the previous input value to this new one will be increased with the current strength value (which can be negative). When the new value wsa not found it will first be appended to the node list. When the node list becomes full and the mode is set to once an overflow condition occurss and the new value will not be learned (also the Ovfl light will go on then). When the mode is set to 'cont' no oveflow will occur but the oldest values will be discarded instead. When the 'new ouput' input goes active the current State variable will move to a new one, this is a random process controlled by the transition chance matrix. When clear goes active all internal state is discarded. When the state space gets full the full light will indicate this and the full output will go active as well. Connecting the full output to the clear input will cause the internal state to b cleared when the state space gets full. To make the module leaky you can set the max size to a lowish value, the strength to just above zero and then modulate the strength with a random value. A low max size will let new events come in at the cost of loosing older ones. |
A rule rewriter version 1 polyphonic [this module is RateSmart [1]] |
A pattern rewrite module. A couple of rewrite rules can be specified, and a maximum expansion level can be set. There is a small alphabet of the letters A, B, C, D and E. For each letter a substitution is specified in terms of other letters. For instance:
Then a number of expansion steps is specified resulting in patterns to be generated. With the rules above those woud become (the numbers indicating the expansion level):
etc. The maximum depth to be set is 8, which would result in a pretty long pattern already with the rules above. At each positive input step a next symbol from the active generated pattern is selected and the corresponding output will be made active. At the end of the pattern it will start again from the beginning. Some rules (or all) can be left blank for simpler patterns. All letters must be from the set [A..E], everything else will be ignored for pattern generation. This is after an idea found at RobotPlanet, which in turn references this article. |
A note based rule rewriter version 1 polyphonic [this module is RateSmart [1]] |
A pattern rewrite controlled sequencer. A couple of rewrite rules can be specified, and a maximum expansion level can be set. There is a small alphabet of the letters A ... H. For each letter a substitution is specified in terms of other letters. For instance:
Then a number of expansion steps is specified resulting in patterns to be generated. With the rules above those woud become (the numbers indicating the expansion level):
etc. The maximum depth to be set is 8, which would result in a pretty long pattern already with the rules above. At each positive input step a next symbol from the active generated pattern is selected and the corresponding knob will then send it's value to the output. At the end of the pattern it will start again from the beginning. Some rules (or all) can be left blank for simpler patterns. All letters must be from the set [A..E], everything else will be ignored for pattern generation. The common chain input is added to the output value always, and then there are eight indivuidula chain inputs that are added to the output only when the corresponding rule is active (with this the module can be used as a mutiplexer as well). This is after an idea found at RobotPlanet, which in turn references this article. |
A number sequence generator version 1 polyphonic [this module is RateSmart [1]] |
A fractal-like number sequence generator. This module generates a sequence of notes based on an input pattern. The input pattern is a comma separated string of integers. This is after an idea by Robert Inventor as explained here. The generated numbers will be limited to a range [-60, 67], then for output generation 60 will be added with the result being interpreted as a note number, which is then translated to a standard note signal (for controlling oscillator frequencies etc.). Which means that a 0 output from the sequence will translate into middle C, a -1 output to B, a 1 to C#, etc. |
Wiard style neural pulser version 1 polyphonic |
A Wiard style Neural Pulser module. |
A cellular automaton version 1 monophonic [this module is RateSmart [1]] |
A cellular atomaton. This module implements an 'elementary cellular automaton'. Each cell can have a value of either zero or one. Three cells are evaluated according to the set rule and this will yield a new value for a next generation cell. The rule number [0 .. 255] is being interpreted as a bit pattern which is indexed by the three bit pattern generated from the three evaluated cells. This is all according to Wolfram's theory about elementary cellular automata. The start state of the automaton consists of one single cell having a value of one. With the steps parameter you can set the number generations to be calculated, this results in a bit string. On every step a next bit will be sent to the output and when the end of the string is reached the sequence will wrap back to the beginning. The Faults parameter sets the average number of cell faults generated for each new cell calculated. The set number is divided by 10,000. The total length of the generated pattern increases with two on each new evaluated step, which results in length = 2 * steps + 1, which is odd always. The reset input can be used to wrap back sooner. Some rules will not generate any output at all (like rule 0 or 255), some will generate simple repeating patterns and others willl be almost random. For some rules the steps setting may not change the sequence much, for others a next step may differ wildly from the previous one. The blue output has a weighted sum of the last three bits ( Bit[ anIndex] + ( Bit[ anIndex - 1] shl 1) + ( Bit[ anIndex - 2] shl 2)) / 8.0. The dir input when active reverses the play direction. For some ideas about possibly interesting rules have a look at my rules page. At some stage I may build some of the visulas into Wren, but not at this stage. That page, at the very end, also shows an implementation of the algorithm being used. |
A cellular automaton version 1 monophonic [this module is RateSmart [1]] |
A cellular atomaton. This module implements an 'elementary cellular automaton'. Each cell can have a value of either zero or one. Three cells are evaluated according to the set rule and this will yield a new value for a next generation cell. The rule number [0 .. 255] is being interpreted as a bit pattern which is indexed by the three bit pattern generated from the three evaluated cells. This is all according to Wolfram's theory about elementary cellular automata. The start state of the automaton consists of one single cell having a value of one. With the steps parameter you can set the number generations to be calculated, this results in a bit string. On every step a next bit will be sent to the output and when the end of the string is reached the sequence will wrap back to the beginning. The Faults parameter sets the average number of cell faults generated for each new cell calculated. The set number is divided by 10,000. The total length of the generated pattern increases with two on each new evaluated step, which results in length = 2 * steps + 1, which is odd always. The reset input can be used to wrap back sooner. Some rules will not generate any output at all (like rule 0 or 255), some will generate simple repeating patterns and others willl be almost random. For some rules the steps setting may not change the sequence much, for others a next step may differ wildly from the previous one. The blue output has a weighted sum of the last three bits ( Bit[ anIndex] + ( Bit[ anIndex - 1] shl 1) + ( Bit[ anIndex - 2] shl 2)) / 8.0. The dir input when active reverses the play direction. For some ideas about possibly interesting rules have a look at my rules page. At some stage I may build some of the visulas into Wren, but not at this stage. That page, at the very end, also shows an implementation of the algorithm being used. |
Life sequencer version 1 monophonic [this module is RateSmart [1]] |
A Life based sequencer. This module can also be used as a 32 x 32 sequencer, provided the mode is set to 'Freeze'. Based on Conway's game of Life, but there are some extra modes selectable from the mode selector, one of them being the 'Freeze' mode, which stops all cellular engine activities (but the cursor functions still work, turning he module into a sequencer). The step input moves the cursor, which will put the cell values from the curent column on the green outputs. The change input triggers a new generation of live cells, according to the currently selected rule, the change input does have an inhibit function to freeze the current pattern. The blue sum output outputs a function based on the values under the cursor. The modes are :
The grid can be set to be wrapped or unwrapped. In wrapped mode the top connects to the bottom and the left side to the right, and topologically it is equal to a torus then. The fault rate parameter determines the amount of faults made in applying the evolution rule, set to a low value it can get stuck patterns going again after a while. When the number of cells drops below the low count the grid will be filled with random values, the chance of a cell becoming alive then is set with the rnd amt parameter. This will bring back some life when all cells ended up being dead. The rnd button will fill the grid with a random patttern, obeying the rnd amt setting. The clr button will clear the grid, this usually will then immediatly set random pattern as the live cell count drops below the minimum. It is of use in the Freeze mode to quickly erase a mouse painting that did not turn out as it should. It is possible to draw on the grid. A single click will toggle the cell state, with shift cells can be turned on and using ctrl instead will turn cells off. Using a right click on the grid the current state can be saved to or loaded from a file. Best to be used in the Freeze mode only. |
Small life sequencer version 1 monophonic [this module is RateSmart [1]] |
A smaller Life based sequencer. This module can also be used as a 12 x 12 sequencer, provided the mode is set to 'Freeze'. Based on Conway's game of Life, but there are some extra modes selectable from the mode selector, one of them being the 'Freeze' mode, which stops all cellular engine activities (but the cursor functions still work, turning he module into a sequencer). The xstep input moves the cursor in the x direction, which will put the cell values from the curent column on the horizontal green outputs. The ystep input moves the cursor in the y direction, which will put the cell values from the curent row on the vertical green outputs. The change input triggers a new generation of live cells, according to the currently selected rule. The blue outputs output column and row sums, they output the count of live cells for each column or row. The diagonal outputs, gree and blue, output the sum of the green and blue output row and column. The grid can be set to be wrapped or unwrapped. In wrapped mode the top connects to the bottom and the left side to the right, and topologically this is equal to a torus. The fault rate parameter determines the amount of faults made in applying the evolution rule, set to a low value it can get stuck patterns going again after a while. When the number of cells drops below the low count the grid will be filled with random values, the chance of a cell becoming alive then is set with the rnd amt parameter. This will bring back some life when all cells ended up being dead. The rnd button will fill the grid with a random patttern, obeying the rnd amt setting. The clr button will clear the grid, this usually will then immediatly set random pattern as the live cell count drops below the minimum. It is of use in the Freeze mode to quickly erase a mouse painting that did not turn out as it should. It is possible to draw on the grid. A single click will toggle the cell state, with shift cells can be turned on and using ctrl instead will turn cells off. Using a right click on the grid the current state can be saved to or loaded from a file. Best to be used in the Freeze mode only. |
Life sequencer inspired by PHOBoS version 1 monophonic [this module is RateSmart [1]] |
A Life based sequencer based on ideas posted by PHOBoS on the electro-music.com forum. Based on Conway's game of Life, but there are some extra modes selectable from the mode selector, one of them being the 'Freeze' mode, which stops all cellular engine activities (but the cursor and input functions still work, turning he module into a sequencer (presumably not clocking in new data in that case)). The clock input clocks the current input value into the module. It will be quantized to a note number and that will determine a cell to be turned alive. The step input moves the cursor, X first and when X wraps Y moves. When the cursor lands on a live cell the note associated with it will be sent to the output. The rev input will reverse the scan direction. When the X or Y input are connected however the behaviour will change a bit. In this case the X and Y inputs will directly set the grid cursor, and the rev input will not have any effect anymore. When the step input is not connected but one or two of the X and Y inputs are the X and Y inputs act asynchroneously, that is: no steps are needed to make them work. The change input triggers a new generation of live cells, according to the currently selected rule. The grid can be set (and is so by default) to be wrapped or unwrapped. In wrapped mode the top connects to the bottom and the left side to the right, and topologically it is equal to a torus then. The fault rate parameter determines the amount of faults made in applying the evolution rule, set to a low value it can get stuck patterns going again after a while. The rnd button will fill the grid with a random patttern, obeying the rnd amt setting. The clr button will clear the grid. It is possible to draw on the grid. A single click will toggle the cell state, with shift cells can be turned on and using ctrl instead will turn cells off. Using a right click on the grid the current state can be saved to or loaded from a file. The x, y and step inputs support the special NOT_CONNECTED status. |
A MUSE like generator version 1 polyphonic [this module is RateSmart [1]] |
A MUSE like melody generator. This implementation more or less follows the schematics as publushed by PHOBoS at http://electro-music.com/forum/viewtopic.php?p=430620 The oscillator was left out, instead the output has a control signal with values 0/32 to 31/32. The external inputs go to the switches directly. The switch positions can be modulated. There are 44 positions, the first position is off and all modulations resulting in a value > 43 will be translated to off as well. The co 0 and co 31 outputs are the left and right carry out signals, the left out going active on lefft shifts only and the other one for right shifts only. Thes outputs can be used for chaing AMuse modules. The inv output outputs 1 - out, so values from 32/32 down to 1/32. The rev input when active reverses the direction of the shift register, when reversed the bit output will output bit 0 and the parity info is input at the high side of the shift register. The taps will stay at the same position. With the parity controls the parity generator can be switched between odd and even. The free / clocked control selects between some changes taking place immediately or or synced to the trig input, this affects the res input and modulation applied to the switches. The parity, rev and ext inputs will always be synced. |
Swan song generator version 1 monophonic |
A Swan song generator. This module was made after a idea posted on the electro-music.com forum, see there for more info on it. The idea is to have a swan and a couple of hunters chasing it. The swan can fly so it's on an arbitrary position (but within the bounding box of the paths). The hunters though must walk on the paths. The paths themseleves are created by a turtle, for which I made a forth like system to implement turtle graphics. This module needs a forth specification file in order for it to work. It will search for mazes.4th in the application directory. This file defines a couple of exports, which are forth words marked with an export directive, they must not consume nor return any stack entries. The hunters will close in on the swan on every clock pulse they receive, using the path having the (local) shortest distance to it, with the twist that no two hunters can be in the same location (when enabled with the 'dups ok' / 'no dups' selector). The swan can be moved by appying signals to the swan X and y inputs. The output values are taken from the last angle a hunter made and the last distance it traveled. For inputs and outputs the signal type to be used can be selected. There is a test tool available for debugging mazes.4th, this is the SwanTest.exe application (to be added to the release package). |
Wealth distribution simulation version 1 monophonic [this module is RateSmart [1]] |
A wealth distribution simulator. The simulator has a population of 1001 members. Initially all members start off with the same wealth of 0.1. As the total wealth over the sumulation is held constant this initial wealth is also the average wealth. On each iteration two members are drawn at random and they will trade for an amount that ranges from 0% to 5% of the wealth of the poorest of the two. The direction of the trade is selected at random. Each trade is being taxed, and the tax flows from the richest to the poorest party in that trade. This way the wealth of the members in the population will change.
The clock (output clock) sets a new output value, the model itself is updated on every on every system- or control-rate clock (depending on wheter the module runs fast or slow). Output values are determind by the current wealth of a randomly selected memeber. This makes the module basically a random generator. The default values for chi, zeta and kappa model the USA economy. |
Double pendulum simulation version 1 polyphonic [this module is RateSmart [1]] |
A double pendulum simulation. This module can either be free running or clocked, it will be clocked when something gets connected to the clk input. The m1 / m2 control sets the mass ratio between the masses at the ends of the pendulum arms. The sum of the masses is set fixed to 20 kg. The l1 / l2 control sets the length ratio between the lengths of the pendulum arms, the sum of the lengths is set fixed to 20m. The speed control and it's modulation input set the simulation step size, the simulation will not proceed when the speed is zero. For negative speeds the simulation will run in opposite direction (but gravity stays as it is). For large speeds the precission of the simulation will diminish and somewhat longer runs may result in non-chaotic behaviour. The reset input or button can bring the module back to it's starting state. With the G mod. input gravity can be changed, it cam be made negative too. |
Analog stack version 1 polyphonic [this module is RateSmart [1]] |
An analog stack module A value can be pushed and poped There is an initial entry on the stack with a value of zero. |
Analog queue version 1 polyphonic [this module is RateSmart [1]] |
An analog queue module. Values are clocked from the input and up to max sie items are remembered. The select controls and input will select one of the remembered values, possibly with cross fading between current and next value. |
Boids version 1 polyphonic [this module is RateSmart [1]] |
Boids ... The x, y and z inputs support the special NOT_CONNECTED status. |
Oramics version 1 polyphonic [this module is RateSmart [1]] |
Oramics 1 This module uses an image which it will divide into four tracks. For each track the graphical information will be transferred to the corresponding output. The image can be larger than what is shown on the module, it will be scaled to fit the display. For playback the actual image data will be used, so the resulution can be higher than the screen resolution. The image is treated as a sort of a graphical score, and it is played in the vertical direction as controlled by the position input. The image is read at the position of the horizontal cursor line. There are a couple of modes for the way image data will be handled, all modes are monochrome - red, green and blue information will simly be added. 1) Weight : for each column and each line in the column the summed value determines the output. 2) Center: the center of mass is calculated for each line in each column, the value is sent to the output. 3) PkVal: or peak value, the value of the brightest spot in each line is for each column sent to the output. 4) PkPos: or peak position, the position of the strongest light in each line is for every column sent to the associated output. Then there are two modifiers, one for selecting the type od the position signal and another for setting the types for all outputs (individuallhy). |
A file change detector version 1 monophonic Notes about polyphony: The text and detection is shared over all voices. |
A file line change detector When a change in the last line of a fie is being detected the ouput will go active briefly. This module should use input from a file by typing : file:fillename or file:fillename regular-expression The last non-empty line of the file will be read (or an error message will be returned) and that line will be filtered with the optional regular expression. When the regular expression contains a group named 'result' that will be the matched bit from that last line. Example:
|
A reverb modeled after freereverb version 1 monophonic |
A reverb module, copied from freeverb. It has the usual controls: room size, damping, stereo width, wet and dry signal levels. In normal mode it is a reverb, in frozen mode the internal signal is frozen and input signals will not change it anymore. Freeze mode can be toggled from the green input. The amt input sets the amount of freeze to apply, it is clipped in a range [ 0.0 .. 1.0] and when not connected it is fixed to 1.0. When freeze is less than 1.0 some input signal will be passed on. |
A reverb modeled after gverb version 1 monophonic |
A reverb module, copied from gverb. Spread, MaxRoomSize and Mode controls are to be regarded presets, changing them will recreate the reverb object. When tone or reverb time are at a minimum there will be no tail signal, just early reflections. The mode parameter:
|
A convolution (reverb) processor version 1 monophonic Notes about polyphony: The module is mono-, the am input poly-phonic. |
A convolution (reverb) processor. This module outputs the convolution of it's input signal(s) with a loaded wave file. When the file is mono the sum of the left and right inputs is being convolved with that mono signal and the left and right outputs will have the same signal. The right side convolution will not be processed in that case. When there are two or more channels in the wave, the first two fill be used, channel 1 for the left side and channel 2 for the right side. Both convolutions will be processed in this case. When there is no valid file loaded, or the number of channels is zero for some reason, the outputs will be a copy of the inputs. When the loaded file is an impulse response (of a room or a violin body for instance) the module will act as a reverb with the characteristics of that room (violin body). The module does no sample rate conversion on the impulse file. |
Flanger and Chorus version 1 monophonic |
A flange/chorus module, ported from some old Turbo Pascal code I had. In normal mode it is a flange chorus, in frozen mode the internal signal is frozen and input signals will not change it anymore. Freeze mode can be toggled from the green input. |
Pitch changer module version 1 monophonic |
A pitch changer, ported from some old Turbo Pascal code I had. In normal mode it is a pitch changer, in frozen mode the internal signal is frozen and input signals will not change it anymore. Freeze mode can be toggled from the green input. |
Level Compressor / AGC version 3 monophonic |
A simple feedback based compressor. The compressor tries to maintain the set reference level as the output peak or RMS value, To do so it can reduce it's internal gain as much as needed, or it can add gain to a maximum of the set gain. When the gain is set higher the knee will become more pronounced as well. The response times can be set with the A (Attack) and R (Release) controls. In RMS mode the Attack control also controls the RMS averaging time. A DC blocker was implemented for the control chain, the signal path itself is not DC blocked. The cuttoff frequency for the DC blocker is approximately 20 ~ 40 Hz (depending on sample rate). When side chaining is selected the compression will be calculated based on the side signal, and the calculated amplification still is applied to the input signals then. The side signal is treated internally in the same way as the signal chains are. The compessed side chain vaalue is available as a separate output. There also is another way to do side chaining, as the internal amplification factor is also available as an output. This is the env output, and it can be used with a multiplier to apply the compression to some other signal. |
Noise gate version 1 polyphonic |
A Noise Gate module. With the A and R controls you set the attack and release time, the detection is peak mode only. The Threshold control sets the signal level for the gate to open and close. Once the signal goes above the Threshold level the gate will open with the Attack curve, once it goes below the Threshold it will close with the Release curve. The ratio control sets the amount of the effect, totally to the right means that there is no gating and when set totally to the left the gate will be fully closed for signals below the threshold value. |
Bode frequency shifter version 1 polyphonic |
A Bode frequency shifter. This module shifts all partials of a sound over the same frequency distance, this altering the harmonic contents of a signal. This module can be used as a binaural beat generator. |
A basic FFT based vocoder version 1 monophonic |
A basic FFT based vocoder. The modulator input will usually be the Voice, the carrier input will then be the sound that gets the voice characteristics modulated over it. |
A frequency smearing tool version 1 monophonic |
An FFT based smearing module. It changes the phase of the incoming signal with a random amount. |
Terrain wave generator version 1 polyphonic [this module is RateSmart [1]] |
A wave terrain synthesis module. The X and Y inputs steer over a landscape, the height of that landscape is the module's output. There are some presets to select from (with prod = x * y):
|
Convoder - experiment version 1 monophonic |
Convoder ... an experiment really. This is a circular convolution module, what it basically just does is to add some smear to the input signals. |
Pitch changer module version 1 polyphonic |
A pitch shifter that is tunable to precise note shifts. The delay length can be set longer for better results, but it will then delay the input signal more - so this is a compromise setting. |
Stereo widener module version 1 polyphonic |
A stereo widener. The module works by adding a controllable amount of -L to R and -R to L. The amount can be modulated. A delay is implemented on the left channel only, duration and amount can be set and modulated. Modulating the delay length will result in a flanging effect. The modulation inputs are multiplied with the knob controls, so you'd set a maximum value with a knob and then modulate between zero and the set maximum with a modulation going from zero to 1. Unconnected modulation inputs assume the value 1. Inversion and delay amounts can be modulated with negative values, the delay time modulation can use positive values only. |
stereo narrower version 1 polyphonic [this module is RateSmart [1]] |
A stereo narrower. Left and right inputs are summed and then mixed in a controllable amount with the stereo signal, giving more correlation between left and right signals, or a more mone result on two channels. This can also be used to investigate phase broblems betwwen the left and right channels, making the signal mono might suppress some sound in that case. |
Phase distortion version 1 polyphonic |
Phase distortion The input signal is fed into a (short) delay line, and the delay time is being modulated with a low pass filtered copy of the input signal. The modulation depth can be set and modulated by an external signal. In addition to the modulation from the filtered input signal The delay time can be modulated by an external signal as well. The filter Q can be set and it's cutoff frequency can be set and modulated. In stereo mode the modulation is applied normally on one channel and inversed on the other channel. |
Cubic clipper version 1 polyphonic [this module is RateSmart [1]] |
A soft clipper with hysteresis. This module will add odd harmonics like a transformer or a tube amp will do. |
Cubic clipper, stereo version 1 polyphonic [this module is RateSmart [1]] |
A soft clipper with hysteresis. This module will add odd harmonics like a transformer or a tube amp will do. |
Cubic clipper with fixed settings version 1 polyphonic [this module is RateSmart [1]] |
A simple limiter with a preset level of soft clipping |
Cubic clipper with fixed settings version 1 polyphonic [this module is RateSmart [1]] |
A simple limiter with a preset level of soft clipping |
A phase splitter version 1 polyphonic |
A phase splitter module. This module will split its incoming signal into two outputs that are 90 degrees out of phase. It can be used for various audio effects, like for instance it is the base module for a Bode frequency shifter. |
Tropical mixer version 1 polyphonic [this module is RateSmart [1]] |
A Tropical Mixer module. What it does is mathematically simple … it computes the minimum and maximum of some values. The values are made from an input value summed with a constant value and a modulation input. This is an idea obtained from the Tropical Mixer module as implemented in GleetchLab, which seems to have got it's idea from Nozoid's Tropical Additive Synthesis, which then in turn is based on Tropical Algebra. Basically that is equivalent to what is also called an Analog And function where values are being added to the inputs before the minimum is being calculated. In this case the values are slider positions, added to a modulation input (which have a value of 0.0 when nothing is connected to them). In addition to the minimum value (tropical) the maximum value (polar) is being calculated as well (as this module is an expansion of the AnalogAndOr module). To make it do Tropical Additive Synhesis you can use a sine oscillator followed by a ChebGen (wave rate multiplier) module, feeding the outputs of the oscillator and the ChebGen into the ins of this module, and then fiddle with the sliders and modulations. With the AC/DC switch AC blocking on the output signals can be turned on or off. The mode can be either tropical or sub-tropical, tropical being the min/max of the sums and sub-tropical being the min/max of the products. When the mode is sub-tropical the mods inputs will default to 1.0 and in the tropical mode to 0.0. All ins support the special NOT_CONNECTED status, the mods do not. |
Mono equalizer version 1 polyphonic |
A mono equalizer All gain parameters go from -15dB to +15dB. The bandwidth parameters go from 0.2 to 5.0, this is a factor on the set frequency. The low-mid frequency ranges from about 75Hz to 2kHz, the high mid range is from about 350Hz to 8kHz. There is a fixed high pass rumble filter set at 20Hz. Followed by a low shelving filter set fixed to 80Hz, with variable gain. Followed by a low-mid peak filter with variable frequency, gain and bandwidth. Followed by a high-mid peak filter with variable frequency, gain and bandwidth. Followed by a high shelving filter with a fixed frequency of 10kHz and a variable gain. Followed by an overall gain control. |
Stereo equalizer version 1 polyphonic |
A stereo equalizer All gain parameters go from -15dB to +15dB. The bandwidth parameters go from 0.2 to 5.0, this is a factor on the set frequency. The low-mid frequency ranges from about 75Hz to 2kHz, the high mid range is from about 350Hz to 8kHz. There is a fixed high pass rumble filter set at 20Hz. Followed by a low shelving filter set fixed to 80Hz, with variable gain. Followed by a low-mid peak filter with variable frequency, gain and bandwidth. Followed by a high-mid peak filter with variable frequency, gain and bandwidth. Followed by a high shelving filter with a fixed frequency of 10kHz and a variable gain. Followed by an overall gain control. |
Wave folder, wave shaping version 1 polyphonic [this module is RateSmart [1]] |
A wave folder module. This module implements a Serge / Ken Stone / Buchla like wave folder using a chain of 4 Lockhart wave folders. The module is anit-aliased using a first order antiderivative method. The shape is determined by the three controls, R, Gain and Offset. These are all mupltiplied by a modulation input that is set to 1.0 when it is not connected. The module can lockup for high settings of gain and/or R. |
Variable length delay version 1 polyphonic |
A delay module with a delay duration which can be set from 100 µs to 5 minutes - in six separate ranges. There is a fixed delay output that will have the delay time as set by the knob. The other output is modulated by the dly input, the delay time being zero when the dly input is zero and the delay time being the set maximum delay when the dly input has a value of 1. The in input provides the audio signal to be delayed. The freeze input fades between the fixed output and the input, when zero the delay line records just the in signal and when one it records just the fixed output. This module is not fully polyphonic, the delay line is shared between the voices but there are multiple taps for the output signal. |
Variable length poly delay version 1 polyphonic |
A delay module with a delay duration which can be set from 100 µs to 1 minute - in five separate ranges. There is a fixed delay output that will have the delay time as set by the knob. The other output is modulated by the dly input, the delay time being zero when the dly input is zero and the delay time being the set maximum delay when the dly input has a value of 1. The in input provides the audio signal to be delayed. The freeze input fades between the fixed output and the input, when zero the delay line records just the in signal and when one it records just the fixed output. This module is fully polyphonic, each voice has it's own delay line. |
Variable length mixing delay version 1 polyphonic |
A delay module with a delay duration which can be set from 100 µs to 5 minutes - in six separate ranges. The delay time is modulated by the dly input, the delay time being zero when the dly input is zero or negative and the delay time being the set maximum delay when the dly input has a value of 1 or more. The in input provides the audio signal to be delayed. The mix knob sets the amount of undelayed signal to be mixed in, this can be modulated with the input left of it. This module is not fully polyphonic, the delay line is shared between the voices but there are multiple taps for the output signal. |
Variable length delay version 1 polyphonic |
A delay module with a delay duration which can be set from 100 µs to 5 minutes - in six separate ranges. There is a fixed delay output that will have the delay time as set by the knob. The other output is modulated by the dly input, the delay time being zero when the dly input is zero and the delay time being the set maximum delay when the dly input has a value of 1. The in input provides the audio signal to be delayed. This module is not fully polyphonic, the delay line is shared between the voices but there are multiple taps for the output signal. |
Modulatable delay version 1 polyphonic |
A delay module with a delay duration which can be set from 10 µs to 5 minutes - in three separate ranges. There is a fixed delay output that will have the delay time as set by the knob. The other output is modulated by the delay modulation and offset controls. The in input provides the audio signal to be delayed. |
A frequency tuned delay line version 1 polyphonic |
A tuned delay. This module provides a delay time inversely proportional to the set frequency, it can be used as a building block for KarplusStrong like osciallation but it has no internal feedback - this has to be patched externally. The freq input is an unattenuated FM input with exponenetial control. The FM input provides attentuated exponenetial frequency control. There is moduulatable frequency fine control for upping or downing the frequency by as much as 50 cents. The fb and in input are mixed with induvudula level control, the in input can be AM modulated on top of that. The mute button can silence the module. The comp control can shorten the delay line by whole steps for compensation of the delay of an external feedback circuit. The spd input allows for speed control, this is linear FM from zero to two times the set frequency. The interpolation mode can be set to linear or all-pass. |
Clocked delay version 1 monophonic [this module is RateSmart [1]] |
A clocked delay module with a length which can be set from 1 to 512 samples. This works like a bucket brigade delay, or like a chain of sample and holds. There is one fixed output that will have the sample delay as set by the knob. The in input provides the audio signal to be delayed On every rising clock edge the input is sampled and stored into the delay line, the oldest sample present in the delay line will then be sent to the output. |
Eight tap variable length delay version 1 polyphonic |
A delay module with a delay duration which can be set from 100 µs to 5 minutes - in six separate ranges. There is a fixed output which will have the delay time as set by the knob. There are 8 variable delay outputs modulated by the dly inputs, the delay time being zero when the dly input is zero and the delay time being the set maximum delay when the dly input has a value of 1. The in input provides the audio signal to be delayed. This module is not fully polyphonic, the delay line is shared between the voices but there are multiple taps for the output signal. |
A random granulator version 1 monophonic |
A granulation module. This module is delay line based. The input signal stored onto the delay line and the grains take their signal from it. There is some record control through the rec / off control and when recording is off the delay line signal is being looped. When it is on the input left of it morphs between recording and recycling. Inter ons. controls the time between grain starts. Duration controls the length of a grain, vol the amplitude and pan the stereo panning. The grain playback speed is set trough the grain speed input, this input will clip at 0.0001 (where a grain would be slowed down by a factor of 10,000) on the low side, it is not being clipped on the high side. Grain offset sets te offset of the grain in the sample buffer. Once a grain is started all of it's parameters are set, and they do not change during the grain's lifetime. The modulations for this module are random based; the interonset, duration, volume and pan are chosen randomly with an amount as set by the modulation signals and controls. Otherwise it is the same as the Granulator module. With the rnd smoothness controls you can set the amount of smoothing to be used on the random signals. |
A granulator version 1 monophonic |
A granulation module. This module is delay line based. The input signal stored onto the delay line and the grains take their signal from it. There is some record control through the rec / off control and when recording is off the delay line signal is being looped. When it is on the input left of it morphs between recording and recycling. Inter ons. controls the time between grain starts. Duration controls the length of a grain, vol the amplitude and pan the stereo panning. The grain playback speed is set trough the grain speed input, this input will clip at 0.0001 (where a grain would be slowed down by a factor of 10,000) on the low side, it is not being clipped on the high side. Grain offset sets the startpoint of th egrain in the delay line. Once a grain is started all of it's parameters are set, and they do not change during the grain's lifetime. |
A simple granulator version 1 monophonic |
A granulation module. This module is delay line based. The input signal stored onto the delay line and the grains take their signal from it. There is some record control through the rec / off control and when recording is off the delay line signal is being looped. When it is on the input left of it morphs between recording and recycling. Inter ons. controls the time between grain starts. Duration controls the length of a grain, vol the amplitude and pan the stereo panning. The grain playback speed is set trough the grain speed input, this input will clip at 0.01 (where a grain would be slowed down by a factor of 100) on the low side, it is not being clipped on the high side. Grain offset sets the grain;s start position in the delay line. Once a grain is started all of it's parameters are set, and they do not change during the grain's lifetime. |
Grained delay version 1 polyphonic |
A graining delay module. This module is based on a delay line. The number of grains can be set from 1 to 4 and these are repeating grains. The repeat rate is being set by the frequency controls. When there is more than one grain the grains will overlap due to pahse shift to them being set. The pahse shift is one divided by the grain duration - this will cause the envelopes to overlap (in the case of two grains and a bell envolope set to maximum duration this will mean that the effective envelope will be flat). When a new particle starts the control inputs will be sampled to determine how that specific particle will behave, and once set this will not change during the particle's life time. Different envelope types can be selected. The length of the delay line can be set from 10 micro seconds to 5 minutes, in three ranges (output generation may be delayed quite a bit for long delay settings). Each particle has:
The module has a dly output which will privide the set delay time on the input signal - it can be used for looping with some extra modules added. |
16 out clocked delay version 1 polyphonic [this module is RateSmart [1]] |
A 16 stage clocked delay, or an analog shift register. In clocked mode on each up going clock out15 will get the out14 value ... etc. and finally out0 will get the current input value. In fast mode it does the same thing, but it ignores the input clock and instead it shifts on every 'execution clock' (which can be control rate or audio rate, depending on the connected signal speeds). This module can be used as a digital shift register as well when a digital valued input signal is being used. |
All pass filter version 1 polyphonic |
An all-pass filter. An all pass filter passes all frequencies with zero attenuation, but it will change the signal phase in a frequency dependent way. The delay length can be set with with the length parameter. This is in samples, and so the actual time will depend on the current sample rate. The feedback factor fb is used to trim the frequency at which the the phase shift is halfway. The factor fb can be modulated but the resulting value always has to be in the range [-1,1]. The LEDs indicates internal clipping of the modulation signal, e.g. it is going outside the range [-1,1]. This unit can be used for several purposes. The phase smearing can be used to reduce peak amplitudes for impulse like signals, helping to avoid clipping. When k is being modulated there will be a phase distortion varying with time, resulting in signal warble or in FM like effects for higher modulation rates and longer lengths. |
Simple looper version 1 polyphonic |
A simple looper module A maximum recording duration can be set, the start end end point settings determine the fraction of that to be actually used. There is some record control through the rec / off control and when recording is off the delay line signal is being recirculated. When it is on the input under of it morphs between recording and recirculation. Playback speed is set with the speed controls. |
Simple stereo looper version 1 polyphonic |
A simple stereo looper module A maximum recording duration can be set, the start end end point settings determine the fraction of that to be actually used. There is some record control through the rec / off control and when recording is off the delay line signal is being recirculated. When it is on the input under of it morphs between recording and recirculation. Playback speed is set with the speed controls. |
Patch audio output version 1 polyphonic Notes about polyphony: Voices are summed before recording, only the delay modulation is polyphonic. |
Recorder A 1 to 8 channel audo recorder that can write it's recording to a wave file on disk. The tape length can be set from 1 to 30 minutes and when the tape is full recording will continue writing over old material. The record control starts or stops recording, the write control starts a disk write (for which a file has to be selected before) and the clear control will erase the tape. Write, clear and record can be controlled by the buttons as well as by logic input signals. The record output is active when recording is OFF, such that when it is connected to the clear and write inputs the wave gets saved and cleared when recording is stopped. The full output goes active when the tape loop is fully recorded, such that when connected to the clear and write inputs the wave gets saved when the loop is full. The eight audio outputs will output the input signal with a delay time set by the delay controls and the delay modulation input, as if it were a tape montoring signal. In the file name %patchname% can be used, this will be replaced by the name of the patch. When you patch is C:\wren\patches\silly-putty.wren the patch name will be silly-putty, then when you set the file name to save the wave to as C:\wren\recordings\cc-%patchname%.wav the wave data will be written to the file C:\wren\recordings\cc-silly-putty.wav. When 'time stamped' is being selected the file name will be prefixed by a time stamp. When 'normalized' is selected the wave data will be normalized before it is being written out to the file. When the file name is clear, the box will show 'Ctrl click to select a file' in that case data will not be written to disk at all, in this case the module can be used as an 8 channel delay module with modulatable delay time (for instance to make eight channel flanging). Note that when record is not active the eight ouputs will not have any signal. Longest recording times possible are:
|
Pluck controller version 1 polyphonic |
Pluck controller. This module processes an excitation signal to be used for the Pluck and KS (Karplus-Strong) modules. It works by sending the input signal trough a tuned comb filter. The shift controls manipulate the point where the Pluck signal will be struck by the excitation. The Mix controls set the mixing between the input signal and the comb filtered version. The color and Q controls manipulate a low-pass filter that is applied to the signal. For it to work as intended the frequency knob and control input should have the same value as the connected Pluck or KS module. The module can also be used as a stand alone comb filter with added coloration. The coloration filter is a 12dB resonating low-pass filter. The coloration filter is being applied before the comb filtering. |
LPC speech module version 1 monophonic |
An LPC speech module. The module will load a vocabulary of words from a file words.lpc that is looked for in the WREN executable folder. When this file was not found the module will not work. There can be an unlimited amount of banks. A low to high signal on the start input will speak the word selected by the phrase input, when done the rdy output will go active. The phrase input iterates over all phrases in the selected bank when the value goes from zero to one. This module is based on the code found at https://github.com/going-digital/Talkie The frame rate can be used to control the speed of speech, the sample rate can be used to control it's pitch. |
Tiny Speech Synth version 1 polyphonic Notes about polyphony: The pos, speed and fm controls are polyphonic. |
Tiny Speech Synth. A very rudimentary phoneme speaker. Phonemes are : a, b, d, e, E, f, g, h, i, j, k, l, m, n, o, p, r, s, S, t, T, u, v, w, z, Z. WebRef: http://www.pouet.net/prod.php?which=50530 Original code was created by : Stepanov Andrey, 2008. This module converts a phoneme sequence to an itnernal Wave representation which can then be played back under control of the pos speed and fm parameters. This module follows the original code closely. This module can use input from a file by typing : file:fillename or file:fillename regular-expression The last non-empty line of the file will be read (or an error message will be returned) and that line will be filtered with the optional regular expression. When the regular expression contains a group named 'result' that will be the matched bit from that last line. Example:
|
Tiny song synth version 1 monophonic |
Tiny song synth. A very rudimentary phoneme speaker. Phonemes are : a, b, d, e, E, f, g, h, i, j, k, l, m, n, o, p, r, s, S, t, T, u, v, w, z, Z. WebRef: http://www.pouet.net/prod.php?which=50530 Original code was created by : Stepanov Andrey, 2008. This module adds some features to the Tiny Speech Synth. It has phase and frequency control on the glottal oscillator for which two wave forms can be selected, a saw shaped and a pulse shaped wave. The amount of noise (whisper) added can be controlled as well. There is speed control for the phoneme rate. A couple of outputs are provided that send trigger pulses for text start, phoneme strt, silence start, vowel start. These can be used to control external modules (like sync pitch changes to vowel starts for instance). The text end output will go active when there are no phonemes left to be spoken. There is a reset input, after reset the module will speak it's text once - unless it is set to loop. The FI control (left of the frequency display) can be used to change the filter, in the FI position it is smoother on consonants. This module can use input from a file by typing : file:fillename or file:fillename regular-expression The last non-empty line of the file will be read (or an error message will be returned) and that line will be filtered with the optional regular expression. When the regular expression contains a group named 'result' that will be the matched bit from that last line. Example:
|
SAPI Speech Synth version 1 polyphonic Notes about polyphony: The pos, speed and fm controls are polyphonic. |
A SAPI based speech module. This module uses the Windows Speech API, with the voices that happen to be installed for it. Additional voices can be installed for free, for example by installing eSpeak. For older windows versions it may be necessary to download and install the SAPI development kit, look for the SAPI 5.1 one. This module does not work in real-time, that is when changes are made to the text or the sample rate the speech will be compiled into wav format, and it is the resulting wav that can be manipulated in real-real time. Thos has some limots of course ... It is possible to use some speech markup in the text, for instance <rate speed="-10"/> to make it speak slower, more about this can be found in the SAPI documentation. This is a pretty bare bones module, with just a position, a speed and a frequency control input. This module can use input from a file by typing : file:fillename or file:fillename regular-expression The last non-empty line of the file will be read (or an error message will be returned) and that line will be filtered with the optional regular expression. When the regular expression contains a group named 'result' that will be the matched bit from that last line. Example:
|
eSpeak Speech Synth version 1 monophonic |
An sSpeak based speech module. This module uses the eSpeak voices (and not the windows voices) by using the espeak-sapi.dll. ESpeak must be installed for this to work and the espeak-sapi.dll must be findable trough the path environment variable (it can be put into the wren application folder). This module more or less re-implements the song module, with better speech quality. The module is non-real-time, on any text changes or on any parameter changes that would alter the speech generation new wave data is being compiled, it will keep the positions of speech events though. This also means that the module is somewhat slow when used with a lot of text. This module has position, speed and frequency modulation inputs. A cents control is provided too (the eSpeak voices seem to be tuned pretty arbitrarlily). Several outputs are present which signal silence, vowel, phoneme, word or sentence occurance. Also it is possible to put some special marks into the text {!} and {!<foat-value>} ({!-.123}) for instance. Values will be output on the user output, and all mark types will generate a short pulse on the mark output. This module can use input from a file by typing : file:fillename or file:fillename regular-expression The last non-empty line of the file will be read (or an error message will be returned) and that line will be filtered with the optional regular expression. When the regular expression contains a group named 'result' that will be the matched bit from that last line. Example:
|
VOSIM version 1 polyphonic |
A VOSIM generator. An audio rate triggered sine wave oscillator with added noise (whisper). The Formant controls provide exponential frequency control. The number of sine pulses to play can be set, and the decay to apply on each pulse as well. An AM control input is present for amplitude control. http://bagger288.com/goldenmaster/vosim-synthesis-for-the-masses/ http://quod.lib.umich.edu/cgi/p/pod/dod-idx/midim-system.pdf?c=icmc;idno=bbp2372.1983.019 |
A formant / vowel filter version 1 polyphonic |
A formant / vocal filter, the input controls move through the vowels A E U I O |
A formant / vowel filter version 1 polyphonic |
A formant / vocal filter. The formants to be used are loaded from the file wren.formants in the Wren executable folder, so they can be user defined. |
1 unit blind panel version 1 polyphonic |
This module does nothing except that it occupies some space in the patch |
2 unit blind panel version 1 polyphonic |
This module does nothing except that it occupies some space in the patch |
3 unit blind panel version 1 polyphonic |
This module does nothing except that it occupies some space in the patch |
4 unit blind panel version 1 polyphonic |
This module does nothing except that it occupies some space in the patch |
5 unit blind panel version 1 polyphonic |
This module does nothing except that it occupies some space in the patch |
Value indicator version 1 polyphonic Notes about polyphony: This module listens to the selected voice only. |
A value indicator. This module shows the value present on it's input terminal. The value can be shown in either dB or units. |
Counter display version 1 polyphonic Notes about polyphony: This module listens to the selected voice only. [this module is RateSmart [1]] |
A counter. This module shows the count of the upgoing signal edges it sees on it's count input. The res input, or the reset button will clear the count. Global reset will clear the count as well. |
Frequency counter display version 1 polyphonic Notes about polyphony: This module listens to the selected voice only. [this module is RateSmart [1]] |
A frequency counter. This module shows the frequency of the upgoing signal edges it sees on it's count input. The res input, or the reset button will clear the count. Global reset will clear the count as well. The time base can be set to 1 ms, 10 ms, 100 ms, 1 s or 10 s. |
Timer display version 1 monophonic Notes about polyphony: This module listens to the selected voice only. |
A frequency counter. This module shows the frequency of the upgoing signal edges it sees on it's count input. The res input, or the reset button will clear the count. Global reset will clear the count as well. The time base can be set to 1 ms, 10 ms, 100 ms, 1 s or 10 s. The time outputs have a values in the range 0 .. 1 d is mappang onto 0 .. 24h, h onto 0 .. 60m, m onto 0 .. 60s and s onto 0 .. 1000ms. |
VU meter display version 1 polyphonic Notes about polyphony: This module listens to the selected voice only. |
A VU meter module. The mode switch can set the module into abs or pos mode, where the abs mode takes the maximum of the absolute input values and the pos mode takes the maximum of positive signals only. For normal audio operation use abs mode. To monitor a logic signal pos mode can be used. The falloff time can be set by the slow / fast mode button. |
Patch comment version 1 polyphonic |
This module does nothing except that it occupies some space in the patch andit can be used to jot down some notes about the patch. |
XY oscilloscope version 1 polyphonic Notes about polyphony: This module listens on the selected voice only. |
An XY oscilloscope. The mode can be switched between regula xy and vector (or goniometer). With the lock option the X and Y attenuators can be made to act in tandem. The bar below the graph shows the X / Y correlation for both regular and vector mode. Left is -1, 0 in the middle and +1 for the right side. |
Oscilloscope version 1 polyphonic Notes about polyphony: This module listens on the selected voice only. |
An oscilloscope. The module listens to the selected voice only. The input signal is amplified by the level control. The time base can be set to various values, the values reflect the time for the full screen width (so not the usual time per division). For long time base values the update frequeency is low. The shortest time span that can be set is one point per sample, in this position the relation between signal rate and size on screen depends on the sample rate. Trigger mode can be set Level and Ext. In Level mode the trig level sets the level to be used for triggering and the input signal (before attenuation/amplification) is used for that. In Ext. mode the ext. tr. input is being used, this is a digital input and the trigger level controls do not affect triggering on this input. Either an upgoing or a downgoing signal edge can be used to trigger on. The input can be AC or DC coupled, the default mode is DC. |
Oscilloscope version 1 polyphonic Notes about polyphony: This module listens on the selected voice only. |
A spectrum analyzer. The module listens to the selected voice only. The input signal is amplified by the level control. The module is FFT based and it uses 8192 points with a Blackman Nuttal window applied over it. The screen update rate depends on the selected sample rate (5.4 updates/s @ 44k1, 11.6 updates/s @ 96k. Vertical scale is 12dB/Division, horizontal scale as is indicated by the labels below it. |
X Y mouse pad control version 1 polyphonic Notes about polyphony: This module sends to all voices equally. |
X Y mouse control pad. Controls X and Y ouput simultaneously by dragging the mouse trough the pad control area. The standard LFO output types are available to select from. |
X Y mouse pad control version 1 polyphonic Notes about polyphony: This module sends to all voices equally. |
Spiral mouse control pad. Per spiral winding of mouse movement a settable amount of note steps is added. Along the positive X axis the white places correspond with the steps. As this internally works with polar coordinates outputs for the angle (phi) and distance / radius (norm) were added as well. The len output represents the spiral length for the current (X,Y) location (from which the note output is calculated). So at least it doubles as a Polar sort of Pad module. |
Keyboard version 1 polyphonic |
A keyboard module. The module is mouse controlled. To get a note click on it, to freeze a note (or latch it) control click on it. The mouse over highlight is just for orientation and does not affect the sound. Whenever a note starts the trig output will go active, and it will stayh active for as long as the note is active. When multiple notes are active they are assigned to successive voices. On every incomoing arp pulse the note pattern will shift right for all voices, or left when the dir input is less than 0.5. This will make the module behave like an arpeggiator (with each voice being shifted as in a canon). The mix input is just added to the output value, it can be used for shifting the piches. |
Four knobs version 1 polyphonic |
Four larger knobs with comment flieds and selectable modes. |
Four switches version 1 polyphonic |
Four large on/off switches with comment fields. |
Four momentary switches version 1 polyphonic Notes about polyphony: This module sends to all voices equally. |
Four large momentary switches with comment fields. |
Tap rate detector version 1 polyphonic |
A tap rate detector. The control output can be used some different kind of controls. It can either control an LFO which is set to fast 0.254, medium 2:05 or BPM mode; a Delay set to 3s or 5 min, or it can control the ClockGen module's BPM value. The green tap input can be used to auto-tap the module from an LFO or from a ClockGen module. The rate multiplier controls the scaling applied to the control output, it will make controlled LFOs go faster or slower by some factor. The sync output is activated for 1 ms on each tap action and on each cycle, it can be used to sync an LFO (when the rate multiplier is set to a / mode (less than 1) an extra divider will be needed to not prematurely reset the LFO). The sync output can also be mannually triggered with the sync button. The slave in and output can be used to chain up several MidiClockIn, RateConverter or Tapper modules, the first one in the chain will be the master controlling all other Tappers. Other tappers can be set to different control modes to get LFOs and delays synced up properly at different rates. The P, X and slave inputs are polyphonic, and so is the control output. The tap input listens on the first voice only, the sync output fires on all voices simultaneously and the slave output is identical over all voices too. |
Patch comment written to file version 1 monophonic Notes about polyphony: This module listens on the first voice only. |
This module can write text to a text file. Each time the trig input goes active the next text line is sent to a selected file. I'm using it to update stream titles from, say, a poem. The file will also be written on patch reset or when the patch is loaded into the patch editor. When no trigger signals are generated the first line of text will be used as a static text. Note: writing to file will not work when the module is nested into a sub-patch (Abstraction module). |
Data recorder version 1 polyphonic Notes about polyphony: This module works on the selected voice only. |
Data Recorder An 8 channel data recorder that can write it's recording to a csv file on disk. The recording duration can be set from 1 to 5 minutes and when the memory is full recording will continue writing over old material. The record control starts or stops recording, the write control starts a disk write (for which a file has to be selected before) and the clear control will erase all data. Write, clear and record can be controlled by the buttons as well as by logic input signals. The rec on ouput is active when recording is on. The rec off output is active when recording is OFF, such that when it is connected to the clear and write inputs the wave gets saved and cleared when recording is stopped. The full output goes active when the tape loop is fully recorded, such that when connected to the clear and write inputs the wave gets saved when the loop is full. In the file name %patchname% can be used, this will be replaced by the name of the patch. When you patch is C:\wren\patches\silly-putty.wren the patch name will be silly-putty, then data will be written to the file C:\wren\recordings\cc-silly-putty.txt. When 'time stamped' is being selected the file name will be prefixed by a time stamp. When the file name is clear, the box will show 'Ctrl click to select a file' in that case data will not be written to disk at all, there will be no prompt for a file to save to. CSV files can be played by the CsvData module. |
mosc's ambiophonic processor version 1 monophonic Notes about polyphony: Strictly monophonic, the width modulation only works fronm the first voice; the inputs make a sum over all voices.. |
Mosc's ambiophonics module, or Mambi. See https://electro-music.com/form/topic-27871.html for Mosc's original idea. The delay maxes at about 320 us, the default delay setting of 0.25 makes the delay ab out 80us which is what the original uses. The delay length is interpolated with an all pass algorithm. The width parameter can be modulated, the modulation input is 1.0 when unconnected and it will be multiplied with the knob set value once connected. As the module is strictly monophonic, the width modulation only works on the first voice. The inputs are summed though over all voices and the ouputs are distributed over all voices. The balance modulation is a mono signal too, the first voice is being used. In contrast to width modulation for balance the modulation is being added to, and not multiplied by, the balance knob setting. |
Polyphonic voice splitter version 1 polyphonic [this module is RateSmart [1]] |
Polyphonic voice splitter. This module takes the voice values from it's input and sends those to it's outputs (on all voices). So voice one of the input ends up on output one, voice two on output two, etc. |
Polyphonic voice merger version 1 polyphonic [this module is RateSmart [1]] |
Polyphonic voice merger. This module takes the voice 1 value from all of it's inputs and sends those to voice 1, 2 .. etc. on it's output. |
Polyphonic voice summer version 1 polyphonic [this module is RateSmart [1]] |
Polyphonic voice summer. This module sums the values from all voices on it's input (unscaled) and outputs that sum to all voices on it's output. |
Polyphonic voice shifter version 1 polyphonic [this module is RateSmart [1]] |
Polyphonic voice shifter. This module takes it's input from a voice and outputs it to a shifted voice. For instance with a shift of one input from voice 1 will be output in voice 2. This works in a cyclic manner, so when polyphony is set to 4 the voice four values will end up in voice 1. |
Polyphonic voice selector version 1 polyphonic Notes about polyphony: This module listens on the selected voice only, a selection beyond the number of voices present outputs a zero result, output is sent only to the selected voice. [this module is RateSmart [1]] |
Polyphonic voice selector. This module outputs (on all it's voces) the input value it obtains from the selected voice. Can be used to select the output of a specific voice. |
Polyphonic voice selector version 1 polyphonic Notes about polyphony: This module listens on the selected voice only, a selection beyond the number of voices present outputs a zero result, output is sent only to the selected voice. [this module is RateSmart [1]] |
Polyphonic voice selector. This module outputs (on all it's voces) the input value it obtains from the selected voice. Can be used to select the output of a specific voice. |
Polyphonic voice number version 1 polyphonic [this module is RateSmart [1]] |
Polyphonic voice number. The module outputs the number of the current voice, can be used for instance to control a multiplexer which can then do voice specific trickery. The output voice number is polyphony relative. When there is one voice the output will be zero in the one voce there is, when there are two voices the output will be zero in voice 1 and 1 in voice 2. For three voices taht would be 0, 0.5 and 1, etc. |
Polyphonic voice number version 1 polyphonic [this module is RateSmart [1]] |
Polyphonic voice number. The module outputs the number of the current voice, can be used for instance to control a multiplexer which can then do voice specific trickery. The output voice number is polyphony relative. When there is one voice the output will be zero in the one voce there is, when there are two voices the output will be zero in voice 1 and 1 in voice 2. For three voices taht would be 0, 0.5 and 1, etc. |
Mono Poly switch version 1 polyphonic Notes about polyphony: Selection is from voice 1 and when mono input is from voice 1 as well\. [this module is RateSmart [1]] |
Mono to Poly switch When the input is active the module passes on the polyphonic input, when not active the first voice is selected. |
Multiple mono poly switches version 1 polyphonic Notes about polyphony: Selection is from voice 1 and when mono input is from voice 1 as well. [this module is RateSmart [1]] |
Polyphonic voice selector. This module outputs (on all it's voces) the input value it obtains from the selected voice. Can be used to select the output of a specific voice. |
Polyphonic voice viewer version 1 polyphonic [this module is RateSmart [1]] |
A polyphonic voice viewer. This module gives a per-voice indication of the activity on it's input. |
© COPYRIGHT 1999 - 2022 Blue Hell
See the web site for more information.
~ fin ~