WREN module documentation

Version : 2017.3.14.0

© COPYRIGHT 1999 - 2017 Blue Hell

Look here for more information.

to module index

1 AudioIn

AudioIn

Page: I/O

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

to module index

2 AudioOut

AudioOut

Page: I/O

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

MidiNoteIn

Page: I/O

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

MidiMultiNoteIn

Page: I/O

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

MidiCCIn

Page: I/O

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

MidiNoteOut

Page: I/O

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

MidiCCOut

Page: I/O

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.

to module index

8 Sync

Sync

Page: I/O

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

9 OscMessage

OscMessage

Page: I/O

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

10 LiveMorph

LiveMorph

Page: I/O

A controller for the LiveMorph function in the patch mutator.

to module index

11 Auto

Auto

Page: I/O

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

to module index

12 Osc

Osc

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

to module index

13 Square

Square

Page: OSC

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.

to module index

14 HrastOsc

HrastOsc

Page: OSC

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

15 MultiOsc

MultiOsc

Page: OSC

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.

to module index

16 Noise

Noise

Page: OSC

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

17 Attractor

Attractor

Page: OSC

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

18 KS

KS

Page: OSC

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

19 Pluck

Pluck

Page: OSC

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

20 WavePlayer

WavePlayer

Page: OSC

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

21 OscTrig

OscTrig

Page: OSC

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

to module index

22 SquareTrig

SquareTrig

Page: OSC

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

to module index

23 NoiseTrig

NoiseTrig

Page: OSC

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

24 Talkie

Talkie

Page: OSC

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

25 TSS

TSS

Page: OSC

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

26 Song

Song

Page: OSC

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

27 Vosim

Vosim

Page: OSC

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

28 PerlinNoise

PerlinNoise

Page: OSC

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

29 PerlinNoiseTrig

PerlinNoiseTrig

Page: OSC

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

30 PerlinTone

PerlinTone

Page: OSC

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

31 Phasor

Phasor

Page: OSC

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

32 AudioGraph

AudioGraph

Page: OSC

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

33 Lfo

Lfo

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

to module index

34 SquareLfo

SquareLfo

Page: LFO

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:

to module index

35 NoiseLfo

NoiseLfo

Page: LFO

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

36 RandSig

RandSig

Page: LFO

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

37 Pulses

Pulses

Page: LFO

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

38 RandomWalkLfo

RandomWalkLfo

Page: LFO

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

39 AttractorLfo

AttractorLfo

Page: LFO

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

40 Tod

Tod

Page: LFO

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

41 LfoTrig

LfoTrig

Page: LFO

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.

to module index

42 SquareLfoTrig

SquareLfoTrig

Page: LFO

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:

to module index

43 NoiseLfoTrig

NoiseLfoTrig

Page: LFO

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

44 ClockGen

ClockGen

Page: LFO

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.

to module index

45 EnvAR

EnvAR

Page: Env

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

46 EnvARRetrig

EnvARRetrig

Page: Env

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

47 EnvAHD

EnvAHD

Page: Env

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.

to module index

48 EnvADSR

EnvADSR

Page: Env

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.

to module index

49 EnvControl

EnvControl

Page: Env

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.

to module index

50 Envelope

Envelope

Page: Env

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

51 Average

Average

Page: Filter

