WREN module documentation

Version : 2017.5.21.0

© COPYRIGHT 1999 - 2017 Blue Hell

Look here for more information.

to module index

1 AudioIn

Page: I/O [type 101]

AudioIn

Audio input module, connects physical audio inputs to the patch.

to module index

2 AudioOut

Page: I/O [type 102]

AudioOut

Audio output module, connects patch signals to the physical audio output.

The outputs can also be used to send data to the debug graph. To use this you must enable graphing in the debug screen [F5] (check 'Use Graphs' there), after that you can access the graphs screen with [F4]. Every input of the AudioOut module corresponds to one line in the graph.

The graphing tool is non real-time, you must stop audio generation to use it. When real time audio is stopped you can use 'Debug Step' and 'Debug Run' to start drawing graphs from the AudioOut module.

'Debug Reset' wil reset the patch and clear the graphs, 'Clear Graphs' will just clear the graphs without issuing a reset.

to module index

3 MidiNoteIn

Page: I/O [type 1301]

MidiNoteIn

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).

to module index

4 MidiMultiNoteIn

Page: I/O [type 1308]

MidiMultiNoteIn

This is a MIDI multi 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 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.

to module index

5 MidiCCIn

Page: I/O [type 1302]

MidiCCIn

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].

to module index

6 MidiNoteOut

Page: I/O [type 1303]

MidiNoteOut

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.

to module index

7 MidiCCOut

Page: I/O [type 1304]

MidiCCOut

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.

to module index

8 MidiPCOut

Page: I/O [type 1311]

MidiPCOut

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.

to module index

9 MidiPNOut

Page: I/O [type 1312]

MidiPNOut

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.

to module index

10 Sync

Page: I/O [type 1306]

Sync

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.

to module index

11 OscMessage

Page: I/O [type 1307]

OscMessage

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. An OSC address should be one single word without spaces and it should use standard ASCII characters only.

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).

to module index

12 LiveMorph

Page: I/O [type 1309]

LiveMorph

A controller for the LiveMorph function in the patch mutator.

to module index

13 Auto

Page: I/O [type 1310]

Auto

A controller to trigger auto-randomize, auto-mutate, auto-mate or auto-morph.

to module index

14 Osc

Page: OSC [type 501]

Osc

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 2 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.

to module index

15 Square

Page: OSC [type 502]

Square

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 2 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.

to module index

16 HrastOsc

Page: OSC [type 4001]

HrastOsc

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.

to module index

17 MultiOsc

Page: OSC [type 520]

MultiOsc

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 2 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.

to module index

18 ModOsc

Page: OSC [type 521]

ModOsc

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.

to module index

19 Noise

Page: OSC [type 503]

Noise

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.

to module index

20 Attractor

Page: OSC [type 511]

Attractor

An audio rate strange attractor module.

There are two modes of operation Lorentz and Rössler.

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.

Rössler 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.

to module index

21 KS

Page: OSC [type 509]

KS

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.

The Pluck control controls the amount of input signal (excitation).

The brightness control changes the frequency response of the feedback filter.

The feedback control controls the amount of feedback.

The mute button sets the output to zero when active

The 'interp.' selector allows selection between linear and all-pass interpolation modes, with a slightly different sound quality. All-pass does not work too well for fast changing control signals.

The module expects impulse like excitation input signals. Other signals work as well, but things may get very loud.

to module index

22 Pluck

Page: OSC [type 508]

Pluck

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.

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.

the noise stuff is a bit of a gimmick .. stumbled over it on the internet and decided to try it ... could be used for noise like percussive sounds maybe. The noise amount can be modulated.

to module index

23 WavePlayer

Page: OSC [type 702]

WavePlayer

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.

Double 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.

to module index

24 OscTrig

Page: OSC [type 504]

OscTrig

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 2 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.

to module index

25 SquareTrig

Page: OSC [type 505]

SquareTrig

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 2 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.

to module index

26 NoiseTrig

Page: OSC [type 506]

NoiseTrig

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

to module index

27 Talkie

Page: OSC [type 510]

Talkie

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.

to module index

28 TSS

Page: OSC [type 512]

TSS

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.

to module index

29 Song

Page: OSC [type 513]

Song

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.

to module index

30 Vosim

Page: OSC [type 514]

Vosim

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

to module index

31 PerlinNoise

Page: OSC [type 515]

