Some new stuff, pre-release 2022.6.19.0

Published as pre-release version 2022.6.19.0

This can be installed from a recent Wren version - or alternatively download the installer (see the wiki for more info on updating or installing Wren).


  • New SimpleRange module - it may save some cycles to use simple modules.
  • Made an analog-ish position output for the Divider module, it presents the internal count value..
  • Font for popup editors was too small for one unit modules, made the font smaller for those low modules.
  • Removed Sine and Cosine lookup tables, calculation was faster.
  • More lines of code removed.
  • Changed controls for polyphony and wire thickness to be knobs, those support keyboard control to change the value.
  • Changed format for knob hints a bit - to make things a bit less confusing.
  • Made main VU meter peak and valey indicators a lot slower, a factor of 20.
  • Wire addition or removal no longer needs a patch recompile - it will just keep playing. This works for cable undo and redo operations too.
  • Removed the F12 (patch manual recompile) action. F7 (reset) still works, and patch recompile can still be done programmatically
  • Extra mode for the Pluck module, fixed tuning for KS, Pluck, PluckControl and TunedDelay modules. Lowest possible (internal) frequency now is about 1Hz (it was about 8Hz).
  • Linear controls now additionally display a fraction of the total range in their popups.


Bugfix for compressor gain revisited

Published as pre-release and release version 2022.6.4.0

This can be installed from a recent Wren version - or alternatively download the installer (see the wiki for more info on updating or installing Wren).

As mentioned in the previous post, there was a bug in the compressor gain setting. The fix for that bug caused older patches to to be left with a way too low gain setting.

This release fixes old patches on load, so that approximately the same gain as was intended will be set. When patches were already manually fixed it will leave them alone.

The module version was changed from 2 to 3, and when a patch with module version 1 or 2 is loaded it will see if a fix is needed.

And as a compressor gain setting of -6dB or lower does not seem to make much sense (at least not for my own patches) it will only then apply a fix to set the gain to approximately what it was intended to be in the old situation. When the patch is being saved it’s module version for the compressor will always be set to 3.

This heuristic will fail when the gain was lower than -6dB intentionally - and a manual fix will still be needed then.

It will also not repair the gain setting for the spectrum module (the only other module using a 64dB gain control), but that is a thing needing constant manual tweaking anyway.

Also the help for the PluckControl module was updated.

Oh - and removed some monsense from the Pluck module and gave it al-pass feedback filtering - it still needs some work on the brightness and on tuning.


Some more changes, a new module and a redo of an old one

Published as pre-release and release version 2022.6.2.0

This can be installed from a recent Wren version - or alternatively download the installer (see the wiki for more info on updating or installing Wren).


  • Redid the Pluck module, got out the inversion stuff but gave it an extra string with detuning and cross coupling - I think it to sound more interesting.
  • Made a PluckControl module - I see that the help for it is nonsense still - but it is meant to create a pluck signal for the Pluck and KS modules..
  • Fixed the tuned delay module - it’s delay times were wrong.
  • Fixed the PhaseDetector module - it never worked since Wren got polyphonic.
  • Another 2000 lines or so of code were removed.
  • Totally redid signal propagation, the way how signals are transferred over wires. It made Wren faster by another five to ten percent.
  • Fixed a bug in the compressor module - unfortunately old patches will have wrong compressor gain now and need to be reviewed (they'’l be pretty soft now).
  • Sped up the handling of the lights a bit more, there was some unneeded searching still for screen elements.


There were a lot of changes made to the code and I tested a lot but not everything - there may be surprises .. and when I notice I’ll fix things.

A recording of the pluck stuff - and some more sounds.

It starts with some Karplus-Strong sounds only; a drum like sound and a more typical KS one. At about one minute percussive noise is added, at about two minutes some grain processing is turned on and at around three the PADSynth module is activated.

It is a three voice self playing patch running at 48kHz with a control decimation of 32 needing about 30% of ome core here.

Some details (including a short help for the pluck controller and also about the patch) are behind the read more link.

[Read more…]


Some fixes and stuff

Published as pre-release version 2022.5.30.0

This can be installed from a recent Wren version - or alternatively download the installer (see the wiki for more info on updating or installing Wren).

  • There was a bug in the XY Scope module causing occasional audio artifacts - fixed that.
  • When the mouse is over a knob pressing the zero key will cause the control to move to it’s default position.
  • Added range selection to the OscPerc mdule - much longer decay times can now be set (it was limited to 12s).
  • Fixed a bug in the LFO global rate setting. LFO’s were running way too slow - fixed this, but it will affect all patches whch used a global rate setting other than 1.
  • Fixed a tiny table lookup error - lookup of the value at the very end would behave a little odd. Also made the tables two bytes smaller to have an actual size of a power of two. And then removed a couple of tables that were never used..
  • Revisited the grain control modules, the RndGranulator was not working at all and the GrainDelay module was a mess. Made the RndGranulator work and added smoothness control for the random values. Totally redid the GrainDelay mdule.
  • Removed about 2000 lines of unused code - not that this affects anything though.
  • Made Wren run marginally faster by inlining some more code, a couple of procents or so.

The GrainDelay module works differently now, it was redocumented in the module help.

The RndGranulator did not produce any sound at all, this was fixed with the functionality only being changed by addeding smoothness control for the randomization. When smoothness is set to full all randomness will be frozen.

The other two grainy modules were behaving like intended (Granulator and SimpleGranulator).

The global rate setting was applied twice, meaning that when it was set to 0.5 the modules would display half the normal value (which is ok) while they would run at one quarter of their nominal speed instead of one half.


Installer bug

There was a bug in the installer where it would not properly use a user selected installation folder (but would use the pre-programmed default folder instead).

I’ve updated the installer for this to 2022.5.22.0 and also repackaged the full Wren and the pre-release installations (as those contain the installer program as well, no version updates there).

I hope the issue to be fixed with this.


Fresh pre-release

Published as pre-release version 2022.5.14.0

This can be installed from a recent Wren version - or alternatively download the installer (see the wiki for more info on updating or installing Wren).

  • Made a Mambi module for ambiophonics output.
  • The XYScope module got a correlation display, see it’s internal help for more info.
  • Another fix on the ProbGraph module, the left- and right-most points were not always properly glued. .
  • Made Wren startup a little bit faster.
  • Made Wren shutdown a lot faster.
  • Improved and streamlined some non-audio timing code.


The removal of the ambiophonics plugin from the electro-music.com store made me see the old ambiophonics thread again and decided to implement that one for Wren. The module blurb says:

Mosc’s ambiophonics module, or Mambi.

See https://electro-music.com/form/topic-27871.html for Mosc’s original idea.

The delay maxes at about 320 us, the default delay setting of 0.25 makes the delay ab out 80us which is what the original uses.

The width parameter can be modulated, the modulation input is 1.0 when unconnected and it will be multiplied with the knob set value once connected.

As the module is strictly monophonic, the width modulation only works on the first voice. The inputs are summed though over all voices and the ouputs are distributed over all voices.

Tried to make some center filling code for it - but I was not convinced and left it out in the end.


And a fix .. for an ommision in the one before

Published as pre-release. 2022.3.21.0]

