2022-05-22

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.

Sped Wren up a bit, and some small things

Published as pre-release version 2022.5.22.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).

TModXYScope.jpg

  • I Think patch execution was sped up by about 25% trough various code changes and eliminations - debugging got somewhat harder by this … and the changes did unmask some bugs :’)
  • The lights and wire status can be saved into the ini file now - these options are off by default but can be turned on from the settings screen (F3).
  • And so .. wires, lights and sound can now be turned on by clicking the action item - when actively shown (for in case the Ctrl+W, Ctrl+L or Ctrl+D shortcuts were forgotten).
  • Added an ‘all’ mode to the XY scope module, it will listen to the sum of all voices when active.
  • Added automatic gain control to the XY Scope module.
  • Added a correlation indicator to the XY Scope module.

With the changes on the XY Scope it can now function as a gonio meter module. When put in vector mode the vertical line shows the left / right (or X / Y) similarity while the horizontal line shows the difference, the bottom bar quantizes the left / right correlation; -1 indicates anti-phase, 0 indicates non-similarity and +1 stands for equalness.

It is interresting to see how the Mambi module is displayed on this, ambiophonics works by adding R inverted and delayed to L and likewise for L and R - the XY vector plot will widen from this and be less high, while the gonio indicator will show more anti phase.

Regarding the lights and wires … with this, when lights or wires were turned off when Wren was quit, they will also be off on the next Wren start - the action items will show this. (also - when wires are off at startup, the startup is faster - soo .. that will need some more changes later on).

And .. the Wiki says this .. but to restate: Ctrl+L will toggle lights on/off, Ctrl+W will toggle wire visibility on/off and Ctrl+D toggles sound on/off. Status for these is shown in the top pane.

2022-05-02

A new release

Published as pre-release version 2022.5.2.0
Published as release version 2022.5.2.0
Source code published as 2022.5.2

All 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 were two new module types added, a keyboard (Keyboard - it is on the Utility tab) and a new random generator (ProbGraph - it is on the Ctrl2 tab)..
  • Also I’ve removed clicks from the analog trigger mode for various envelope modules (being described in the previous post).
  • And then a bug in the spline lookup for the DataGraph module got fixed - not all point changes were resulting in changed behaviour.

TModKeyboard.jpg

The keyboard module:

The module is mouse controlled. To get a note click on it, to freeze a note (or latch it) control click on it.

The mouse over highlight is just for orientation and does not affect the sound.

Whenever a note starts the trig output will go active, and it will stay active for as long as the note is active.

When multiple notes are active they are assigned to successive voices.

On every incomoing arp pulse the note pattern will shift right for all voices, or left when the dir input is less than 0.5. This will make the module behave like an arpeggiator (with each voice being shifted as in a canon).

The mix input is just added to the output value, it can be used for shifting the pitches.

TModProbGraph.jpg

The probablity graph:

With the graph tool a cumulative random distribution function (crf) can be set up - with a little twist.

The distribution is being used by an internal uniform random generator (all values of 0.0 to 1.0 being equally probable), the looked up value will then have the distribution as laid out by the graph. This gives graphical control over how likely output values will be.

On every trig (sync) input pulse a new value will be output and when the value changed a trigger out puslse is being generated as well.

For the graph the leftmost point is fixed at the bottom left corner and the rightmost point hangs in the top right corner - external scalling can always be applied with a mixer or amplifier module.

The twist is that the X and Y axis are being swapped from what woud be expected for a crf, so the uniform random is distributed along the X axis and the Y axis represents the output values.

Output polarity can be set with the selector button ([-1,1], [-1,0] or [0,1] and the inversions thereof), the shape of the graph can be linear, splines, steps or dots. For conveniance the grid marks can be set to several values.

2022-04-15

A couple of changes

Published as pre-release version 2022.4.15.0

The big change is that the handling of the patch lights got optimised, there is a lot less searching now - it seems to work fine :)