PerlinNoise

An audio rate Perlin enerator.

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.

to module index

32 PerlinNoiseTrig

Page: OSC [type 516]

PerlinNoiseTrig

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.

to module index

33 PerlinTone

Page: OSC [type 517]

PerlinTone

An audio rate Perlin enerator.

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.

to module index

34 Phasor

Page: OSC [type 518]

Phasor

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.

to module index

35 AudioGraph

Page: OSC [type 519]

AudioGraph

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.

to module index

36 MultiSine

Page: OSC [type 522]

MultiSine

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.

to module index

37 Lfo

Page: LFO [type 401]

Lfo

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 2 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.

to module index

38 SquareLfo

Page: LFO [type 402]

SquareLfo

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 2 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.

to module index

39 SquareSineLfo

Page: LFO [type 413]

SquareSineLfo

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 2 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.

to module index

40 NoiseLfo

Page: LFO [type 403]

NoiseLfo

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:

to module index

41 RandSig

Page: LFO [type 408]

RandSig

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:

to module index

42 Pulses

Page: LFO [type 409]

Pulses

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:

to module index

43 RandomWalkLfo

Page: LFO [type 404]

RandomWalkLfo

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 L (linear) or E (Exponential). When set to E the Lamba control determines the jumpiness, a low value will jump more that a large one (the knob has an inverted scale).

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.

to module index

44 AttractorLfo

Page: LFO [type 410]

AttractorLfo

An LFO rate strange attractor module.

There are two modes of operation Lorentz and Rössler.

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.

Rössler 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:

to module index

45 Tod

Page: LFO [type 412]

Tod

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), second (s) and millisecond (ms) - these ar saw waves with periods of an hour, minute, second and millsecond respectively. The 24 hour output is labeled (d).

to module index

46 LfoTrig

Page: LFO [type 405]

LfoTrig

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 2 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.

to module index

47 SquareLfoTrig

Page: LFO [type 406]

SquareLfoTrig

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 2 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.

to module index

48 NoiseLfoTrig

Page: LFO [type 407]

NoiseLfoTrig

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:

to module index

49 ClockGen

Page: LFO [type 411]

ClockGen

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 2 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.

to module index

50 EnvAR

Page: Env [type 901]

EnvAR

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.

to module index

51 EnvARRetrig

Page: Env [type 902]

EnvARRetrig

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.

to module index

52 EnvAHD

Page: Env [type 903]

EnvAHD

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.

to module index

53 EnvADSR

Page: Env [type 904]

EnvADSR

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.

to module index

54 EnvControl

Page: Env [type 908]

EnvControl

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 nver occured. Fed back into the trigger input sustained self oscillation will take place.

to module index

55 Envelope

Page: Env [type 905]

Envelope

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 the will set that as the new ref level.

The module can be set to use RMS mode or peak level mode.

to module index

56 DCBlock

Page: Filter [type 1018]

DCBlock

[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).

to module index

57 Average

Page: Filter [type 1001]

Average

[this module is RateSmart [1]]

A moving average type of filter.

The knob controls the alpha parameter.

The LP output is calculated as:

  Delta           := Inp  - Outp;
  Outp            := Outp + FAlpha * Delta;
  FOutputs[ o_lp] := Normalize( Outp );
  FOutputs[ o_hp] := Normalize( Delta);

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.

to module index

58 Filter6dB

Page: Filter [type 1013]

Filter6dB