Stand-alone (non patch) knobs were not handled properly.


Bug fix Vocoder module

Published as pre-release. 2022.2.12.1]

The Vocoder had a bug where changing the bin size could freeze the rest of the synth, fixed in this pre-release.


Some help file issues fixed

Published as pre-release. 2022.2.10.1]

The generated help file (which is the same as the one on this site) had some markup issues messing up the file reading examples, making those wrong and with bold face text and such - fixed those issues.


Various changes to text based modules.

Published as pre-release. 2022.2.9.0]

I wanted Wren to be able to react to what goes on in the electro-music.com chat, and as I already run an IRC bot which can produce a log file I’ve decided on making some modules able to read the last line of that log. This involves the following modules:

  • Morse
  • eSpeakVoice
  • TSS
  • Song
  • SapiVoice

These all have an input field for text to process, what I did was to allow for special text that will be interpreted and it may read from a file now.

When you use ‘file:filespecs’ the filespecs will be split in two parts, the first being the filename to use and the second (optional) part makes a filter. It will be the last non-empty line from that file whih is read and when the filter is present it will process that line and that will be the text to be used by the modules.

The syntax to be used is :



  file:fillename regular-expression

The regular expression being the filter, and the file name can not have spaces in it.

The last non-empty line of the file will be read (or an error message will be returned) and that line will be filtered with the optional regular expression.

When the regular expression contains a group named ‘result’ that will be the matched bit from that last line.


    file:X:\filedir\filename.log (?:msg\s\[)(?<result>.*?)(?:\]\shost)

    pointing to some file on drive X: with a specified filter which has a group named
    'result' (and two other un-named groups of stuff we are not interested in).

    the last non empty line of the specified file could be (this is from a log of an IRC
    chat session, a private message from jan to IRC channel #electro):

      '2022-02-09 01:30:23.784 | priv : [jan -> #electro] msg [pwew .. filter is hard o_o] host [~jan@xxx-xx-xxx-xxx.yyy.zzz.nl]'

    The regular expression   matches:  'msg [pwew .. filter is hard o_o] host'.
    The named group 'result' matches:  'pwew .. filter is hard o_o'
    and that in this case is the bit we want.

Then, in addition I’ve made the TSS module work by default by setting it’s speed parameter to be 1.0 initially (it was zero, and with that the module will not actually run).

Also I’ve added simple SolReSol support to the Morse module, it has no knowledge of grammar and it has a limited set of words - the output is available as the blue output of the Morse module and is meant to be processed by a ScaleQuantizer (being set to a Major sccale for a strict implementation, but other scales with seven notes are usable too (less than seven notes would strip out some of the output values)).

A note about SapiVoice - it does not seem to work ok in the 64 bit Wren version.


Bugfix for Dif module

Published as pre-release. 2022.1.8.0]

