User Tools

Site Tools


faq

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
faq [2022/03/29 19:22]
jan
faq [2022/06/30 13:59] (current)
jan [MIDI setup]
Line 1: Line 1:
-FIXME - this needs be split up a bit ...+===== (Less) Frequently Asked Questions =====
  
 ==== When modules are added or wires are changed, nothing happens ==== ==== When modules are added or wires are changed, nothing happens ====
Line 11: Line 11:
 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. 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'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.
  
 ==== Can I hear it? ==== ==== Can I hear it? ====
Line 25: Line 25:
 ==== Where is my patch ==== ==== Where is my patch ====
  
-Hit __F2__ to return to the patch editor.+Hit ''F2'' to return to the patch editor.
  
 ==== Where does that wire go ==== ==== Where does that wire go ====
  
-__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.+''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.
  
 ==== I can not read the display values, it's all covered by wires ==== ==== I can not read the display values, it's all covered by wires ====
  
-Use __Ctrl+space bar__ 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__, press __Ctrl+W__ again to make them visible again.+Use ''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'', press ''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).+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, or some,  wires are not visible in the editor ==== ==== 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' 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.+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 __i__, or __I__.+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 ''i'', or ''I''.
  
 For me running //Wren// under Wine on OSX 10.10.3 (Yosemite) showed some issues with wire painting, I have no cure for that. For me running //Wren// under Wine on OSX 10.10.3 (Yosemite) showed some issues with wire painting, I have no cure for that.
Line 47: Line 47:
 ==== There is a reverb in my patch, but where is it? ==== ==== There is a reverb in my patch, but where is it? ====
  
-Use __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 __Esc__ key. Also see the next section for more on this.+Use ''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.
  
 ==== There should be a module with a name like verb, but on what selector page is it? ==== ==== There should be a module with a name like verb, but on what selector page is it? ====
  
-Use __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 __Esc__ key.+Use ''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 ''Escspe''.
  
-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 (__F3__).+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 ''F3''.
  
-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.+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 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.+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 __Esc__ to clear the search.+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.
  
 ==== Polyphony ==== ==== Polyphony ====
Line 83: Line 83:
 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). 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).
  
 +Also see [[wire_colors | wire colors]], [[add_wires | add wires]] and [[remove_wires | remove wires]].
 ==== How to change parameters ==== ==== How to change parameters ====
  
 === Knobs === === Knobs ===
  
-it depends on the mode you have set in the settings screen (__F3__)+it depends on the mode you have set in the settings screen ''F3''
  
-        * circular - a mouse drag around he knob changes it. + * circular - a mouse drag around he knob changes it. 
-        * horizontal - a horizontal mouse drag changes it. + * horizontal - a horizontal mouse drag changes it. 
-        * vertical - a vertical 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.+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 (__F3__).+You can also enable the mouse wheel on knobs in the settings screen ''F3''.
  
-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).+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).
  
 === Sliders === === Sliders ===
Line 105: Line 106:
 === Selectors === === Selectors ===
  
-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.+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. Some selectors act as momentary switches, or buttons, these will have a white border.
Line 111: Line 112:
 Displays do not have a colored 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.+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.
  
 === right mouse clicks === === right mouse clicks ===
Line 129: Line 130:
 == On a selector == == On a selector ==
  
-selectors have a yellow or a white border, you can __right click__ to get a popup menu for selecting a value.+selectors have a yellow or a white border, you can ''right click'' to get a popup menu for selecting a value.
  
 == On a graph == == On a graph ==
Line 142: Line 143:
 ==== Change module caption ==== ==== Change module caption ====
  
-__Double click__ on the module caption, an editor pops up then. When done hit __Enter__to commit the changes or __Esc__ 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.+''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.
  
 ==== How to edit text based controls ==== ==== How to edit text based controls ====
  
-__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 __Enter__.+''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 ''Enter''.
  
 ==== How to close a text editor ==== ==== How to close a text editor ====
  
-Use __Ctrl+Enter__ to save the changes, or __Esc__ 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.+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.
  
 ==== How to use presets for modules ==== ==== How to use presets for modules ====
Line 157: Line 158:
  
 ==== MIDI setup ==== ==== MIDI setup ====