[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.

to module index

59 Filter6dBBP

Page: Filter [type 1014]

Filter6dBBP

[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.

to module index

60 Filter6dBBPS

Page: Filter [type 1015]

Filter6dBBPS

[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.

to module index

61 SVF

Page: Filter [type 1002]

SVF

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.

to module index

62 MoogFilter

Page: Filter [type 1017]

MoogFilter

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 void soft clipping on the output one can reduce the input level.

to module index

63 HrastSVF

Page: Filter [type 4002]

HrastSVF

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.

to module index

64 IntDif

Page: Filter [type 1003]

IntDif

[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.

to module index

65 Formant

Page: Filter [type 1004]

Formant

A formant / vocal filter, the input controls move through the vowels A E U I O

to module index

66 Formant2

Page: Filter [type 1012]

Formant2

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.

to module index

67 PinkFilter

Page: Filter [type 1005]

PinkFilter

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.

to module index

68 Resonator

Page: Filter [type 1006]

Resonator

A resonating filter

The filter expects impulse like input signals and then will create a damped oscillation from that.

to module index

69 TiltFilter

Page: Filter [type 1016]

TiltFilter

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.

http://www.musicdsp.org/showone.php?id=267

to module index

70 TritoneBank

Page: Filter [type 1007]

TritoneBank

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 28 Hz filter can be set into LowPass or BandPass mode.

The 7k2 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 6, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass and band reject modes. Each step up adds an extra filter layer in series - so a steepness of 6 adds up to 102 filters being used.

to module index

71 ThirdBank

Page: Filter [type 1008]

ThirdBank

A fixed third-ocatave (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 125 Hz filter can be set into LowPass or BandPass mode.

The 5k 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 6, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass and band reject modes. Each step up adds an extra filter layer in series - so a steepness of 6 adds up to 102 filters being used.

to module index

72 TritoneSplitter

Page: Filter [type 1009]

TritoneSplitter

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 28 Hz filter can be set into LowPass or BandPass mode.

The 7k2 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 6, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass and band reject modes. Each step up adds an extra filter layer in series - so a steepness of 6 adds up to 102 filters being used.

Each filter chain has a separate output.

A clipping indicator is provided on each output.

to module index

73 ThirdSplitter

Page: Filter [type 1010]

ThirdSplitter

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 125 Hz filter can be set into LowPass or BandPass mode.

The 5k 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 6, where 1 corresponds to a 12 dB filter in low or highpass modes, or a 6 dB filter in band pass and band reject modes. Each step up adds an extra filter layer in series - so a steepness of 6 adds up to 102 filters being used.

Each filter chain has a separate output.

A clipping indicator is provided on each output.

to module index

74 Modal

Page: Filter [type 1011]

Modal

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.

to module index

75 Filter6dBBPSM

Page: Filter [type 1019]

Filter6dBBPSM

[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.

to module index

76 SampleAndHold

Page: Switch [type 801]

SampleAndHold

[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.

to module index

77 TrackAndHold

Page: Switch [type 802]

TrackAndHold

[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.

to module index

78 Switch2to1

Page: Switch [type 803]

Switch2to1

[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).

to module index

79 MultiSAndH

Page: Switch [type 804]

MultiSAndH

[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.

to module index

80 Mux

Page: Switch [type 805]

Mux

[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.

to module index

81 Demux

Page: Switch [type 806]

Demux

[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.

to module index

82 DigiMux

Page: Switch [type 807]

DigiMux

[this module is RateSmart [1]]

A digitally controlled multiplexer

to module index

83 DigiDemux

Page: Switch [type 808]

DigiDemux

[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.

to module index

84 Volume

Page: Mix [type 212]

Volume

[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.

to module index

85 XFade

Page: Mix [type 201]

XFade

[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.

to module index

86 Pan

Page: Mix [type 202]

Pan

[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.

to module index

87 MixM3to1

Page: Mix [type 211]

MixM3to1

[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

to module index

88 MixM4to1

Page: Mix [type 203]

MixM4to1

[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

to module index

89 MixS2to1

Page: Mix [type 204]

MixS2to1

[this module is RateSmart [1]]

A Chainable 2 to 1 stereo mixer.

When a mute is active the module will zero the associated mix input

to module index

90 MixS5to1

Page: Mix [type 213]

MixS5to1

[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

to module index

91 MixT1to1

Page: Mix [type 206]

MixT1to1

[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

to module index

92 MixQ1to1

Page: Mix [type 208]

MixQ1to1

[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

to module index

93 MixM16to1

Page: Mix [type 209]

MixM16to1

[this module is RateSmart [1]]

A 16 channel mono mixer with output mute.

to module index

94 MixMM16to1

Page: Mix [type 210]

MixMM16to1

[this module is RateSmart [1]]

A 16 channel mono mixer with modulation control on each fader and output mute.

to module index

95 MixMS8to1

Page: Mix [type 214]

MixMS8to1

[this module is RateSmart [1]]

An 8 channel stereo mixer with modulation control amd mute on each fader.

to module index

96 MixM6to6

Page: Mix [type 205]

MixM6to6

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.

to module index

97 MixAudio

Page: Mix [type 207]

MixAudio

A chainable audio mixer with main and FX outputs and Solo and Mute functionallity.

to module index

98 MixQS2to1

Page: Mix [type 215]

MixQS2to1

[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.

to module index

99 MixQS1to1

Page: Mix [type 216]

MixQS1to1

[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.

to module index

100 QuadPan

Page: Mix [type 217]

QuadPan

[this module is RateSmart [1]]

Quad panner

Four panners in one module. The panning works with a square root panning law.

to module index

101 Scaler

Page: Control [type 306]

Scaler

[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.

to module index

102 PropScaler

Page: Control [type 355]

PropScaler

[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.

to module index

103 RangeConverter

Page: Control [type 322]

RangeConverter

[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.

to module index

104 ModControl

Page: Control [type 352]

ModControl

[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.

to module index

105 LevelConverter

Page: Control [type 329]

LevelConverter

[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]

to module index

106 TypeFlip

Page: Control [type 343]

TypeFlip

[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.

to module index

107 MixingScaler

Page: Control [type 338]

MixingScaler

[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.

to module index

108 Rotator

Page: Control [type 309]

Rotator

[this module is RateSmart [1]]

This module rotates it's input vector (in1,in2) over an angle 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.

to module index

109 Rectifier

Page: Control [type 310]

Rectifier

[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.

to module index

110 HardClip

Page: Control [type 317]

HardClip

[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.

to module index

111 FastToSlow

Page: Control [type 344]

FastToSlow

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).

to module index

112 Slew

Page: Control [type 337]

Slew

A slew rate limiter, or control rate low pass filter.

This module can be used to smooth jumps in a control voltage.

to module index

113 ChebGen

Page: Control [type 326]

ChebGen

[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.

to module index

114 SawMill

Page: Control [type 342]

SawMill

[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( N * ( in + 1), 2) - 1; where N, the multiplication factor, can be set and modulated.

For non saw inputs some other 'interesting stuff' will happen.

to module index

115 AmMod

Page: Control [type 351]

AmMod

[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 tht signal is internally converted to an unipolar signal for the AM part.

to module index

116 WaveWiper

Page: Control [type 324]

WaveWiper

[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.

to module index

117 WaveWrapper

Page: Control [type 325]

WaveWrapper

[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.

to module index

118 Wavolver

Page: Control [type 341]

Wavolver

[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.

to module index

119 AnalogXor

Page: Control [type 356]

AnalogXor

[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.

to module index

120 Shaper

Page: Control [type 354]

Shaper

[this module is RateSmart [1]]

A signal shaper

This module can transform a linear input signal into an envelope type output signal.

to module index

121 ZeroCounter

Page: Note [type 314]

ZeroCounter

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.

to module index

122 Scala

Page: Note [type 316]

Scala

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.

to module index

123 TransInv

Page: Note [type 318]

TransInv

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.

to module index

124 Transpose

Page: Note [type 353]

Transpose

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.

to module index

125 EuclideanScale

Page: Note [type 320]

EuclideanScale

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.

to module index

126 NoteToDelay

Page: Note [type 313]

NoteToDelay

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.

to module index

127 Quantizer

Page: Note [type 307]

Quantizer

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.

to module index

128 NoteQuantizer

Page: Note [type 328]

NoteQuantizer

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.

to module index

129 ScaleQuantizer

Page: Note [type 335]

ScaleQuantizer

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 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).

to module index

130 ModQuantizer

Page: Note [type 336]

ModQuantizer

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.

to module index

131 RandomScale

Page: Note [type 348]

RandomScale

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.

to module index

132 Inverter

Page: Math [type 302]

Inverter

[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.

to module index

133 Adder

Page: Math [type 303]

Adder

[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.

to module index

134 Multiplier

Page: Math [type 304]

Multiplier

[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.

to module index

135 MultiMult

Page: Math [type 312]

MultiMult

[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.

to module index

136 MultipleMult

Page: Math [type 334]

MultipleMult

[this module is RateSmart [1]]

Four 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.

to module index

137 Amplifier

Page: Math [type 305]

Amplifier

[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.

to module index

138 MinMax

Page: Math [type 311]

MinMax

[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.

to module index

139 Median

Page: Math [type 315]

Median

[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.

to module index

140 Reciprocal

Page: Math [type 330]

Reciprocal

[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.

to module index

141 Divide

Page: Math [type 331]

Divide

[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.

to module index

142 Ratio

Page: Math [type 308]

Ratio

[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.

to module index

143 Constant

Page: Math [type 301]

Constant

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.

to module index

144 MConst

Page: Math [type 346]

MConst

Select a constant value.

Some more or less often used mathematical constants.

to module index

145 Monadic

Page: Math [type 332]

Monadic

[this module is RateSmart [1]]

Calculates a selectable function of X

Invalid X values will lead to an output value of 0, otherwise the function is being calculated with the result being clipped to the interval -1000 to +1000

to module index

146 Dyadic

Page: Math [type 333]

Dyadic

[this module is RateSmart [1]]

Calculates a selectable function of X and Y.

Invalid X,Y value combinations will lead to an output value of X, otherwise the function is being calculated with the result being clipped to the interval -1000 to +1000

to module index

147 RMS

Page: Math [type 339]

RMS

[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.

to module index

148 Polar

Page: Math [type 345]

Polar

[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.

to module index

149 Rectangular

Page: Math [type 347]

Rectangular

[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.

to module index

150 Not

Page: Logic [type 601]

Not

[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.

to module index

151 Gate

Page: Logic [type 602]

Gate

[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:

 A B C D   AND   NAND   OR   NOR   XOR   XNOR   ONE   NONE

 0 0 0 0    0      1     0    1     0      1     0      1
 0 0 0 1    0      1     1    0     1      0     1      0
 0 0 1 0    0      1     1    0     1      0     1      0
 0 0 1 1    0      1     1    0     0      1     0      1

 0 1 0 0    0      1     1    0     1      0     1      0
 0 1 0 1    0      1     1    0     0      1     0      1
 0 1 1 0    0      1     1    0     0      1     0      1
 0 1 1 1    0      1     1    0     1      0     0      1

 1 0 0 0    0      1     1    0     1      0     1      0
 1 0 0 1    0      1     1    0     0      1     0      1
 1 0 1 0    0      1     1    0     0      1     0      1
 1 0 1 1    0      1     1    0     1      0     0      1

 1 1 0 0    0      1     1    0     0      1     0      1
 1 1 0 1    0      1     1    0     1      0     0      1
 1 1 1 0    0      1     1    0     1      0     0      1
 1 1 1 1    1      0     1    0     0      1     0      1
to module index

152 Divider

Page: Logic [type 603]

Divider

[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.

to module index

153 FixedDiv

Page: Logic [type 616]

FixedDiv

[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.

to module index

154 PrimeDiv

Page: Logic [type 618]

PrimeDiv

[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.

to module index

155 DFlipFlop

Page: Logic [type 604]

DFlipFlop

[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.

to module index

156 RSFlipFlop

Page: Logic [type 605]

RSFlipFlop

[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.

to module index

157 PulseSync

Page: Logic [type 617]

PulseSync

[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.

to module index

158 Counter

Page: Logic [type 606]

Counter

[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.

to module index

159 ADC

Page: Logic [type 607]

ADC

[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.

to module index

160 DAC

Page: Logic [type 608]

DAC

[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.

to module index

161 PhaseDetect

Page: Logic [type 609]

PhaseDetect

[this module is RateSmart [1]]

Phase detector, a building block for a digital Phase Locked Look. 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.

to module index

162 Compare

Page: Logic [type 610]

Compare

[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).

to module index

163 LogicSelector

Page: Logic [type 611]

LogicSelector

[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.

to module index

164 ProgDivider

Page: Logic [type 612]

ProgDivider

[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.

to module index

165 MultiCompare

Page: Logic [type 613]

MultiCompare

[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.

to module index

166 PulseDelay

Page: Logic [type 614]

PulseDelay

[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.

to module index

167 PulseSkip

Page: Logic [type 619]

PulseSkip

[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.

to module index

168 Rungler

Page: Logic [type 615]

Rungler

[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

to module index

169 Sequencer

Page: Seq [type 1201]

Sequencer

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.

to module index

170 TextSequencer

Page: Seq [type 1202]

TextSequencer

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 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

Control click on the display to get into the editor window where notes or values can be added (separated by commas).

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.

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 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 '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.

to module index

171 SeqStep

Page: Seq [type 1203]

SeqStep

[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.

to module index

172 SeqClockStep

Page: Seq [type 1204]

SeqClockStep

[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.

to module index

173 EuclideanRhythm

Page: Seq [type 1205]

EuclideanRhythm

[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.

to module index

174 CsvData

Page: Seq [type 1206]

CsvData

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).

to module index

175 KleeBit

Page: Seq [type 1207]

KleeBit

8 bit part of a Klee Sequencer.

Parts can be chained to form a 16 bit or longer Klee like sequencer.

to module index

176 SeqRandom

Page: Seq [type 1208]

SeqRandom

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.

to module index

177 SeqRandVal

Page: Seq [type 1217]

SeqRandVal

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.

to module index

178 Morse

Page: Seq [type 1209]

Morse

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.

to module index

179 GateSeq

Page: Seq [type 1210]

GateSeq

[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.

to module index

180 Seq16

Page: Seq [type 1211]

Seq16

[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 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.

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 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.

to module index

181 SeqSeq

Page: Seq [type 1212]

SeqSeq

[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.

to module index

182 Pattern

Page: Seq [type 1213]

Pattern

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.

to module index

183 MidiPlayer

Page: Seq [type 1305]

MidiPlayer

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.

to module index

184 LUT

Page: Seq [type 1215]

LUT

[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 unput going from zero to one.

to module index

185 SeqChord

Page: Seq [type 1216]

SeqChord

A chainable chord sequencer.

to module index

186 ProbSequencer

Page: Seq [type 1214]

ProbSequencer

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.

to module index

187 SeqPattern

Page: Seq [type 1223]

SeqPattern

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.

to module index

188 SeqValues

Page: Seq [type 1224]

SeqValues

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.

to module index

189 LogisticMap

Page: Gen [type 323]

LogisticMap

[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.

to module index

190 Poetry

Page: Gen [type 327]

Poetry

[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.

to module index

191 Arpeggiator

Page: Gen [type 349]

Arpeggiator

[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.

to module index

192 Markov

Page: Gen [type 350]

Markov

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.

to module index

193 Rewriter

Page: Gen [type 1218]

Rewriter

[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.

to module index

194 RewriterNote

Page: Gen [type 1219]

RewriterNote

[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.

to module index

195 TuneSmithy

Page: Gen [type 1220]

TuneSmithy

[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.

to module index

196 CellAut

Page: Gen [type 1221]

CellAut

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.

to module index

197 LifeSeq

Page: Gen [type 1222]

LifeSeq

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.

to module index

198 Reverb

Page: FX [type 703]

Reverb

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.

to module index

199 GVerb

Page: FX [type 707]

GVerb

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:

  1. original FDN matrix and rounded delay line lengths
  2. original FDN matrix and delay lengths relatively prime
  3. alternate FDN matrix and rounded delay line lengths
  4. alternate FDN matrix and delay lengths relatively prime
to module index

200 FlangeChorus

Page: FX [type 704]

FlangeChorus

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.

to module index

201 PitchChange

Page: FX [type 705]

PitchChange

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.

to module index

202 Compressor

Page: FX [type 906]

Compressor

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.

to module index

203 FreqShifter

Page: FX [type 1401]

FreqShifter

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.

to module index

204 Vocoder

Page: FX [type 907]

Vocoder

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.

to module index

205 TerraGen

Page: FX [type 507]

TerraGen

[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):

off out := 0;
inx out := x;
iny out := y;
xy out := prod;
curtis roads out := ( x - y) * ( x - 1) * ( x + 1) * ( y - 1) * ( y + 1);
bass out := Sqrt( Abs( x * x * x * x + y * y * y * y * y - x * x - y * y - x * prod * y));
lead1 out := ( x - x * x * x / 12 - y * y / 4 + 0.5);
hollow lead out := ( -5 * x / ( x * x + y * y + 1));
pulsar out := Sqr( Sin( x * x + y * y));
flat growl out := Sqrt( Abs( ( 1 - x * x) * (( 1 - y) + y * cos( 1 / ( x * x + 0.01))))) - 1;
atan out := ArcTan( 15 * prod) / HALF_PI;
softclip out := prod / 1 + Abs( prod);
third out := 1.5 * prod + 0.5 * prod * prod * prod;
chebyshev2 out := 2 * prod * prod - 1;
chebyshev3 out := ( 4 * prod * prod - 3) * prod;
chebyshev4 out := ( 8 * prod * prod - 8) * prod * prod + 1;
chebyshev5 out := (( 16 * prod * prod - 20) * prod * prod + 5) * prod;
chebyshev6 out := (( 32 * prod * prod - 48) * prod * prod + 18) * prod * prod - 1;
chebyshev7 out := ((( 64 * prod * prod - 112) * prod * prod + 56) * prod * prod - 7) * prod;

to module index

206 Convoder

Page: FX [type 909]

Convoder

Convoder ... an experiment really.

This is a circular convolution module, what it basically just does is to add some smear to the input signals.

to module index

207 PitchShift

Page: FX [type 910]

PitchShift

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.

to module index

208 StereoWiden

Page: FX [type 912]

StereoWiden

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.

to module index

209 PhaseDistortion

Page: FX [type 913]

PhaseDistortion

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.

to module index

210 CubicClip

Page: FX [type 340]

CubicClip

[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.

to module index

211 Delay

Page: Delay [type 701]

Delay

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 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.

to module index

212 ClockedDelay

Page: Delay [type 706]

ClockedDelay

[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.

to module index

213 Delay8

Page: Delay [type 708]

Delay8

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 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.

to module index

214 RndGranulator

Page: Delay [type 709]

RndGranulator

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 dly mod 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.

Once a grain is started all of it's parameters are set, and they do not change during the grain's lifetime.

to module index

215 Granulator

Page: Delay [type 710]

Granulator

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 dly mod 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.

Once a grain is started all of it's parameters are set, and they do not change during the grain's lifetime.

to module index

216 SimpleGranulator

Page: Delay [type 711]

SimpleGranulator

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 dly mod 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.

Once a grain is started all of it's parameters are set, and they do not change during the grain's lifetime.

to module index

217 ClockedDelay16

Page: Delay [type 712]

ClockedDelay16

[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.

to module index

218 AllPass

Page: Delay [type 713]

AllPass

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.

to module index

219 Looper

Page: Delay [type 714]

Looper

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.

to module index

220 StereoLooper

Page: Delay [type 715]

StereoLooper

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.

to module index

221 Panel1

Page: Utility [type 1101]

Panel1

This module does nothing except that it occupies some space in the patch

to module index

222 Panel2

Page: Utility [type 1102]

Panel2

This module does nothing except that it occupies some space in the patch

to module index

223 Panel3

Page: Utility [type 1103]

Panel3

This module does nothing except that it occupies some space in the patch

to module index

224 Panel4

Page: Utility [type 1104]

Panel4

This module does nothing except that it occupies some space in the patch

to module index

225 Panel5

Page: Utility [type 1105]

Panel5

This module does nothing except that it occupies some space in the patch

to module index

226 Value

Page: Utility [type 1112]

Value

A value indicator.

This module shows the value present on it's input terminal. The value can be shown in either dB or units.

to module index

227 Count

Page: Utility [type 1114]

Count

[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.

to module index

228 FreqCount

Page: Utility [type 1116]

FreqCount

[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.

to module index

229 Display

Page: Utility [type 1106]

Display

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.

to module index

230 Notes

Page: Utility [type 1107]

Notes

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.

to module index

231 XYScope

Page: Utility [type 1108]

XYScope

An XY oscilloscope.

to module index

232 Pad

Page: Utility [type 319]

Pad

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.

to module index

233 Spiral

Page: Utility [type 321]

Spiral

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.

to module index

234 Knobs4

Page: Utility [type 1109]

Knobs4

Four larger knobs with comment flieds and selectable modes.

to module index

235 Switches4

Page: Utility [type 1110]

Switches4

Four large on/off switches with comment fields.

to module index

236 Buttons4

Page: Utility [type 1111]

Buttons4

Four large momentary switches with comment fields.

to module index

237 Tapper

Page: Utility [type 1113]

Tapper

A tap rate detector.

The speed output can be used some different kind of controls. It can either control an LFO which is set to 2:05, a Delay set to 3s or 5 min, or it can control the ClockGen module BPM value.

The pulse output is activated for 1 ms on each tap action, it can be used to sync an LFO.

to module index

238 DataGraph

Page: Utility [type 1115]

DataGraph

[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.

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.

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.

to module index

239 TextWriter

Page: Utility [type 1117]

TextWriter

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.



[1] A RateSmart module will change it's calculation rate from control rate to audio rate when it gets connected to an audio rate output.This will be indicated on the module by the connector colors changing from the control rate colors to the audio rate colors.

© COPYRIGHT 1999 - 2017 Blue Hell

See the web site for more information.

~ fin ~