- Debug screen
Manual compilation mode may be on, in which case there will be a a flashing white or yellow indicator in the top pane. Use the Action menu to turn manual compilation off. The Action menu will also show the keyboard shortcuts for this.
At startup Wren checks to see if the help information is up to date. When not it will generate new help info, and for some reason in order to generate the images right the images have to be made actually visible on the screen … which looks a bit odd … but it will be only once for each new release.
When you see this on every startup it may be the case that there is no write access allowed to the folder where Wren resides. It's best to not have Wren in a windows owned folder (like 'Program Files', for instance) as such may cause disallowed write access.
I've made an option to disable automatic doc file generation. This option is off by default (so docs will be generated out of the box), and this feature will only work when you use the old wren.ini file, e.g. when you copy the new executable over the old one (or copy the old ini file to the new location). You can always manually generate documentation from the settings screen
F3 by using the 'generate documentation …' button there. Note however that when no docs were generated the popups from the module selector will not show a module image, or an old version of the image.
I'll often have a live stream going with at least a large part of the sounds being made by Wren. This usually will be some self playing patch(es), but you may catch me in live bug finding too, YMMV …
The live stream can also be heard as radio 6 (noodle radio) on the electro-music radio page
F2 to return to the patch editor.
Click and hold on a connector, the whole connected wire net will be highlighted. In the top tool bar the 'wires' indication will turn yellow when the wires were turned off, you can click on it to get the wires back (or use
Crl+W for that. It is also possible that the wire size was set to zero, just up it then to get the wires back.
Ctrl+space to wiggle the wires, the value might become readable then. Otherwise hover the mouse over the knob controlling the display. Not all controls have a value showing popup yet, but working on that. Alternatively, set the wire size to zero to hide all wires (this is the up/down control in the top pane, labeled with 'wires'). It is also possible to temporarily hide the wires using
Ctrl+W again to make them visible again.
In the top tool bar the 'wires' indication will turn yellow when the wires were turned off, you can click on it to get the wires back (or use
Ctrl+W. Also changing the wire sise will always make the wires visible (unless when set to zero).
The wire thickness may have been set to zero, in the editor top pane under 'wires' you can change this with the up/down control. It may also be that the wires were set to be invisible (in that case the 'wires' indicator will be yellow), use
Ctrl+W to toggle wire visibility - or click on the 'wires' word in the top tool bar.
It is possible to set selected wire trees to be invisible, thay can be made visible from the action menu in this case (or just use
For me running Wren under Wine on OSX 10.10.3 (Yosemite) showed some issues with wire painting, I have no cure for that.
Ctrl+F to find modules in the patch by name, partial matches will be highlighted as well. For instance, search for 'verb' to find all modules having that bit of text in their title. Found modules will light up their title bar. This feature can be enabled from the settings screen
F3. Clear the search box by pressing the
Escape. Also see the next section for more on this.
Ctrl+F to find modules in the module selector by name. All modules not found will be hidden, and all pages that become empty this way will be hidden as well. To show all modules again clear the search box. This feature can be enabled from the settings screen
F3. Clear the search box by pressing
The search function can look into the patch as well. When this is enable the found modules will get selected in the patch. This option is on by default is can be turned off in the settings screen
The search function can look into the module docs as well. This feature is off by default but you can turn it on in the settings screen
F3 or in the right mouse context menu of the search field.
When searching the docs a button will appear on the right side of the search field showing how many hits there are for the search phrase. This is called description search. Description search will match whole words only to reduce the number of hits a bit.
When clicking on the results button (or when pressing
Enter while still in the search box) a window will popup showing a bit of context for the matches.
From that window you can go to the module help for the item you select in it or you can make it show that module in the module selector. The search filed will be refocussd in that case, so you can use
Enter to go back into the popup window or use
Escape to clear the search.
As of version 2020.8.6.0 Wren is polyphonic and multi timbral.
Wren used to be a monophonic synth before.
Almost all modules are fully polyphonic, some are monophonic and some are mixed mono/poly. Modules that are polyphonic or mixed mode can be set into mono mode from the module right click context menu. The module documentation will show the poly mode for each module.
Mixed mode modules, like the delay lines will do a voice summation on the inputs, but the modulation inputs will then still act in poly mode. So for instance you can have different delay times for each voice from the delay modules (but only trough modulations, the knob values will always be shared over all voices).
A good way to get voice diversification is to use some random module (all random modules have independent randomness for their voices). Or you could use the PolyStatus module which has an output that holds the (polyphony relative, the output value will always be in the range [0 … 1]) number of the voice.
Inputs are round, outputs are square. The color indicates the signal type where red is an audio rate signal and blue is a control rate signal. Yellow indicates a logic level signal, usually -1 or +1 but there are exceptions where the values are 0 or 1. Lime (bright green) indicates a control rate logic signal and darker green (control rate) or orange (audio rate) indicate logic levels that are in the 0 … 1 range.
You can freely mix all signal types, the color is just a hint, although a Blue, Lime or Green inputs will not see all samples of a Red, Yellow or ORange type signal (often this will not matter).
A lot of modules are rate smart, they will adjust their calculation rate from control rate to audio rate when an audio rate signal gets connected to one of it's inputs (and the connectors on it will change color too then).
it depends on the mode you have set in the settings screen
* circular - a mouse drag around he knob changes it. * horizontal - a horizontal mouse drag changes it. * vertical - a vertical mouse drag changes it.
Additionally when a knob is active, that is when it's up/down clickers are visible (and it has a red (or fuchsia) border as well then), you can click on the up or down clicker, or use the
cursor up / down keys. A knob can be made active by positioning the mouse cursor over it or by tabbing to it.
You can also enable the mouse wheel on knobs in the settings screen
There is another knob variant that has no knob but only the up / down clickers, this type will listen to the
arrow keys when selected (and to the mouse wheel as well, when that was enabled).
these can be either horizontal or vertical and will behave as if they were knobs, but the mouse drag mode is restricted to horizontal or vertical only. They will respond to the mouse wheel too, when the mouse wheel option was enabled.
these look like displays, but have a yellow border. You can
click on a selector to get to the next value, or
right click on them to get a popup menu to select a value from. Selectors also can get focus by positioning the mouse over them, when they have focus to the
up / down arrow keys can be used as well to change the values.
Some selectors act as momentary switches, or buttons, these will have a white border.
Displays do not have a colored border.
When wheel mode is used just hover over the knob and wheel the wheel. Moving the mouse over a knob will set it to be focused, and once a knob is focused the keyboard
up / down arrows can be used to change it's values too. A knob can also be selected by tabbing to it. There are also vertical (and horizontal) sliders those will only support the vertical (horizontal) move mode (along with the mouse wheel mode, when enabled). Selectors will also receive focus when the mouse is moved over them.
set default value or lock / unlock the knob (a locked knob will not listen to mouse control changes).
break a connection - there are some options to select from.
Cut copy or delete it, or change its border color etc.
selectors have a yellow or a white border, you can
right click to get a popup menu for selecting a value.
some preset curves can be selected, a couple of symmetry options are available and the graph can be saved to or loaded from a file.
module options, like copy paste, module insertion.
Double click on the module caption, an editor pops up then. When done hit
Enter to commit the changes or
Escape to discard them. A changed module caption when moved over by the mouse will still show the module's type. When the first character of the module title is '@' the module is enabled for receiving OSC messages.
Ctrl+left click on it, or tab to it (or click on it) and use the
Enter key. This can also be done by right clicking on it and then select Edit from the popu menu. To close the editor use
Ctrl+Enter. Module titles and single line editors just use
Ctrl+Enter to save the changes, or
Escape to discard them. You can also
click outside the editor to make it go away (and discard changes). Single line editors can be closed with just
Enter as well.
When you right click on a single module, or on a collection of selected modules you will see an option to save or load the selection as a preset. The control values will be saved to or read from a file then.
setup/MIDI setupselect the MIDI devices to be used for input and output. Also there select a MIDI Channel to be used and, when usung (N)RPN, select the (N)RPN preferred mode to be used.
The OSC configuration can be reached trough the main menu
Each Wren instance can either be an OSC transmitter (client) or an OSC receiver (server), but not both at the same time. The client / server indications are official OSC terms (and also see the CNMAT pages.
There can be multiple listeners (servers) on one computer, but you can have one transmitter (client) only on any single computer (but you could have more transmitters (clients) spread over multiple computers).
When everything is set up correctly the Wren instance should be able to talk to or listen to any OSC enabled device (or software) present on your network (or computer). It is not possible to broadcast OSC messages out of your local network. With the proper holes set in routers etc. it should still be possible to set up a single transmitter (client) to receiver (server) link though.
Note: in the OscMessage module you do not specify the the leading slash
/ character, Wren will add it it by itself.
Note: OSC address patterns are case sensitive, as in Module will not match module.
F3make sure you give your synth a name, this name will be used as part of the OSC addresses sent around and listened to.
Setup / OSC setupscreen for the following settings:
F3make sure you give your synth a name, this name will be used as part of the OSC addresses sent around and listen to.
Setup / OSC setupscreen for the following settings:
The test button sends a single OSC message to the address /*/testmessage with a float value of 1.000 an integer value of 1001, and a string value of '1002'.
There is no OSC connect light as OSC is used over UDP, a connectionless protocol, so there is no concept of connection but only of transmitted and received packages of data. There is a light indicating OSC to be active though, the 'a' light (in the I/O control section on the right side of the screen).
The OSC listener (server) implementation used does not send replies to to the transmitter (client).
The lower level protocol used to transmit the OSC messages is UDP. UDP messages are not guaranteed to be received in the same order as they were sent, or in fact not guaranteed to be received or sent at all. Usually it will work, but on a busy network packets may get lost. Also it is possible to send OSC messages faster than the network can get them out, in that case not all messages will be sent.
OSC time stamps are not supported, bundled messages can be received but are not processed currently. Bundles are not transmitted currently. All message handling is immediate.
Note that each address can be used only once in a patch, when it occurs multiple times an arbitrary OSC handler will handle it and the other handlers will think it to be handled after that. You can have multiple transmitters using the same address though.
The following addresses are currently being used:
@character. They then can be addressed with a /<synthname>/<modulename_without_@>/<control_name> pattern. The first value in the message must be of type 'f' (float) with a value from zero to one, with zero mapping to the lowest possible knob value and one mapping to it's highest possible value. Please note that OSC messages are case sensitive.
What I did:
* Installed JACK, I've used the mixed 64/32 bit version. * Followed the 'Installation and Configuration' section from http://jackaudio.org/faq/jack_on_windows.html
With this I was able to get audio out of Wren into JACK and out of JACK into Wren … and it looks like I get an exact copy of what I send in channels 1 and 2 back in the inputs 1 and 2.
NOTE: Wren has no native JACK support … of course … I'll look into that, but it will be a long term project - the C header files will need to be ported to Delphi.
NOTE: To see some error reporting in Wren you can try the debug screen
F5, it may show a reason for not being able to connect to JACK.
NOTE: This will allow for audio integration with your DAW, assuming that the DAW uses ASIO.
In the settings screen
F3 you can set a default color and an opacity value. The opacity value determines the saturation of the module colors. In the patch editor you can select the modules to be colored, then
right click on any of the selected modules and select the color option from the popup menu.
It is also possible to use the module standard colors, both for new modules added and from the module popup menu.
Module colors will be saved with the patch.
Wire colors can be changed by
right click ing on a connector and then selecting one of the color options from the popup menu.
Wire colors will be saved with the patch.
There is a special color being used to make wires invisible, select 'invisible wire' for that from the connector popup menu. Invisible wires that are not connected to an output connector will still show and double clicking on a connector with invisble wires will show the wire as well. Also there is an option in the action menu to make invisible wires visible.
The mHz, Hz and kHz modifiers use a scaling of 1/128 units per semitone (unless the default scaling was changed), units can be negative values for low frequencies. The nn modifier uses a scaling of 1 per semitone, note numbers can be negative or fractional just like frequencies can be. By default note number 69 (A4) maps to 0 units and there are 12 notes in an octave but this can all be changed by the user. A cent is a fixed interval of 21/1200, it does not scale with the note number mapping (or actually it may, but that needs to be fixed then, please let me know where it hurts).
The randomizer is just that, it randomizes controls. This can be done for a single conrol (from it's context popup menu), for a single module (from it's context popup menu) or for a group of modules (from the module context popup menu, or from the action menu). The amount of random can be set from the randomizer / mutator window. Low values will leave the patch more as-is than high values.
The >mutator implements a primitive genetics tool. The idea is that the parameters of the patch form a genome. This genome can be altered by the mutator in a sexual and in some asexual ways.
The graphic images are a visual interpretation of the parameters present in the patch. Every parameter is represented by an angle, and then a line is drawn under that angle to the next parameter - which forms the worms. Worms are then scaled to fit the cage they are in.
Asexual reproduction can be plain random … which does not really reproduce anything (as all information is lost), or a mutation (which does keep some information and looses some as well). Mutations can be controlled with a probability and a range. The probability sets the chance that a a change occurs, and the range determines how much of a change can occur.
Sexual reproduction picks parts of one genome and parts of another and makes a mix of that. The crossover probability determines how often a parameter pick switch is made from the first to the second 'parent'. Also in sexual reproduction there is some mutation involved.
In the randomizer window the parents are in the breeder bit, the leftmost one being one parent and the rightmost one the other.
The mutate button just mutates the existing worms between the left and the right parent. The randomize button sets random genomes for the same six and the mate button performs the sexual thing with both parents leading to a a sixling … erm … if that is a word.
And then you can drag around stuff, like drag a worm onto the patch worm to make the patch have the dropped params. Or drop something on the left morph and something else on the right one, and then you can do a live morph between those.
The scratch area is just that - drag stuff there for later use in one of the active squares.
Clicking on a worm will copy it to the patch, this happens for the morph and scratch things in the same way … but you can also drag worms to the patch square.
Then when you have a left and a right morph the live morph control can fade between the two. This can also be automated by using a LiveMorph module in the patch, with a checkbox to enable or disable the function, this function is disabled at program startup … to avoid possibly confusing things to happen in a patch.
… when done recursively … that is, pick a nice genome for one parent and another nice one for the other … and breed and repeat … you can do some manual eugenics on patches. And the scratch area can hold a smallish population. Oh and you can kill too of course - that's what the eraser is for - drag drop the eraser on a worm and it ceases to exist (which can be done on the scratch area only). Nice in this case meaning that you like the sound.
For both the randomizer and the mutator exclusions can be set. Some exclusions are set by the system for parameters that would make no sense to be randomized, or which would need patch recompilation when changed. Others can be user enabled or disabled, all from the context menu popup.
Excluded controls and modules will get a red border in the exclusion visibility mode (this can be turned on or off from the action menu). When the randomizer / mutator window is visible (view menu) this mode will be on as well.
There are a couple of keyboard commands too - those are listed in the Action and View menus.
The Wren forum thread may have some info not listed here.