Then I’ve implemented ‘analog trigger’ for the EnvARRetrig, EnvARMod, EnvAHD and EnvADSR modules. There are a couple of modes where the D (digital, and default) mode implements the old time behaviour. Then there are some analog modes where the trigger input behaves different than in digital mode.

In the analog modes the trig input is quantised to 2, 3, 4, 5, 6 or ‘infinite’ (mode A) levels, and when a change in the quantised value was seen a trigger action will be initiated. Also the value of the change in in the trigger value will be sampled and that is used to control the envelope’s amplitude.

This is nice with a sequence for instance, where an analog sequencer output can now trigger an envelope, and as it also controls the amplitude - interesting patterns can be made easily this way.

If you have a recent Wren and Installer you can istall this from Wren itself. Otherwise see the wiki for more info on updating Wren.

2022-04-02

Polyphy workings changed a bit

mono_poly_2.png

I’ve changed the way polyphony works a bit. Both in how it works internally and in how things are displayed.

Modules can still be set to mono mode or poly mode, as in previous versions. But it also possible now to run modules with reduced polyphony - with less voices than the patch has. This can be selected from the module popup context menu.

The hatched display of mono or monofied modules is gone now. Instead the module title will be changed to indicate the mode.

[Read more…]

2022-03-28

Updated the installer a bit

Published as installer version and Wren version 2022.03.28.0

You’ll have to re-install the installer for this to work but then:

  • Wren will now have direct support for updating itself, the source code or the PortAudio sources.
  • The installer can install itself.
  • When wren.exe was renamed installs originating from the renamed version will update the renamed version now.

To get the update. see the download page for instructions.

Note: the installer executable is an unsigned application downloaded from the internet, Windows will complain about that - it can still be executed though by clicking on ‘more info’ in the complaints screen.

2022-03-21

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.

2022-03-20

Changed popups

Published as pre-release. 2022.3.20.0]

I’ve changed the way pupups on screen items are handled.

It started with adding popups on destination connectors for when you draw out a cable, in order to better see where a cable will end up at. This however created the issue that popups were not properly removed.

So, I’ve altered popup removal on all components a bit - they now just temove all popups agressively. This may change popup behaviour in windows emulation on Linux or Mac - but I did not test that.

2022-02-12

One more small change

Published as pre-release. 2022.2.12.0]

Changed the way the filter works in that when a filter is being defined it will only select lines that match the filter. In case of the chat log I use that means that it will now skip the joined and left lines and such.

It may still return error messages, as “file not found” or “directory not found”.

BTW the output is not shown in the modules, it show sthe file and filter instead, but the debug screen (F5) will show what was produced. For each module duplicates will be filtered out, so make sure that the last file line changes to see an effect there.

Things did become a bit slower of this, as the regular expression is tried now on every non empty file line, hope it is still fast enough fir rapid chat - so may have to revert, we’ll see,

Edit: Ok, had to change that a tad bit more, it was getting too slow. Now when the filter exists but does not match on the last line an empty line will be returned instead of the unfiltered last line. Maybe that is even nicer for my purpose, as it can introduce quiteness in the patch in that case.

When there is no filter still the last non empty line will be returned, maybe should make a fallback or default rule group for filters or something.

This has the same release number.

2022-02-11

Some more words

Published as pre-release. 2022.2.11.0]

Added more words to the solresol bit of the morse module, there were like 2000 or so and 8384 there are now - some tens of it are still French ;«)

2022-02-10

Some fixes and changes

Published as pre-release. 2022.2.10.0]

Made the SapiVoice module working again, it had a problem with speaking empty strings, had a memory leak, would not speak no more on text changes and it was way too fast - all addressed.

Changed the Morse moduel to speak an ‘F’ on non letters, non space or non ‘*’ it was a bit odd stopping to work on single interpunction characters .. like ‘.’ etc.

I’m ready for a chat driven performance. just a little more patching :)

2022-02-09

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

or

  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.

Example:

    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.

2022-02-07

Changes to DataGraph and ClockGen2 modules

data_graphs_02.png

Published as pre-release. 2022.2.6.0]

