This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
faq [2022/03/29 18:46] jan |
faq [2022/06/30 13:59] (current) jan [MIDI setup] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | < | + | ===== (Less) Frequently Asked Questions ===== |
- | < | + | |
- | <ul class=' | + | |
- | </ | + | |
- | Use the installer to install <?php wren();?>, see above for details. | + | |
- | < | + | |
- | < | + | |
- | On a first start of a new version the program will write out some help files. | + | |
- | This may look a bit messy, it will only happen once when a new <?php wren();?> | + | |
- | version is run for the first time (and it can be disabled if wanted). | + | |
- | </ | + | |
- | < | + | |
- | On the first <?php wren();?> | + | |
- | be done from the main menu: < | + | |
- | </ | + | |
- | < | + | |
- | For a quick test you could drag in an oscillator module (Osc) and an output | + | |
- | module (AudioOut). You can use <?php dokey( ' | + | |
- | quickly (they are on the first (I/O, pick the speaker symbol there) and second | + | |
- | (Osc1, pick the leftmost sine symbol there) selector tab respectively). | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | Then connect the Osc's output at the bottom right corner to the AudioOut L 1 R | + | |
- | inputs. | + | |
- | < | + | |
- | Next hit <?php dokey( ' | + | |
- | level meter in strip 1 on the right side of the screen should indicate this. | + | |
- | Hitting <?php dokey( ' | + | |
- | </ | + | |
- | </ | + | |
- | </td> | + | |
+ | ==== When modules are added or wires are changed, nothing happens ==== | ||
- | < | + | Manual compilation mode may be on, in which case there will be a a flashing white or yellow indicator |
- | <ul class=' | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | When an ASIO device is being used things | + | |
- | rate differs from the <?php wren();?> | + | |
- | <?php settings();?> | + | |
- | </ | + | |
- | < | + | |
- | Had a user report that the program would not run in Windows 7. Turned out his | + | |
- | antivirus was blocking it as an unsigned program that was downloaded from the | + | |
- | web & | + | |
- | device, path or file you may not have the appropriate permission' | + | |
- | Please fix such issues | + | |
- | </ | + | |
- | < | + | |
- | Had another user report repeatedly popped up access violations. It seems that | + | |
- | this can be caused by the PortAudio DLL (or <?php wren();?>' | + | |
- | it most likely). You can read more about this on an electro-music.com <a | + | |
- | href=' | + | |
- | >forum thread</ | + | |
- | </ | + | |
- | < | + | |
- | When the startup screen appears and disappears again and <?php wren();?> | + | |
- | not start try to temporarily rename the espeak_sapi.dll to _espeak_sapi.dll, | + | |
- | when that helps I'd like to know about it, please send me the | + | |
- | <?php wren();?> | + | |
- | create in the Installation section above). | + | |
- | </ | + | |
- | < | + | |
- | On some computers it was reported that when an audio input was selected | + | |
- | PortAudio refused to work (reporting an error on opening the input stream). | + | |
- | For <?php wren();?> | + | |
- | select & | + | |
- | </ | + | |
- | < | + | |
- | From time to time I'm discovering exciting new bugs, so please let me know | + | |
- | about any failures. | + | |
- | </ | + | |
- | </ | + | |
- | </td> | + | |
+ | ==== What is the display mess (when I first start a new release) ==== | ||
- | < | + | At startup |
- | <ul class=' | + | |
- | </td>< | + | |
- | < | + | |
- | < | + | |
- | When NOT using ASIO, in the device selector (main menu: < | + | |
- | )</b> use a buffer size like 2048. You can set a buffer size of zero, in which | + | |
- | case the PortAudio DLL will decide on a buffer size. | + | |
- | </ | + | |
- | < | + | |
- | | + | |
- | by the ASIO driver is being used instead. So for ASIO you will need to set the | + | |
- | buffer size from the ASIO control panel (and should set the buffer size in | + | |
- | <?php wren();?> | + | |
- | </ | + | |
- | <!-- | + | |
- | < | + | |
- | For the 32 bit version: there may also be a bug in one of the modules causing | + | |
- | it to produce denormal values, | + | |
- | calculations (as shown in the DSP usage indicator). There is a diagnostic tool | + | |
- | to find out about this, in the <?php debug();?> | + | |
- | denormal searching. Any modules getting or producing denormals will then be | + | |
- | highlighted in the editor. Please report any such issues along along with the | + | |
- | patch causing the problems. | + | |
- | < | + | |
- | Note: this can not be an issue for the 64 bit version. | + | |
- | </ | + | |
- | --> | + | |
- | < | + | |
- | Your patch may be too complex, have a look at the CPU percentage next to the | + | |
- | module selector, at around 80% things can become critical, enlarging the | + | |
- | buffer size may help, lowering the Sample rate and/or enlarging the Control | + | |
- | decimation in the <?php settings();?> | + | |
- | </ | + | |
- | <!-- | + | |
- | < | + | |
- | The 64 bit version performs way better than the 32 bit version, so use that | + | |
- | one if possible. | + | |
- | </ | + | |
- | --> | + | |
- | </ | + | |
- | </td> | + | |
+ | 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 ' | ||
- | < | + | I've made an option to disable automatic doc file generation. This option |
- | <ul class='faq'> | + | |
- | <li class=' | + | |
- | There is no sound | + | |
- | </ | + | |
- | </ | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | you will need to select a sound output device from the < | + | |
- | devices</ | + | |
- | </ | + | |
- | < | + | |
- | | + | |
- | </ | + | |
- | < | + | |
- | Mute may be on, in which case there will be a flashing yellow sign in the top | + | |
- | pane indicating this. Use the Action menu to toggle this. The Action menu will | + | |
- | also show the current keyboard shortcut for this. | + | |
- | </ | + | |
- | </ | + | |
- | </td> | + | |
+ | ==== Can I hear it? ==== | ||
- | < | + | I'll often have a [[http:// |
- | <ul class='faq'> | + | |
- | <li class=' | + | |
- | When modules are added or wires are changed, nothing happens. | + | |
- | </li> | + | |
- | </ul> | + | |
- | </td>< | + | |
- | 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. | + | |
- | </td> | + | |
+ | The live stream can also be heard as radio 6 (noodle radio) on the electro-music [[https:// | ||
- | < | + | ==== Can I see it? ==== |
- | <ul class=' | + | |
- | </ | + | |
- | Try setting the sample rate higher. Out of the box <?php wren();?> | + | |
- | a sample rate of 44.1 kHz, setting it to 88.2 kHz or 96 kHz makes it sound a lot | + | |
- | better. | + | |
- | < | + | |
- | As of version 2015.9.10.0 | + | |
- | when you have an earlier install the existing INI file may still set the sample | + | |
- | rate to a lower value. So, please check the <?php settings();?> | + | |
- | < | + | |
- | In versions prior to 2019.11.12.0 there was a bug where some audio rate (red) | + | |
- | wires might turn blue (control rate). When this is the case redrawing these wires | + | |
- | will help. This < | + | |
- | < | + | |
- | When this does not help please let me know about the issue. along with the badly | + | |
- | performing patch. | + | |
- | </td> | + | |
+ | There are some third party made basic instruction videos availble on [[https:// | ||
- | < | + | ==== Where is my patch ==== |
- | <ul class=' | + | |
- | release)</ | + | |
- | </ | + | |
- | At startup <?php wren();?> | + | |
- | 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 | + | |
- | & | + | |
- | release. | + | |
- | < | + | |
- | When you see this on every startup it may be the case that there is no write | + | |
- | access allowed to the folder where <?php wren();?> | + | |
- | <?php wren();?> | + | |
- | 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 <?php settings();?> | + | |
- | ' | + | |
- | generated the popups from the module selector will not show a module image, or an | + | |
- | old version of the image. | + | |
- | </td> | + | |
+ | Hit '' | ||
- | < | + | ==== Where does that wire go ==== |
- | <ul class=' | + | |
- | </ | + | |
- | Try to see the <?php debug();?>, | + | |
- | you <?php dokey( 'right click' | + | |
- | another <?php dokey( 'right click' | + | |
- | information present there to help troubleshoot issues. By default this information | + | |
- | is written to a log file in the <?php wren();?> | + | |
- | look for wren.log. | + | |
- | </td> | + | |
+ | '' | ||
- | < | + | ==== I can not read the display values, it's all covered by wires ==== |
- | <ul class=' | + | |
- | </ | + | |
- | All modules have some built in documentation, | + | |
- | to see it. When doing for this the first time (or after a program upgrade) the | + | |
- | program may have to regenerate the help files, causing some display clutter. The | + | |
- | information will be shown in your default web browser. | + | |
- | < | + | |
- | <?php dokey( | + | |
- | this will show the same description as the generated help file without opening a | + | |
- | browser. | + | |
- | < | + | |
- | Also when you hover over the module selector with the mouse, popups will be shown | + | |
- | with some even more compact information along with an image of the module. | + | |
- | < | + | |
- | The generated help information is also used as a cache for module images to make | + | |
- | them look a bit nicer when you hover the mouse over the buttons in the module | + | |
- | selector. | + | |
- | </td> | + | |
+ | Use '' | ||
- | < | + | In the top tool bar the 'wires' |
- | <ul class='faq'><li class=' | + | |
- | </ | + | |
- | I'll often have a <a href=' | + | |
- | >live stream</ | + | |
- | <?php wren();?> | + | |
- | catch me in live bug finding too, YMMV & | + | |
- | < | + | |
- | The live stream | + | |
- | <a href='https:// | + | |
- | </td> | + | |
+ | ==== The, or some, wires are not visible in the editor ==== | ||
- | < | + | The wire thickness may have been set to zero, in the editor top pane under 'wires' |
- | <ul class='faq'><li class='faq'>Can I see it?</ | + | |
- | </ | + | |
- | There are some third party made basic instruction videos availble on <a | + | |
- | href='https:// | + | |
- | some more can be seen on the <a | + | |
- | href='https://www.youtube.com/ | + | |
- | > | + | |
- | </td> | + | |
+ | 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 |
- | <ul class=' | + | |
- | </td>< | + | |
- | I've put up a lot of my <?php wren();?> | + | |
- | href=' | + | |
- | >on my website</ | + | |
- | properly. | + | |
- | </td> | + | |
+ | ==== There is a reverb in my patch, but where is it? ==== | ||
- | < | + | Use '' |
- | <ul class='faq'><li class='faq'>Where is my patch</ | + | |
- | </ | + | |
- | Hit F2 to return | + | |
- | </td> | + | |
+ | ==== There should be a module with a name like verb, but on what selector page is it? ==== | ||
- | < | + | Use '' |
- | <ul class='faq'><li class='faq'>Where does that wire go</ | + | |
- | </ | + | |
- | <?php dokey( 'Click and hold' | + | |
- | | + | |
- | when the wires were turned off, you can click on it to get the wires back (or use | + | |
- | <?php dokey( | + | |
- | set to zero, just up it then to get the wires back. | + | |
- | </td> | + | |
+ | 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 |
- | <ul class=' | + | |
- | <li class=' | + | |
- | I can not read the display values, it's all covered | + | |
- | </ | + | |
- | </ | + | |
- | </ | + | |
- | Use <?php dokey( ' | + | |
- | readable then. Otherwise hover the mouse over the knob controlling the display. | + | |
- | Not all controls have a value showing popup yet, but working | + | |
- | < | + | |
- | Alternatively, | + | |
- | control | + | |
- | hide the wires using <?php dokey( | + | |
- | <?php dokey( ' | + | |
- | < | + | |
- | In the top tool bar the ' | + | |
- | when the wires were turned off, you can click on it to get the wires back (or use | + | |
- | <?php dokey( ' | + | |
- | visible (unless when set to zero). | + | |
- | </td> | + | |
+ | 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 |
- | <ul class=' | + | |
- | <li class=' | + | |
- | </ | + | |
- | </ | + | |
- | The wire thickness may have been set to zero, in the editor top pane under ' | + | |
- | you can change this with the up/down control. It may also be that the wires were | + | |
- | set to be invisible | + | |
- | <?php dokey( | + | |
- | | + | |
- | < | + | |
- | 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 <?php dokey( ' | + | |
- | <?php dokey( ' | + | |
- | < | + | |
- | For me running <?php wren();?> | + | |
- | issues with wire painting, I have no cure for that. | + | |
- | </td> | + | |
+ | 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 '' | ||
- | < | + | ==== Polyphony ==== |
- | <ul class=' | + | |
- | <li class=' | + | |
- | </ | + | |
- | </ | + | |
- | Use <?php dokey( ' | + | |
- | matches will be highlighted as well. For instance, search for ' | + | |
- | modules having that bit of text in their title. Found modules will light up their | + | |
- | title bar. This feature can be enabled from the <?php settings();?> | + | |
- | search box by pressing the <?php dokey( ' | + | |
- | for more on this. | + | |
- | </ | + | |
+ | As of version 2020.8.6.0 //Wren// is // | ||
- | < | + | //Wren// used to be a // |
- | <ul class=' | + | |
- | <li class=' | + | |
- | There should be a module with a name like verb, but on what selector page is | + | |
- | it? | + | |
- | </li> | + | |
- | </ul> | + | |
- | </td>< | + | |
- | Use <?php dokey( ' | + | |
- | 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 <?php settings();?> | + | |
- | <?php dokey( ' | + | |
- | < | + | |
- | 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 <?php settings();?> | + | |
- | < | + | |
- | 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 <?php settings();?> | + | |
- | 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 <?php dokey( ' | + | |
- | 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 <?php dokey( ' | + | |
- | the popup window or use <?php dokey( ' | + | |
+ | 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, |
- | <ul class=' | + | |
- | </ | + | |
- | As of version 2020.8.6.0 <?php wren();?> | + | |
- | timbral</ | + | |
- | < | + | |
- | <?php wren();?> | + | |
- | < | + | |
- | 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. | + | |
- | < | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | < | + | |
- | 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. | + | |
- | </td> | + | |
+ | 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. | ||
- | < | + | ==== About inputs and outputs ==== |
- | <ul class=' | + | |
- | </ | + | |
- | 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 | + | |
- | 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). | + | |
- | </td> | + | |
+ | 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 |
- | <ul class=' | + | |
- | </ | + | |
- | <?php dokey( 'Click and hold' | + | |
- | connector, then release the mouse button. | + | |
- | inputs to an output. | + | |
- | < | + | |
- | It is not possible to connect an input to multiple outputs, and it is not possible | + | |
- | to connect an output to an output. | + | |
- | < | + | |
- | It is not necessary to connect each input to an output separately, you can make a | + | |
- | chain connection from input to input & | + | |
- | < | + | |
- | When a connection chain is not connected to an output it will have a highlight | + | |
- | color to indicate | + | |
- | connected to (the color can be changed from the connector context popup menu). | + | |
- | </td> | + | |
+ | 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). | ||
- | <td> | + | Also see [[wire_colors | wire colors]], [[add_wires | add wires]] and [[remove_wires | remove wires]]. |
- | < | + | ==== How to change parameters ==== |
- | </ | + | |
- | By using <?php dokey( ' | + | |
- | connector to reconnect it, or into the void (anywhere but on another connector) to | + | |
- | make it go away. There also is a connector context menu (accessible with a | + | |
- | <?php dokey( 'right moue click' | + | |
- | </td> | + | |
+ | === Knobs === | ||
- | < | + | it depends on the mode you have set in the settings |
- | <ul class=' | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | Knobs & | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | 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 <?php dokey( | + | |
- | 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 <?php settings();?> | + | |
- | < | + | |
- | There is another knob variant that has no knob but only the up / down | + | |
- | clickers, this type will listen to the <?php dokey( | + | |
- | selected (and to the mouse wheel as well, when that was enabled). | + | |
- | </ | + | |
- | < | + | |
- | Sliders – 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. | + | |
- | </ | + | |
- | < | + | |
- | Selectors – these look like displays, but have a yellow border. You can | + | |
- | <?php dokey( ' | + | |
- | <?php dokey( 'right click' | + | |
- | from. Selectors also can get focus by positioning the mouse over them, when | + | |
- | they have focus to the <?php dokey( ' | + | |
- | 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 <?php dokey( ' | + | |
- | 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. | + | |
- | </td> | + | |
+ | * 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 |
- | <ul class=' | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | On a knob – set default value or lock / unlock the knob (a locked knob | + | |
- | will not listen to mouse control changes). | + | |
- | </ | + | |
- | < | + | |
- | On a connector – break a connection ‐ there are some options to | + | |
- | select from. | + | |
- | </ | + | |
- | < | + | |
- | On a module – Cut copy or delete | + | |
- | </ | + | |
- | < | + | |
- | On a selector – selectors have a yellow | + | |
- | dokey( ' | + | |
- | </ | + | |
- | < | + | |
- | On a graph – some preset curves | + | |
- | options are available and the graph can be saved to or loaded from a file. | + | |
- | </ | + | |
- | < | + | |
- | On the editor background – module options, like copy paste, module | + | |
- | insertion. | + | |
- | </ | + | |
- | </ | + | |
- | </td> | + | |
+ | 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 '' |
- | <ul class=' | + | |
- | </ | + | |
- | <?php dokey( | + | |
- | When done hit <?php dokey( | + | |
- | <?php dokey( ' | + | |
- | by the mouse will still show the module' | + | |
- | module title is ' | + | |
- | </td> | + | |
+ | === Sliders === | ||
- | < | + | these can be either horizontal or vertical |
- | <ul class=' | + | |
- | <li class=' | + | |
- | </ | + | |
- | </ | + | |
- | <?php dokey( ' | + | |
- | the <?php dokey( ' | + | |
- | | + | |
- | dokey( ' | + | |
- | dokey( ' | + | |
- | </td> | + | |
+ | === Selectors === | ||
- | < | + | these look like displays, but have a yellow border. You can '' |
- | <ul class='faq'><li class='faq'>How to close a text editor</ | + | |
- | </ | + | |
- | Use <?php dokey( ' | + | |
- | to discard | + | |
- | it go away (and discard | + | |
- | <?php dokey( | + | |
- | </td> | + | |
+ | Some selectors act as momentary switches, or buttons, these will have a white border. | ||
- | < | + | Displays do not have a colored border. |
- | <ul class=' | + | |
- | </ | + | |
- | 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. | + | |
- | </td> | + | |
+ | 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 '' | ||
- | < | + | === right mouse clicks === |
- | <ul class=' | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | Trough the main menu item < | + | |
- | to be used for input and output. | + | |
- | </ | + | |
- | < | + | |
- | In the <?php settings();?> | + | |
- | (N)RPN preferred seting. | + | |
- | </ | + | |
- | </ | + | |
- | </td> | + | |
+ | == On a knob == | ||
- | < | + | set default value or lock / unlock |
- | <a id=' | + | |
- | <ul class=' | + | |
- | </ | + | |
- | 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 <a href=' | + | |
- | (and also see the <a href=' | + | |
- | 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. | + | |
- | < | + | |
- | < | + | |
- | character, <? wren(); ?> will add it it by itself. | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | <b>To set up <?php wren();?> | + | |
- | following:</ | + | |
- | < | + | |
- | < | + | |
- | In the <?php settings(); ?> make sure you give your synth a name, this name | + | |
- | | + | |
- | </ | + | |
- | < | + | |
- | Then go trough the main menu to the Setup / OSC setup screen for the following | + | |
- | settings: | + | |
- | </ | + | |
- | < | + | |
- | The IP address must be set to a broadcasting address to allow for multiple | + | |
- | receivers, otherwise the IP address of the single receiver can be used. The | + | |
- | address to use depends on your network configuration but selecting | + | |
- | 255.255.255.255 should always work. Locally I use 192.168.1.255 as the address | + | |
- | which will reach all computers in the address range 192.168.1.x. When | + | |
- | everything is on one computer using 127.0.0.1 or localhost works too. | + | |
- | </ | + | |
- | < | + | |
- | The port must be set to a number | + | |
- | computers. When you select a port that is in use you will not be able to | + | |
- | transmit a test message later on, and OSC errors will be reported in the log | + | |
- | (OSC error logging is on by default, OSC message logging is off by default). | + | |
- | </ | + | |
- | < | + | |
- | Check the Use OSC checkbox, then hit OK. | + | |
- | </ | + | |
- | < | + | |
- | Reopen the OSC settings screen and then send test messages using the button, | + | |
- | the ' | + | |
- | you probably selected a port that was already in use, so try another one. | + | |
- | </ | + | |
- | </ | + | |
- | <b>To set up <?php wren();?> | + | |
- | following:</ | + | |
- | < | + | |
- | < | + | |
- | In the <?php settings(); ?> make sure you give your synth a name, this name | + | |
- | will be used as part of the OSC addresses sent around. | + | |
- | </ | + | |
- | < | + | |
- | Then go trough the main menu to the Setup / OSC setup screen for the following | + | |
- | settings: | + | |
- | </ | + | |
- | < | + | |
- | The IP address must be set empty (internally 0.0.0.0 will be used in this | + | |
- | case, but the field being empty will open the UDP socket as a listening | + | |
- | (server) socket, filling in anything at all will try to open it as a client | + | |
- | socket, so make sure that the field is completely empty). | + | |
- | When OSC is set up to be a receiver no test messages can be sent from it, and | + | |
- | the button do do so will be disabled when the IP addr field is (completely) | + | |
- | empty. | + | |
- | </ | + | |
- | < | + | |
- | The port must be set to the same value that was used to set up the | + | |
- | transmitter. | + | |
- | </ | + | |
- | < | + | |
- | Check the Use OSC checkbox, then hit OK. | + | |
- | </ | + | |
- | < | + | |
- | Send test messages from the transmitter, | + | |
- | the ' | + | |
- | they do not light up you probably selected a port that was already in use, so | + | |
- | try another one. The test button is only available on the transmitting side. | + | |
- | </ | + | |
- | </ | + | |
- | The test button sends a single OSC message to the address < | + | |
- | with a float value of 1.000 an integer value of 1001, and a string value of | + | |
- | ' | + | |
- | < | + | |
- | 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 ' | + | |
- | the I/O control | + | |
- | < | + | |
- | 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. | + | |
- | </td> | + | |
+ | == On a connector == | ||
- | < | + | break a connection - there are some options |
- | <ul class=' | + | |
- | </ | + | |
- | 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 | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | single OSC message with a float value of 1.000 an integer value of 1001, and a | + | |
- | string value of ' | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | This message has no parameters. The message is received when the current | + | |
- | <?php wren(); ?> instance is set to be an OSC receiver. the message is | + | |
- | transmitted when the current <?php wren(); ?> instance is set to be an OSC | + | |
- | transmitter. Sync messages are naive, they assume zero time delay between | + | |
- | transmitter and receiver. | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | will send or receive a single float message. Messages with a matching address | + | |
- | with more than one parameter can still be processed as long as the first one | + | |
- | is of type ' | + | |
- | needs a low to high transition ‐ you could put an LFO on that, or make | + | |
- | a change detector based upon a sample and hold, or use the differentiator | + | |
- | module. | + | |
- | </ | + | |
- | < | + | |
- | All modules can receive OSC messages when the module title is set to start | + | |
- | with an ' | + | |
- | < | + | |
- | pattern. The first value in the message must be of type ' | + | |
- | 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. | + | |
- | </ | + | |
- | </ | + | |
- | </td> | + | |
+ | == On a module == | ||
- | < | + | Cut copy or delete |
- | <a id=' | + | |
- | <ul class=' | + | |
- | <li class=' | + | |
- | How to get <?php wren();?> | + | |
- | ' | + | |
- | </ | + | |
- | </ | + | |
- | </ | + | |
- | What I did: | + | |
- | < | + | |
- | < | + | |
- | Installed JACK, I've used the mixed 64/32 bit version. | + | |
- | </ | + | |
- | < | + | |
- | Followed the ' | + | |
- | ' | + | |
- | > | + | |
- | the same sample rate as that I run <?php wren();?> | + | |
- | | + | |
- | conversions seem not to be possible). | + | |
- | </ | + | |
- | < | + | |
- | Started <?php wren();?>, | + | |
- | <?php wren();?> | + | |
- | devices I selected JackRouter. | + | |
- | </ | + | |
- | < | + | |
- | Then for the 'In channels' | + | |
- | 'Out channels' | + | |
- | being the default. <?php wren();?> | + | |
- | be selectable arbitrarily from the JACK set. | + | |
- | </ | + | |
- | </ | + | |
- | With this I was able to get audio out of <?php wren();?> | + | |
- | into <?php wren();?> | + | |
- | channels 1 and 2 back in the inputs 1 and 2. | + | |
- | < | + | |
- | NOTE: <?php wren();?> | + | |
- | 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 <?php wren();?> | + | |
- | <?php debug();?>, | + | |
- | < | + | |
- | NOTE: This will allow for audio integration with your DAW, assuming that the DAW | + | |
- | uses ASIO. | + | |
- | </td> | + | |
+ | == On a selector == | ||
- | < | + | selectors have a yellow or a white border, |
- | <ul class=' | + | |
- | </ | + | |
- | In the <?php settings();?> | + | |
- | opacity value determines the saturation of the module colors. In the patch editor | + | |
- | | + | |
- | 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. | + | |
- | </td> | + | |
+ | == On a graph == | ||
- | < | + | some preset curves |
- | <ul class=' | + | |
- | </ | + | |
- | Wire colors | + | |
- | then selecting one of the color options | + | |
- | < | + | |
- | Wire colors will be saved with the patch. | + | |
- | < | + | |
- | There is a special color being used to make wires invisible, select ' | + | |
- | 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. | + | |
- | </td> | + | |
+ | == On the editor background == | ||
- | < | + | module options, like copy paste, module insertion. |
- | <ul class=' | + | |
- | <li class=' | + | |
- | </ | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | (blank) | + | |
- | </ | + | |
- | nothing | + | |
- | </ | + | |
- | < | ||
- | < | ||
- | </ | ||
- | aValue = FrequencyToUnits( aValue / 1000) | ||
- | </ | ||
- | < | + | ==== Change module caption ==== |
- | < | + | |
- | </ | + | |
- | aValue | + | |
- | </ | + | |
- | < | + | '' |
- | < | + | |
- | </ | + | |
- | aValue = FrequencyToUnits( 1000 * aValue) | + | |
- | </ | + | |
- | < | + | ==== How to edit text based controls ==== |
- | < | + | |
- | </ | + | |
- | aValue | + | |
- | </ | + | |
- | < | + | '' |
- | < | + | |
- | </ | + | |
- | aValue = aValue / 360 | + | |
- | </ | + | |
- | < | + | ==== How to close a text editor ==== |
- | < | + | |
- | </ | + | |
- | aValue | + | |
- | </ | + | |
- | < | + | Use '' |
- | < | + | |
- | </ | + | |
- | aValue = aValue / 100 | + | |
- | </ | + | |
- | < | + | ==== How to use presets for modules ==== |
- | < | + | |
- | </ | + | |
- | aValue | + | |
- | </ | + | |
- | < | + | 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. |
- | < | + | |
- | </ | + | |
- | nothing | + | |
- | </ | + | |
- | < | + | ==== MIDI setup ==== |
- | < | + | |
- | | + | |
- | aValue = NoteNumberToUnits( aValue) | + | |
- | </ | + | |
- | < | + | ==== OSC setup ==== |
- | < | + | |
- | </ | + | |
- | aValue | + | |
- | </ | + | |
- | < | + | The OSC configuration can be reached trough the main menu '' |
- | < | + | |
- | </ | + | |
- | aValue = aValue / 256 | + | |
- | </ | + | |
- | < | + | Each //Wren// instance can either be an OSC transmitter (client) or an OSC receiver (server), but not both at the same time. The client |
- | other modifiers | + | |
- | </td>< | + | |
- | will fail | + | |
- | </td></tr> | + | |
- | </tbody>< | + | |
- | < | + | There can be multiple listeners (servers) on one computer, but you can have one transmitter |
- | Also in a context where unit modifiers | + | |
- | e.g. < | + | |
- | notation for flats. The general notation is < | + | |
- | items indicate options, < | + | |
- | < | + | |
- | Note name A4 maps to note number 69 which in turn maps to 440 Hz. The mapping to | + | |
- | 440 Hz can be changed in the program options. [Note: Note names do not work yet | + | |
- | | + | |
- | couple of headache things there still.] | + | |
- | </td> | + | |
+ | 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 '' |
- | <ul class='faq'><li class='faq'>What internal scaling is being used</ | + | |
- | </ | + | |
- | The < | + | |
- | per semitone (unless the default scaling was changed), units can be negative | + | |
- | values for low frequencies. The < | + | |
- | 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 | + | |
- | 2< | + | |
- | may, but that needs to be fixed then, please let me know where it hurts). | + | |
- | </td> | + | |
+ | Note: OSC address patterns are case sensitive, as in Module will //not// match module. | ||
- | < | + | === To set up Wren as an OSC transmitter (client) do the following: === |
- | <ul class=' | + | |
- | </ | + | |
- | As of 2021-04-29 | + | |
- | which can be eused instead. | + | |
- | </td> | + | |
+ | * In the settings screen '' | ||
+ | * Then go trough the main menu to the '' | ||
+ | * The IP address must be set to a broadcasting address to allow for multiple receivers, otherwise the IP address of the single receiver can be used. The address to use depends on your network configuration but selecting 255.255.255.255 should always work. Locally I use 192.168.1.255 as the address which will reach all computers in the address range 192.168.1.x. When everything is on one computer using 127.0.0.1 or localhost works too. | ||
+ | * The port must be set to a number not in use for any of the participating computers. When you select a port that is in use you will not be able to transmit a test message later on, and OSC errors will be reported in the log (OSC error logging is on by default, OSC message logging is off by default - see the Debug screen '' | ||
+ | * Check the Use OSC checkbox, then hit OK. | ||
+ | * Reopen the OSC settings screen and then send test messages using the button, the ' | ||
- | < | + | === To set up Wren as an OSC receiver (server) do the following: === |
- | <a id='faqmorpher' | + | |
- | < | + | * In the settings screen |
- | | + | * Then go trough the main menu to the '' |
- | The patch randomizer | + | |
- | | + | * The port must be set to the same value that was used to set up the transmitter. |
- | </ul> | + | * Check the Use OSC checkbox, then hit OK. |
- | </td><td> | + | * Send test messages from the transmitter, |
- | The <strong>randomizer</strong> is just that, it randomizes controls. This can be | + | |
- | | + | The test button sends a single OSC message to the address |
- | | + | |
- | | + | 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 ' |
- | | + | |
- | | + | The OSC listener (server) implementation used does not send replies to to the transmitter (client). |
- | < | + | |
- | The <strong>mutator</ | + | 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 |
- | | + | |
- | | + | === What OSC functionality was implemented === |
- | < | + | |
- | The graphic images are a visual interpretation of the parameters present in the | + | 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: |
- | Asexual reproduction can be plain random | + | |
- | | + | |
- | | + | * /< |
- | | + | * /<synthname> |
- | | + | * All modules can receive OSC messages when the module title is set to start with an '' |
- | < | + | |
- | Sexual reproduction picks parts of one genome and parts of another and makes a mix | + | ==== How to get Wren to play with JACK ==== |
- | | + | |
- | | + | What I did: |
- | | + | |
- | < | + | * Installed JACK, I've used the mixed 64/32 bit version. |
- | In the randomizer window the parents are in the breeder bit, the leftmost one | + | * Followed the ' |
- | | + | * Set JACK to run at the same sample rate as that I run //Wren// on, this seems to be needed or //Wren// will not open the JackRouter connections (so sample rate conversions seem not to be possible). |
- | < | + | * Started //Wren//, and then from Setup/Audio Devices (in //Wren//) selected the ASIO API, and then for both the Input and Output devices I selected JackRouter. |
- | The mutate button just mutates the existing worms between the left and the right | + | * Then for the 'In channels' |
- | | + | |
- | | + | 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. |
- | And then you can drag around stuff, like drag a worm onto the patch worm to make | + | |
- | | + | NOTE: To see some error reporting in //Wren// you can try the debug screen '' |
- | | + | |
- | < | + | NOTE: This will allow for audio integration with your DAW, assuming that the DAW uses ASIO. |
- | The scratch area is just that & | + | |
- | | + | ==== Using module colors ==== |
- | < | + | |
- | Clicking on a worm will copy it to the patch, this happens for the morph and | + | In the settings screen '' |
- | | + | |
- | | + | It is also possible to use the module standard colors, both for new modules added and from the module popup menu. |
- | < | + | |
- | Then when you have a left and a right morph the live morph control can fade | + | Module colors will be saved with the patch. |
- | | + | |
- | | + | ==== Using wire colors / invisible wires ==== |
- | | + | |
- | | + | Wire colors can be changed by '' |
- | < | + | |
- | & | + | Wire colors will be saved with the patch. |
- | | + | |
- | | + | There is a special color being used to make wires invisible, select ' |
- | | + | |
- | | + | ==== What internal scaling is being used ==== |
- | | + | |
- | < | + | 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 2<sup>1/1200</sup>, 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). |
- | For both the < | + | |
- | | + | ==== The patch randomizer / mutator, what does it do? ==== |
- | | + | |
- | | + | The **randomizer** |
- | < | + | |
- | Excluded controls and modules will get a red border in the exclusion visibility | + | 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 |
- | < | + | |
- | There are a couple of keyboard commands too & | + | Asexual reproduction can be plain random |
- | | + | |
- | < | + | 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 ' |
- | The <a href='http:// | + | |
- | target=' | + | 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 |
- | <? | + | |
+ | 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 | ||
+ | |||
+ | ... when done recursively | ||
+ | |||
+ | 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 [[http:// |