The Dif module was not properly working with the changes made, fixed that - and added some code to find the error made in the debug version of the program.


Help text …

Published as pre-release. 2021.10.25.0

Updated some help texts that were misleading. Thanks Thomas :)

There might be a couple more here and there, I tend to copy modules … and errors.


A bug fix and some changes


Published as pre-release. 2021.10.24.0

The oramics1 module’s mode was not working, fixed that.

Made some changes on the OscPercCS module. A punch2 mode was added, which alters the wave shape and added shape control. Everything still works the same otherwise, but there can be some change of color now. A shape of 0.5 (which is the default value) gives the original color, the modulation works additive - not multiplicative.

Had to change the layout a bit to make room for the extra controls.


Boids …

Published as pre-release. 2021.10.18.0

The boids module’s layout got fukt, unfukt that …

Fixed and changed the Oramics1 module

Published as pre-release. 2021.10.17.1


The Oramics1 modue had the in/out level conversion not working - fixed that.

Also added a couple of modes to the module:

[Read more…]


Fixed the percussion oscillator’s name


Changed the odd name OcTrigCS from the previous lemma into OscPercCS, this will break patches made by the previous version using this nmodule, but eh … it was correctly named in places and incorrectlhy in others. So … just fixed it, sorry for the mess.

Published as pre-release. 2021.10.13.1


Updated help

Updated the built-in help for the two changes mentioned below.

Published as pre-release. 2021.9.22.0


Bug in PDOsc module


In the PDOsc module the cents input was added to the cents modulation, instead of multiplied by; fixed this for the current pre-release.


Bug in levels for some envelope types

The EnvAHD and the EnvADSR envelope types had states 1 and 3 exchanged, Fixed that, but this may break patch compatibility, especially when you used the blue output(s) as a general control signal.

Published as pre-release. 2021.7.3.0


Some small changes

There still was an issue with the ScaleQuantizer. When first loaded from the module selector it would by default need an enforce operation, fixed that.

Changed the connector popups to additionally show the signal type .

Published as pre-release. 2021.6.24.1


Bug in ScaleQuantizer re-re-visited


It is impossible to get the lock issue right, I’ve made an enforce button to enforce a preset scale.

When a known scale is set on the buttons it is possible to set a preset without it, when the module indicates a Custom scale you’ll need to either use the enforce button once, or select a known scale with the note buttons.

As said before, I should have made them note buttons read only … oh well, this’ll sort of work.

Published as pre-release. 2021.6.8.1

Bug in ScaleQuantizer revisited …


Note: there is a follow-up on this one.

It turned out that the runtime module behavour was a bit problematic too … I’ve made a fix for that as well now … almost at least.

[Read more…]


Bug in ScaleQuantizer


Note: this is not working, it needs more work …

The ScaleQuantizer would not treat the scale selector as a preset selector, instead it would always overrule any manual changes of the scale. I’ve fixed this in the latest pre-release.

[Read more…]


Bug in the LeakyGateSeq module


The LeakyGateSeq was addressing inputs where parameters were meant to be used, this would crash Wren. Fixed it.


Bug in variations

Variations were not applied on patch read, fixed that.

[Read more…]


A couple of (XY) Scope changes and bug fixes.

I forgot to set a pen color for the trace drawn by the scope modules, and some more stuff.

[Read more…]


Bug in EqDivQuantizer

The equal division quantizer (ModEqDivQuantizer) does not work properly.

A big thanks to wmonk, he got the right code for me to fix it. So, let’s try it in the wild world web now!

eSpeak bug

It looks like eSpeak is not being detected correctly when only the 64 bit version of it has been installed, I’m investigating this.

[Read more…]

Error in Scala SCL parser.

An error in the Scala SCL file parser, it would not accept files where the comment was empty.

Changed the parser to accept empty comments.


Another font bug fixed

Another fix for the fonts, changes in module and module title font did not propagate properly anymore.


Hint window bug and font selection issues

The size for hint windows with an image in them is not calculated correctly.

Ok, fixed that and also, this time really, fixed the shutdown issue mentioned before (things actually went wrong with all font selection). Also I’ve set the default popup font size to 10, it was not defaulted before and it came up as 8, which even for me is a bit small on the popups.

Fixed a bug in the connector hint implementation

Fixed a bug in the connector hint implementation that would lead to occasional crashes on stopping Wren.


Bug in poly specs

Fixed a couple of poly specification errors, that’s only how the affected modules were drawn. Also fixed a bug in the GateSeqMulti module where a parameter index was wrong, this was a true bug ffecting performance in some cases.

Bug in the Mux module

There was a bug in the Mux module, crossfading would only work when something was connected to the cross fade modulation input. Fixed it.