A couple more changes on the DataGraph and ClockGen2 module, such that they work better for me.

I’ve relabeld a couple of signals; sync is now quantise as that is what it actually does; the rate is now labeled as bars / m (bars per minute) and the div rate is now accents.

here is a new bars control added for the ClockGen2 module - this is the number of divisions to be used in the DataGraph and this can be automated by pulling a wire from ClockGen2’s new bars out to the new horizontal divisions input of the DataGraph (left of the 16 in the image).

For the DataGraph moduele the way divisons work changed a bit - it is now possible to have uneven divisions (existing patches may want to double their division settings, this also applies to the AudoGraph module). No middle indication will be drawn whe nthe number of divisions is odd.

The image shows how to work with this, both time and pitch are quantised this way without the need for precicise dot placement in the DataGraph.

Made an example patch for this, it is to be seen seen, heard and downloaded from below (possibly after clicking ‘Read more…’).

[Read more…]

2022-02-05

A new module, some changes on an old one and some and remarks

TModNoop.jpg

Published as pre-release. 2022.2.4.0]

The Noop module was changed to output a special value when it’s input is not connected. This is the NOT_CONNECTED special value, some modules do special things when seeing that as their input value (normally meaning that that input is unconnected). I’ve documented all current inputs dealing with that special value, it is in the new modue help.

This makes it possible to pass the NOT_CONNECTED value trough swithes to make non-connectivity programmable. The noop module is the only one able to source this value, but it will be passed on trough other modules when they do not alter the signal (like switches).

It is wise BTW to not use this as a general signal, as the actual value as seen by unaware inputs is very large and this may hurt eardrums :¬)

TModClockGen2.jpg

Then .. made a new module .. it is not finished yet, but am using it in patches already .. so .. better to mention it, as it will show up in new builds. It is a clock generator, and made it because the updated DataGraph module could use it. I’m still struggling with measures and beats and whatnots (music is hard!). It will change I guess, but the basic idea is simple.

[Read more…]

2022-02-02

And another updte on the DataGraph

TModDataGraph.jpg

Published as pre-release. 2022.2.2.0]

It became 30 pixels higher to make some room for extra control.

Added random control, with a button and three inputs (one for changing all values, one for changing 25% of the values and one for changing one value - a bit like what the seq16 module has). The horizontal positions are not changed on randomization. (though with a right click on the grid from the popup menu there is anoter form of random selectable).

Also available now are rev for playing backwards and inv for playing inverted (upside down) (although both could be done as well from a controlling saw lfo). Oh, and maybe it is good to say that the module is meant to be driven from a saw LFO, for normal linear time operation.

Then added grid control for the number of division lines in the graph display. This may make it easier to set the dots properly.

I’ll need one final change, the sync input uses high logic now and should use normal logic, that is for a later pre-release.

2022-02-01

Changes to the DataGraph module

TModDataGraph.jpg

Published as pre-release. 2022.2.1.0]

Note: image shows the latest version of the module, click on read more below to see the old version.

Changed the graph colors a bit to make the new dots mode better visible. The dots mode basically is the same as the steps mode except there are no lines drawn between the dots. Then I made the lines (and dots) mode actually work - which they did not.

Also a chg (changed) output was added and a sync input.

[Read more…]

2022-01-30

And a bit more change to EnvReso

TModEnvReso.jpg

Published as pre-release. 2022.1.30.0]

Added the filter’s band pass to a BP output and changed the inv output into a high pass (HP). The basic functinality stayed the same but when you need 1.0 - LP as the previous inv out did you’ll have to add an external module now … ran out of pixels :¬)

Anyway, I guess it is finished now.

2022-01-29

Some small changes to EnvReso

Published as pre-release. 2022.1.29.0]

I’ve made the trig input behave a little different. When left unconnected the module now doubles as a very low frequency filter. The input in that case is taken from the gain input. For the rest the module behaves the same as before.

When trig is unconnected and a regular envelope is connected to the gain input resonance can be added to that regular envelope signal.