[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

52 Filter6dB

Filter6dB

Page: Filter

[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

53 Filter6dBBP

Filter6dBBP

Page: Filter

[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

54 Filter6dBBPS

Filter6dBBPS

Page: Filter

[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

55 SVF

SVF

Page: Filter

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

56 MoogFilter

MoogFilter

Page: Filter

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

57 HrastSVF

HrastSVF

Page: Filter

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

58 IntDif

IntDif

Page: Filter

[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

59 Formant

Formant

Page: Filter

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

to module index

60 Formant2

Formant2

Page: Filter

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

61 PinkFilter

PinkFilter

Page: Filter

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

62 Resonator

Resonator

Page: Filter

A resonating filter

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

to module index

63 TiltFilter

TiltFilter

Page: Filter

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

64 TritoneBank

TritoneBank

Page: Filter

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

65 ThirdBank

ThirdBank

Page: Filter

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

66 TritoneSplitter

TritoneSplitter

Page: Filter

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

67 ThirdSplitter

ThirdSplitter

Page: Filter

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

68 Modal

Modal

Page: Filter

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

69 SampleAndHold

SampleAndHold

Page: Switch

[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

70 TrackAndHold

TrackAndHold

Page: Switch

[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

71 Switch2to1

Switch2to1

Page: Switch

[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

72 MultiSAndH

MultiSAndH

Page: Switch

[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

73 Mux

Mux

Page: Switch

[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

74 Demux

Demux

Page: Switch

[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

75 DigiMux

DigiMux

Page: Switch

[this module is RateSmart [1]]

A digitally controlled multiplexer

to module index

76 DigiDemux

DigiDemux

Page: Switch

[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

77 Volume

Volume

Page: Mix

[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

78 XFade

XFade

Page: Mix

[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

79 Pan

Pan

Page: Mix

[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

80 MixM3to1

MixM3to1

Page: Mix

[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

81 MixM4to1

MixM4to1

Page: Mix

[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

82 MixS2to1

MixS2to1

Page: Mix

[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

83 MixS5to1

MixS5to1

Page: Mix

[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

84 MixT1to1

MixT1to1

Page: Mix

[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

85 MixQ1to1

MixQ1to1

Page: Mix

[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

86 MixM16to1

MixM16to1

Page: Mix

[this module is RateSmart [1]]

A 16 channel mono mixer with output mute.

to module index

87 MixMM16to1

MixMM16to1

Page: Mix

[this module is RateSmart [1]]

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

to module index

88 MixMS8to1

MixMS8to1

Page: Mix

[this module is RateSmart [1]]

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

to module index

89 MixM6to6

MixM6to6

Page: Mix

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

90 MixAudio

MixAudio

Page: Mix

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

to module index

91 MixQS2to1

MixQS2to1

Page: Mix

[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

92 MixQS1to1

MixQS1to1

Page: Mix

[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

93 QuadPan

QuadPan

Page: Mix

[this module is RateSmart [1]]

Quad panner

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

to module index

94 Scaler

Scaler

Page: Control

[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

95 Rotator

Rotator

Page: Control

[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

96 Rectifier

Rectifier

Page: Control

[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

97 HardClip

HardClip

Page: Control

[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

98 RangeConverter

RangeConverter

Page: Control

[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

99 WaveWiper

WaveWiper

Page: Control

[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

100 WaveWrapper

WaveWrapper

Page: Control

[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

101 ChebGen

ChebGen

Page: Control

[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

102 LevelConverter

LevelConverter

Page: Control

[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

103 TypeFlip

TypeFlip

Page: Control

[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

104 Slew

Slew

Page: Control

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

105 MixingScaler

MixingScaler

Page: Control

[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

106 Pulser

Pulser

Page: Control

[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

107 SawMill

SawMill

Page: Control

[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

108 FastToSlow

FastToSlow

Page: Control

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

109 AmMod

AmMod

Page: Control

[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

110 ModControl

ModControl

Page: Control

[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

111 ZeroCounter

ZeroCounter

Page: Note

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

112 Scala

Scala

Page: Note

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

113 TransInv

TransInv

Page: Note

A Transpose / Inversion module

Transposition is calculated as : ( amt + in) mod modulo and Inversion as ( pivot - in ) mod modulo.

to module index

114 EuclideanScale

EuclideanScale

Page: Note

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

115 NoteToDelay

NoteToDelay

Page: Note

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

116 Quantizer

Quantizer

Page: Note

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

117 NoteQuantizer

NoteQuantizer

Page: Note

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

118 ScaleQuantizer

ScaleQuantizer

Page: Note

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

119 ModQuantizer

ModQuantizer

Page: Note

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

120 RandomScale

RandomScale

Page: Note

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

121 Inverter

Inverter

Page: Math

[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

122 Adder

Adder

Page: Math

[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

123 Multiplier

Multiplier

Page: Math

[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

124 MultiMult

MultiMult

Page: Math

[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

125 MultipleMult

MultipleMult

Page: Math

[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

126 Amplifier

Amplifier

Page: Math

[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

127 MinMax

MinMax

Page: Math

[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

128 Median

Median

Page: Math

[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

129 Reciprocal

Reciprocal

Page: Math

[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

130 Divide

Divide

Page: Math

[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

131 Ratio

Ratio

Page: Math

[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

132 Constant

Constant

Page: Math

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

133 MConst

MConst

Page: Math

Select a constant value.

Some more or less often used mathematical constants.

to module index

134 Monadic

Monadic

Page: Math

[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

135 Dyadic

Dyadic

Page: Math

[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

136 RMS

RMS

Page: Math

[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

137 Polar

Polar

Page: Math

[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

138 Rectangular

Rectangular

Page: Math

[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

139 Not

Not

Page: Logic

[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

140 Gate

Gate

Page: Logic

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

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

141 Divider

Divider

Page: Logic

[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

142 FixedDiv

FixedDiv

Page: Logic

[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

143 DFlipFlop

DFlipFlop

Page: Logic

[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

144 RSFlipFlop

RSFlipFlop

Page: Logic

[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

145 Counter

Counter

Page: Logic

[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

146 ADC

ADC

Page: Logic

[this module is RateSmart [1]]

Analog to Digital Converter.

to module index

147 DAC

DAC

Page: Logic

[this module is RateSmart [1]]

Digital to Analog Converter.

to module index

148 PhaseDetect

PhaseDetect

Page: Logic

[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

149 Compare

Compare

Page: Logic

[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

150 LogicSelector

LogicSelector

Page: Logic

[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

151 ProgDivider

ProgDivider

Page: Logic

[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

152 MultiCompare

MultiCompare

Page: Logic

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

153 PulseDelay

PulseDelay

Page: Logic

A logic pulse delay module.

This module can operate in two 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.

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.

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.

The other indicator shows module activity, e.g. when it is actively stretching or delaying.

to module index

154 Rungler

Rungler

Page: Logic

[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

155 Sequencer

Sequencer

Page: Seq

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

156 TextSequencer

TextSequencer

Page: Seq

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

Double 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

157 SeqStep

SeqStep

Page: Seq

[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

158 SeqClockStep

SeqClockStep

Page: Seq

[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

159 EuclideanRhythm

EuclideanRhythm

Page: Seq

[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

160 CsvData

CsvData

Page: Seq

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

161 KleeBit

KleeBit

Page: Seq

8 bit part of a Klee Sequencer.

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

to module index

162 SeqRandom

SeqRandom

Page: Seq

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

163 SeqRandVal

SeqRandVal

Page: Seq

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

164 Morse

Morse

Page: Seq

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

165 GateSeq

GateSeq

Page: Seq

[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

166 Seq16

Seq16

Page: Seq

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

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.

to module index

167 SeqSeq

SeqSeq

Page: Seq

[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

168 Pattern

Pattern

Page: Seq

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

169 MidiPlayer

MidiPlayer

Page: Seq

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

170 LUT

LUT

Page: Seq

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

to module index

171 SeqChord

SeqChord

Page: Seq

A chainable chord sequencer.

to module index

172 ProbSequencer

ProbSequencer

Page: Seq

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

173 SeqPattern

SeqPattern

Page: Seq

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.

to module index

174 LogisticMap

LogisticMap

Page: Gen

[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

175 Poetry

Poetry

Page: Gen

[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

176 Arpeggiator

Arpeggiator

Page: Gen

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

to module index

177 Markov

Markov

Page: Gen

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

178 Rewriter

Rewriter

Page: Gen

[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

179 RewriterNote

RewriterNote

Page: Gen

[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

180 TuneSmithy

TuneSmithy

Page: Gen

[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

181 CellAut

CellAut

Page: Gen

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

182 LifeSeq

LifeSeq

Page: Gen

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

183 Reverb

Reverb

Page: FX

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

184 GVerb

GVerb

Page: FX

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

185 FlangeChorus

FlangeChorus

Page: FX

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

186 PitchChange

PitchChange

Page: FX

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

187 Compressor

Compressor

Page: FX

A simple feedback based compressor.

The compressor tries to maintain the set reference level as the output peak 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.

to module index

188 FreqShifter

FreqShifter

Page: FX

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

189 Vocoder

Vocoder

Page: FX

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

190 TerraGen

TerraGen

Page: FX

[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

191 Convoder

Convoder

Page: FX

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

192 PitchShift

PitchShift

Page: FX

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

193 StereoWiden

StereoWiden

Page: FX

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

194 PhaseDistortion

PhaseDistortion

Page: FX

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

195 CubicClip

CubicClip

Page: FX

[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

196 Delay

Delay

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

197 ClockedDelay

ClockedDelay

Page: Delay

[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

198 Delay8

Delay8

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

199 RndGranulator

RndGranulator

Page: Delay

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

200 Granulator

Granulator

Page: Delay

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

201 SimpleGranulator

SimpleGranulator

Page: Delay

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

202 ClockedDelay16

ClockedDelay16

Page: Delay

[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

203 AllPass

AllPass

Page: Delay

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

204 Looper

Looper

Page: Delay

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

205 StereoLooper

StereoLooper

Page: Delay

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

206 Panel1

Panel1

Page: Utility

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

to module index

207 Panel2

Panel2

Page: Utility

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

to module index

208 Panel3

Panel3

Page: Utility

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

to module index

209 Panel4

Panel4

Page: Utility

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

to module index

210 Panel5

Panel5

Page: Utility

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

to module index

211 Value

Value

Page: Utility

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

212 Count

Count

Page: Utility

[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

213 FreqCount

FreqCount

Page: Utility

[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

214 Display

Display

Page: Utility

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

215 Notes

Notes

Page: Utility

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

216 XYScope

XYScope

Page: Utility

An XY oscilloscope.

to module index

217 Pad

Pad

Page: Utility

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

218 Spiral

Spiral

Page: Utility

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

219 Knobs4

Knobs4

Page: Utility

Four larger knobs with comment flieds and selectable modes.

to module index

220 Switches4

Switches4

Page: Utility

Four large on/off switches with comment fields.

to module index

221 Buttons4

Buttons4

Page: Utility

Four large momentary switches with comment fields.

to module index

222 Tapper

Tapper

Page: Utility

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

223 DataGraph

DataGraph

Page: Utility

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



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