-    * Trough the main menu item settings/MIDI devices select the MIDI devices to be used for input and output. +    * Trough the main menu item ''setup/MIDI setup'' select the MIDI devices to be used for input and output. Also there select MIDI Channel to be used and, when usung (N)RPN, select the (N)RPN preferred mode to be used.
-    * In the settings screen (__F3__) select the MIDI Channel to use and select the (N)RPN preferred seting.+
  
 ==== OSC setup ==== ==== OSC setup ====
  
-Each //ren// 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 [[http://opensoundcontrol.org/ | official OSC terms]] (and also see the [[http://cnmat.org/OpenSoundControl/ | CNMAT pages]].+The OSC configuration can be reached trough the main menu ''Setup/Osc setup'', 
 + 
 +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 [[http://opensoundcontrol.org/ | official OSC terms]] (and also see the [[http://cnmat.org/OpenSoundControl/ | 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). 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).
Line 168: Line 170:
 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. 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: 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. 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: ===+=== To set up Wren as an OSC transmitter (client) do the following: ===
  
-    * In the settings screen (__F3__) make sure you give your synth a name, this name will be used as part of the OSC addresses sent around. +    * In the settings screen ''F3'' make sure you give your synth a name, this name will be used as part of the OSC addresses sent around and listened to
-    * Then go trough the main menu to the Setup / OSC setup screen for the following settings:+    * 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 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).+    * 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 ''F5'').
     * Check the Use OSC checkbox, then hit OK.     * Check the Use OSC checkbox, then hit OK.
     * Reopen the OSC settings screen and then send test messages using the button, the 't' light should light up on each transmission. When it does not light up you probably selected a port that was already in use, so try another one.     * Reopen the OSC settings screen and then send test messages using the button, the 't' light should light up on each transmission. When it does not light up you probably selected a port that was already in use, so try another one.
  
-=== To set up //Wren// as an OSC //receiver (server)// do the following: ===+=== To set up Wren as an OSC receiver (server) do the following: ===
  
-    * In the settings screen (__F3__) make sure you give your synth a name, this name will be used as part of the OSC addresses sent around. +    * In the settings screen ''F3'' make sure you give your synth a name, this name will be used as part of the OSC addresses sent around and listen to
-    * Then go trough the main menu to the Setup / OSC setup screen for the following settings:+    * 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 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.     * The port must be set to the same value that was used to set up the transmitter.
Line 206: Line 208:
 The following addresses are currently being used: The following addresses are currently being used:
  
-    * /*/testmessage can be sent (from an OSC transmitter only), this is a single OSC message with a float value of 1.000 an integer value of 1001, and a string value of '1002'+    * /*/testmessage can be sent (from an OSC transmitter only), this is a single OSC broadcast message with a float value of 1.000 an integer value of 1001, and a string value of '1002'
-    * /<synthname>/sync can be sent and received by the Sync module. This message has no parameters. The message is received when the current //Wren// instance is set to be an OSC receiver. the message is transmitted when the current //Wren// instance is set to be an OSC transmitter. Sync messages are naive, they assume zero time delay between transmitter and receiver.+    * /<synthname>/sync can be sent and received by the Sync module. This broadcast message has one float parameter. The message is received by //Wren// instances set to be an OSC receiver. The message is transmitted when the current //Wren// instance is set to be an OSC transmitter. Sync messages are naive, they assume zero time delay between transmitter and receiver. The float value could, for instance, be used to sync tuning between patches and the message itself can serve to sync up LFO's.
     * /<synthname>/<user_defined> for the OscMessage module, this 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 'f' (float). To force a value to be sent out the trigger input 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.     * /<synthname>/<user_defined> for the OscMessage module, this 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 'f' (float). To force a value to be sent out the trigger input 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 '@' 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.+    * All modules can receive OSC messages when the module title is set to start with an ''@'' 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.
  
-==== How to get //Wren// to play with [[http://jackaudio.org/JACK]] ====+==== How to get Wren to play with JACK ====
  
  What I did:  What I did:
Line 225: Line 227:
 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: //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: 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. NOTE: This will allow for audio integration with your DAW, assuming that the DAW uses ASIO.
Line 231: Line 233:
 ==== Using module colors ==== ==== Using module colors ====
  
-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.+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. It is also possible to use the module standard colors, both for new modules added and from the module popup menu.
Line 239: Line 241:
 ==== Using wire colors / invisible wires ==== ==== Using wire colors / invisible wires ====
  
-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 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. Wire colors will be saved with the patch.
faq.1648581762.txt · Last modified: 2022/03/29 19:22 by jan