And now I may want to add the filter’s bandpass and higpass signals as well for an output - but running out of pixels a bit :)

Then I updated the module help to show all functionality.

Added stretch to the EnvReso module

TModEnvReso.jpg

Published as pre-release. 2022.1.28.0]

Added pulse stretching to the EnvReso module, it is no longer needed to use external stretching. The stretch time scales with the selected range (fast, medium, slow and vfast) and uses the regular envelope times.

2022-01-17

Extra modulation control for KS module

TModKS.jpg

Published as pre-release. 2022.1.17.0]

Added feedback and brightness modulation to the KS module, had to rearrange the controls a bit for this to fit.

2022-01-07

Added select input to Dif module

TModDif.jpg

Published as pre-release. 2022.1.7.1]

Added a select (sel) input to the Dif module to make the mode controllable from an external signal.

New inversion out for ScaleQuantizer

TModScaleQuantizer.jpg

Published as pre-release. 2022.1.7.0]

Added an inv2 output on the Scalequantizer module. Inv2 will play notes from the selected scale, where the inv output will generally not. Both inversion outputs will select notes from the same octave as the the note on the regular out is in.

2022-01-05

New poly status module and a change of the old one

TModPolyStatus2.jpg

Published as pre-release. 2022.1.5.0]

Changed the PolyStatus module a bit and added a PolyStatus2 module with a different distributen of the output values over the voices.

[Read more…]

2022-01-02

Changed correlation setting

Published as pre-release. 2022.1.2.0]

Changed the way the correlation setting works for the RandSigs module, to give better correlation. Now when correlation is 1 all outputs will exactly follow the channel 0 (leftmost) outputs. And when the correlation is 0 all channels will be independent, and the is a smooth fade from correlation 0 to 1.

Correlation control for RandSigs

TModRandSigs.jpg

Published as pre-release. 2022.1.1.0]

Added correlation control to the RandSigs module. It makes the the outputs more similar when on, and totally independent when off (which is the old time, and now default, behaviour).

2021-12-28

Added a button to Switch2to1

TModSwitch2to1.jpg

Published as pre-release. 2021.12.1.28

Added a switch to the Switch2to1 module. Meant for manual switching, it’s pressed state is being XOR-ed with the ctrl signal.

2021-12-01

Added a DC blocker …

Published as pre-release. 2021.12.1.0

Added a DC blocker to the output of the LpGate module to eliminate the ‘almost DC’ that happens when the gate closes (and which hinders some connected modules).

2021-11-25

Added async reset to a couple of modules

To make it doable to sync to external gear I’ve added an a-res (asynchronous reset) input for the following modules :

* Seq16
* Seq16Rep
* GateSeq
* GateSeqMulti
* ModGateSeq
* LeakyGateSeq

The synchronous reset (res input) is still present as well to keep the old time behaviour.

Published as pre-release. 2021.11.25.0

2021-10-24

A bug fix and some changes

TModOscPercCS.jpg

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.

2021-10-20

Small changes

Published as pre-release. 2021.10.20.0

Added output value indication to the Oramics1 modujle and a trigger indicator to the OscPercCS module, this got reflected in the earlier images.

2021-10-18

Fixed and changed the Oramics1 module

Published as pre-release. 2021.10.17.1

TModOramics1.jpg

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

Also added a couple of modes to the module:

[Read more…]

2021-10-16

A new module and some extra modulations

TModOscPercCS.jpg

Added a couple of modulations to the percussion osc, for click, decay and fine (cents) control.

Also made a new module, a prototype for a Daphne Oram type of Oramics module. I plan to make some variations on this one.

[Read more…]

2021-10-13

Added an AM input to the percussion oscillator

Added an AM input to OScPercCS to be able to dynamically control the level.

Published as pre-release. 2021.10.13.2

Fixed the percussion oscillator’s name

TModOscPercCS.jpg

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

Two new modules

TModCopy.jpg

Made two new modules, a Copy/shuffle modle and a percussion oscillator.

The Copy module copies it’s inputs to it’s outputs - but the coupling can be randomized in some way.

