diff --git a/lib/ntk b/lib/ntk
index 92365ec..dae1771 160000
--- a/lib/ntk
+++ b/lib/ntk
@@ -1 +1 @@
-Subproject commit 92365eca0f9a6f054abc70489c009aba0fcde0ff
+Subproject commit dae177189b12f74ea01ac2389b76326c06d9be78
diff --git a/mixer/doc/MANUAL.html b/mixer/doc/MANUAL.html
index 3895261..1c554a4 100644
--- a/mixer/doc/MANUAL.html
+++ b/mixer/doc/MANUAL.html
@@ -48,21 +48,23 @@ Jonathan Moore Liles <male@tuxfamily.org&
-The focused strip can be moved in the display order via the [ and ] keys. Delete removes a strip (with confirmation dialog). n and w set the focused strip's width to narrow or wide, respectively, and f and s switch between fader and signal views. The strip's context menu can be invoked without the mouse by hitting the Menu key (assuming your keyboard has one). +The focused strip can be moved in the display order via the [ and ] keys. Delete removes a strip (with confirmation dialog). n and w set the focused strip's width to narrow or wide, respectively, and f and s switch between fader and signal views. The strip's context menu can be invoked without the mouse by hitting the Menu key (assuming your keyboard has one).
@@ -305,9 +307,25 @@ If same module/plugin is used twice in a signal chain (e.g. multiple Gain stages For the second instance of the Gain module on the strip named 'Foo'.
+There's a possibility to get exact OSC path for module controls. For this you need to switch strip mode to 'Signl', right click a module, for example 'Gain', and open 'Edit parameters' dialog. OSC path will be shown in a statusbar of the main window when you hover a parameter. +
+Non-DAW accesses these same signals via a more advanced signal routing layer on top of OSC. Any module parameter is easily controlled via Control Sequences in Non-DAW without the need to specify an OSC URL.
-+Automatic translation between MIDI and Non's OSC Signals can be achieved by adding the headless program non-midi-mapper (included in the Non-Mixer distribution) to an NSM session. +
++Non-MIDI-Mapper provides JACK MIDI input and output ports that can be connected to a suitable controller device. +
++In Non-Mixer, the Remote Control/Start Learning menu item enters learning mode in which Non Mixer can be taught which controls to associated with which MIDI messages by clicking a control in Non-Mixer and moving the desired control on the MIDI device. Remote Control/End Learning ends the learning session. +
++The mapping will be saved with the NSM session. +
+Left-clicking on a module brings up a Module Parameter Editor window for the selected module.
@@ -323,7 +341,7 @@ Control+Right-clicking on a module causes it to be removed from the chain (modulThe focused module may also be controlled via the keyboard. Menu brings up the context menu for the focused module. Space opens the module parameter editor, b toggles the bypassed state, and Delete removes the module from the chain (without confirmation!). Control-X, Control-C and Control-V, cut, copy, and paste modules, respectively. Modules may be copied within or across chain boundaries. The normal module I/O constraints also apply to pasted modules.
-The control voltage concept should be familiar to anyone who has experience with analog modular synthesizers. MIDI, while having definite advantages in many respects, multiplexes control data in such a way as to make connecting one MIDI control to a parameter involve a significant inconvenience, usually requiring the adjustment of settings on both ends of the connection in order to separate the control data streams.
@@ -375,8 +393,8 @@ of parameter automation, as LADSPA plugins are incapable of processing Control Voltage signals at full audio resolution anyway.A Spatializer Module fed stereo input will perform stereo encoding and will present a Width control.
-The Spatializer module is intended to work with an external reverb engine having Ambisonics B-Format inputs for early reflections and a Mono input for reverb tail (and, of course, B-Format outputs).
@@ -420,7 +438,7 @@ I have crafted several jconvolver config files that meet these specifications. TThe main outputs of the strip should go to a master bus, into which the output of the reverb engine is also fed.
-There are several Ambisonics panners/encoders released as LADSPA plugins. When one of these plugins is added to a strip, Non Mixer will detect its parameter signature and create a Spatialization Control for it just as with the Spatializer Module.
diff --git a/mixer/doc/MANUAL.mu b/mixer/doc/MANUAL.mu index 9b78e8b..b4a6918 100644 --- a/mixer/doc/MANUAL.mu +++ b/mixer/doc/MANUAL.mu @@ -215,7 +215,7 @@ respectively, and `f` and `s` switch between /fader/ and /signal/ views. The strip's context menu can be invoked without the mouse by hitting the `Menu` key (assuming your keyboard has one). - + ::: Signal Chain The signal chain view of a mixer strip provides a way to view and @@ -294,11 +294,34 @@ For the second instance of the Gain module on the strip named 'Foo'. + There's a possibility to get exact OSC path for module controls. + For this you need to switch strip mode to 'Signl', right click a + module, for example 'Gain', and open 'Edit parameters' dialog. OSC + path will be shown in a statusbar of the main window when you + hover a parameter. + Non-DAW accesses these same signals via a more advanced signal routing layer on top of OSC. Any module parameter is easily controlled via Control Sequences in Non-DAW without the need to specify an OSC URL. + +::::: MIDI Control + + Automatic translation between MIDI and Non's OSC Signals can be + achieved by adding the headless program `non-midi-mapper` (included in the + Non-Mixer distribution) to an NSM session. + + Non-MIDI-Mapper provides JACK MIDI input and output ports that can be + connected to a suitable controller device. + + In Non-Mixer, the `Remote Control\/Start Learning` menu item enters learning + mode in which Non Mixer can be taught which controls to associated with which + MIDI messages by clicking a control in Non-Mixer and moving the desired control + on the MIDI device. `Remote Control\/End Learning` ends the learning session. + + The mapping will be saved with the NSM session. + ::::: Manipulation Left-clicking on a module brings up a Module Parameter Editor window diff --git a/mixer/non-mixer.desktop.in b/mixer/non-mixer.desktop.in index cde6fa7..61e4221 100644 --- a/mixer/non-mixer.desktop.in +++ b/mixer/non-mixer.desktop.in @@ -1,6 +1,7 @@ [Desktop Entry] Name=Non Mixer Comment=Modular Digital Audio Workstation - Mixer +Comment[fr]=Station de travail audio-numérique modulaire - Mixeur Exec=@BIN_PATH@/non-mixer Terminal=false Type=Application diff --git a/nonlib/OSC/Endpoint.C b/nonlib/OSC/Endpoint.C index a318d2c..cb8c822 100644 --- a/nonlib/OSC/Endpoint.C +++ b/nonlib/OSC/Endpoint.C @@ -1085,7 +1085,7 @@ namespace OSC i != _translations.end(); i++ ) { - if ( ! strcmp( i->second.path.c_str(), path ) ) + if ( path && ! strcmp( i->second.path.c_str(), path ) ) { /* found it */ if ( !i->second.suppress_feedback && i->second.current_value != v ) diff --git a/sequencer/non-sequencer.desktop.in b/sequencer/non-sequencer.desktop.in index f54f91d..f3a3c8e 100644 --- a/sequencer/non-sequencer.desktop.in +++ b/sequencer/non-sequencer.desktop.in @@ -1,6 +1,7 @@ [Desktop Entry] Name=Non Sequencer Comment=Realtime MIDI sequencer for JACK MIDI +Comment[fr]=Séquenceur MIDI temps-réel pour JACK MIDI Exec=@BIN_PATH@/non-sequencer Terminal=false Type=Application diff --git a/session-manager/non-session-manager.desktop.in b/session-manager/non-session-manager.desktop.in index 5bab024..cb05600 100644 --- a/session-manager/non-session-manager.desktop.in +++ b/session-manager/non-session-manager.desktop.in @@ -1,6 +1,7 @@ [Desktop Entry] Name=Non Session Manager Comment=Audio session manager from the land of Non +Comment[fr]=Gestionnaire de session audio pour les terres de Non Exec=@BIN_PATH@/non-session-manager Terminal=false Type=Application diff --git a/timeline/non-timeline.desktop.in b/timeline/non-timeline.desktop.in index 7d60503..a8ce62d 100644 --- a/timeline/non-timeline.desktop.in +++ b/timeline/non-timeline.desktop.in @@ -1,6 +1,7 @@ [Desktop Entry] Name=Non Timeline Comment=Modular Digital Audio Workstation - Timeline Editor +Comment[fr]=Station de travail audio-numérique modulaire - Éditeur à ligne temporelle Exec=@BIN_PATH@/non-timeline Terminal=false Type=Application diff --git a/timeline/wscript b/timeline/wscript index 6a7762a..2a46a59 100644 --- a/timeline/wscript +++ b/timeline/wscript @@ -108,8 +108,8 @@ src/main.C ## use = [ 'fl_widgets', 'nonlib'], install_path = '${BINDIR}') - bld.install_files('${BINDIR}', 'import-ardour-session', chmod=0o0555, - cwd=bld.path.find_dir('bin'), relative_trick=True) + bld.install_files('${BINDIR}', 'bin/import-ardour-session', chmod=0o0555, + relative_trick=True) bld( features = 'subst', source = 'non-timeline.desktop.in', diff --git a/tools.waf/ntk_fluid.py b/tools.waf/ntk_fluid.py new file mode 100644 index 0000000..d8389b4 --- /dev/null +++ b/tools.waf/ntk_fluid.py @@ -0,0 +1,18 @@ +from waflib import Task +from waflib.TaskGen import extension + +class ntk_fluid(Task.Task): + color = 'BLUE' + ext_out = ['.h'] + run_str = '${NTK_FLUID} -c -o ${TGT[0].abspath()} -h ${TGT[1].abspath()} ${SRC}' + +@extension('.fl') +def fluid(self, node): + """add the .fl to the source list; the cxx file generated will be compiled when possible""" + cpp = node.change_ext('.C') + hpp = node.change_ext('.H') + self.create_task('ntk_fluid', node, [cpp, hpp]) + + if 'cxx' in self.features: + self.source.append(cpp) + diff --git a/waf b/waf index 5c3aaa4..061fb98 100755 Binary files a/waf and b/waf differ diff --git a/wscript b/wscript index f6118c6..7dd9857 100644 --- a/wscript +++ b/wscript @@ -31,13 +31,18 @@ def configure(conf): conf.load('compiler_c') conf.load('compiler_cxx') conf.load('gnu_dirs') - conf.load('ntk_fluid') + conf.load('ntk_fluid',tooldir='tools.waf') conf.load('gccdeps') conf.line_just = 52 conf.env['LIB_PTHREAD'] = ['pthread'] conf.env['LIB_DL'] = ['dl'] conf.env['LIB_M'] = ['m'] + + if Options.options.sse: + if os.system("grep -q '^flags.*\