The percussion oscillator is loosly modelled after the pch2csd interpretation of the Clavia G2 OscPerc modue (type 195 there) - it ended up a bit different than the original escpecially for the punch mode. Oh, and it got a bit of an odd name somehow … OscTrigCs, will fix that later on.

TModOscTrigCS.jpg

Published as pre-release. 2021.10.13.0

2021-09-27

Changed the Tuned Delay a bit

TModTunedDelay.jpg

Added fine control for the feedback level and made the feedback inversion work. Also changed the size and layout a bit to make it look more logical.

Published as pre-release. 2021.9.27.0

2021-09-26

A couple of changes

Added Lagrange and Hermite interpolation for the KS, Looper, StereoLooper and TunedDelay modules.

For the KS module the different interpolation modes mostly make a change for high feedback and brightness; some are more and others less frequency dependant, but, overall, in all modes low notes sound longer and brighter than high ones.

For the KS module the feedback was limited to 0.999 (-0.01dB), with 100% feedback it could get stuck - it can still behave a tad weird with high feedback and brightness in the Lagrange mode.

For the TunedDelay module the compensation was changed from integer to float mode, and the range was shortened from 128 to 16.

The feedback polarity selection for the TunedDelay module is not working yet.

Published as pre-release. 2021.9.26.0

2021-09-22

Updated help

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

Published as pre-release. 2021.9.22.0

Added Levy flight mode to the RandomWalkLfo

Added an extra mode to the RandomWalkLfo, and renamed the L, which stood for Linear, to B, which stands for Brownian. The Levy flight mode got the L for a shoertcut - the default is still E(xponential).

Published as pre-release. 2021.9.21.0

2021-08-10

Extra mode for the pan and fade modules

Added an extra mode (lin2) to the Pan, XFade and XFadeStereo modules. It just has twice the output amplitude as the Linear mode. I’ve added it as the last mode to keep older patches compatible.

Published as pre-release. 2021.8.10.0

[Read more…]

2021-07-31

More resolution on the hints

Added two extra digits on some of the hint values for knobs. This involves Time. Frequency, Multiplier and BPM values.

Published as pre-release. 2021.7.31.0

No idea how useful this is, but the idea was that it might be easier to get an idea about how much LFO values and Delay values would be off relatively to each other.

The display values are unchanged.

2021-07-18

Found pixels …

Later … found a couple of pixels …

Published as pre-release. 2021.7.18.1

Changed output for Arpeggiator

TModArpeggiator.jpg

Added a Changed output for the arpeggiator module, it is unmarked and just above the regular output - I may find pixels later on o_o.

For now, the connector popup will show the purpose.

Published as pre-release. 2021.7.18.0

2021-07-10

Added a sync output to the RandSigs module

TModRandSigs.jpg

The sync output syncs to the leftmost outputs, not that the actual output used makes much difference … basicaly it syncs to the rate, ignoring the sample and hold input.

Published as pre-release. 2021.7.9.0

2021-07-05

Upped the current pre-release

TModLog2.jpg

The current pre-release was upped to officially include the changes in the three posts before … the RandSigs quadratic mode, the bug fix in the PDosc module and the inclusion of the Log2 module.

The Log2 module is the inverse (with some restrictions for low input values) of the Power2 module.

Published as pre-release. 2021.7.5.0

Quadratic mode for RandSigs module

TModRandSigs.jpg

Added a quadratic mode for the RandSigsModule, when on the ouptput values are squared. By default it is off to replicate the old time behaviour.

This is to make the higher values less likely, more quietness into patches …

This is in the current pre-release, you may have to reload it.

2021-07-01

Made the AMuse module polyphonic

TModAMuse.jpg

Otherwise it still works the same way.

Published as pre-release. 2021.7.1.1

2021-06-24

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

2021-06-05

Added cents modulation to KS module

TModKS.jpg

Added cents modulation to KS module.

2021-06-02

Added an Enable input to the Divider

TModDivider.jpg

Added an enable input to the divider module, when unconnected it is active.