Merge branch 'master' of github.com:original-male/non
This commit is contained in:
commit
7b1fc6eca1
2
lib/ntk
2
lib/ntk
|
@ -1 +1 @@
|
|||
Subproject commit 92365eca0f9a6f054abc70489c009aba0fcde0ff
|
||||
Subproject commit dae177189b12f74ea01ac2389b76326c06d9be78
|
|
@ -48,21 +48,23 @@ Jonathan Moore Liles <a href="mailto:male@tuxfamily.org"><male@tuxfamily.org&
|
|||
|
||||
<ul><li><a href="#n:1.2.3.1.1.">1.2.3.1.1. OSC Control</a>
|
||||
|
||||
<li><a href="#n:1.2.3.1.2.">1.2.3.1.2. Manipulation</a>
|
||||
<li><a href="#n:1.2.3.1.2.">1.2.3.1.2. MIDI Control</a>
|
||||
|
||||
<li><a href="#n:1.2.3.1.3.">1.2.3.1.3. Module Parameter Editor</a>
|
||||
<li><a href="#n:1.2.3.1.3.">1.2.3.1.3. Manipulation</a>
|
||||
|
||||
<li><a href="#n:1.2.3.1.4.">1.2.3.1.4. Controls</a>
|
||||
<li><a href="#n:1.2.3.1.4.">1.2.3.1.4. Module Parameter Editor</a>
|
||||
|
||||
<ul><li><a href="#n:1.2.3.1.4.1.">1.2.3.1.4.1. Control Voltages</a>
|
||||
<li><a href="#n:1.2.3.1.5.">1.2.3.1.5. Controls</a>
|
||||
|
||||
</ul><li><a href="#n:1.2.3.1.5.">1.2.3.1.5. Spatialization </a>
|
||||
<ul><li><a href="#n:1.2.3.1.5.1.">1.2.3.1.5.1. Control Voltages</a>
|
||||
|
||||
<ul><li><a href="#n:1.2.3.1.5.1.">1.2.3.1.5.1. Spatializer Module</a>
|
||||
</ul><li><a href="#n:1.2.3.1.6.">1.2.3.1.6. Spatialization </a>
|
||||
|
||||
<ul><li><a href="#n:1.2.3.1.5.1.1.">1.2.3.1.5.1.1. Reverb Routing</a>
|
||||
<ul><li><a href="#n:1.2.3.1.6.1.">1.2.3.1.6.1. Spatializer Module</a>
|
||||
|
||||
</ul><li><a href="#n:1.2.3.1.5.2.">1.2.3.1.5.2. LADSPA Plugins</a>
|
||||
<ul><li><a href="#n:1.2.3.1.6.1.1.">1.2.3.1.6.1.1. Reverb Routing</a>
|
||||
|
||||
</ul><li><a href="#n:1.2.3.1.6.2.">1.2.3.1.6.2. LADSPA Plugins</a>
|
||||
|
||||
</ul></ul></ul></ul><li><a href="#n:1.3.">1.3. Spatialization Console</a>
|
||||
|
||||
|
@ -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'.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<h5 id="n:1.2.3.1.2.">1.2.3.1.2. Manipulation</h5>
|
||||
<h5 id="n:1.2.3.1.2.">1.2.3.1.2. MIDI Control</h5>
|
||||
<p>
|
||||
Automatic translation between MIDI and Non's OSC Signals can be achieved by adding the headless program <tt>non-midi-mapper</tt> (included in the Non-Mixer distribution) to an NSM session.
|
||||
</p>
|
||||
<p>
|
||||
Non-MIDI-Mapper provides JACK MIDI input and output ports that can be connected to a suitable controller device.
|
||||
</p>
|
||||
<p>
|
||||
In Non-Mixer, the <tt>Remote Control/Start Learning</tt> 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. <tt>Remote Control/End Learning</tt> ends the learning session.
|
||||
</p>
|
||||
<p>
|
||||
The mapping will be saved with the NSM session.
|
||||
</p>
|
||||
<h5 id="n:1.2.3.1.3.">1.2.3.1.3. Manipulation</h5>
|
||||
<p>
|
||||
Left-clicking on a module brings up a Module Parameter Editor window for the selected module.
|
||||
</p>
|
||||
|
@ -323,7 +341,7 @@ Control+Right-clicking on a module causes it to be removed from the chain (modul
|
|||
<p>
|
||||
The focused module may also be controlled via the keyboard. <tt>Menu</tt> brings up the context menu for the focused module. <tt>Space</tt> opens the module parameter editor, <tt>b</tt> toggles the bypassed state, and <tt>Delete</tt> removes the module from the chain (without confirmation!). <tt>Control-X</tt>, <tt>Control-C</tt> and <tt>Control-V</tt>, 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.
|
||||
</p>
|
||||
<h5 id="n:1.2.3.1.3.">1.2.3.1.3. Module Parameter Editor</h5>
|
||||
<h5 id="n:1.2.3.1.4.">1.2.3.1.4. Module Parameter Editor</h5>
|
||||
<center><div class="fig image"><table id="Fig.1.5" border=1>
|
||||
<caption>
|
||||
<strong>Fig. 1.5.</strong> Module Parameter Editor
|
||||
|
@ -337,7 +355,7 @@ The Module Parameter Editor is used to alter the values of a module's parameters
|
|||
<p>
|
||||
Underneath each control is a bind button. Clicking adds a new control to the chain's <i>Controls</i> view and binds it to the parameter in question. For simplicity, only one control at a time may be bound to a given parameter.
|
||||
</p>
|
||||
<h5 id="n:1.2.3.1.4.">1.2.3.1.4. Controls</h5>
|
||||
<h5 id="n:1.2.3.1.5.">1.2.3.1.5. Controls</h5>
|
||||
<center><div class="fig image"><table id="Fig.1.6" border=1>
|
||||
<caption>
|
||||
<strong>Fig. 1.6.</strong> Control View
|
||||
|
@ -356,7 +374,7 @@ events. Hold down the `Ctrl` key while scrolling the mousewheel to
|
|||
achieve finer resolution.
|
||||
</td></table>
|
||||
</div>
|
||||
<h6 id="n:1.2.3.1.4.1.">1.2.3.1.4.1. Control Voltages</h6>
|
||||
<h6 id="n:1.2.3.1.5.1.">1.2.3.1.5.1. Control Voltages</h6>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
@ -375,8 +393,8 @@ of parameter automation, as LADSPA plugins are incapable of
|
|||
processing Control Voltage signals at full audio resolution anyway.
|
||||
</td></table>
|
||||
</div>
|
||||
<h5 id="n:1.2.3.1.5.">1.2.3.1.5. Spatialization </h5>
|
||||
<h6 id="n:1.2.3.1.5.1.">1.2.3.1.5.1. Spatializer Module</h6>
|
||||
<h5 id="n:1.2.3.1.6.">1.2.3.1.6. Spatialization </h5>
|
||||
<h6 id="n:1.2.3.1.6.1.">1.2.3.1.6.1. Spatializer Module</h6>
|
||||
<center><div class="fig image"><table border=1>
|
||||
<tr><td><img src="spatializer-module.png" alt="fig. "></td></tr>
|
||||
</table></div></center>
|
||||
|
@ -404,7 +422,7 @@ All Spatializer Module instances will present controls and aziumuth, elevation,
|
|||
<p>
|
||||
A Spatializer Module fed stereo input will perform stereo encoding and will present a <i>Width</i> control.
|
||||
</p>
|
||||
<h7 id="n:1.2.3.1.5.1.1.">1.2.3.1.5.1.1. Reverb Routing</h7>
|
||||
<h7 id="n:1.2.3.1.6.1.1.">1.2.3.1.6.1.1. Reverb Routing</h7>
|
||||
<p>
|
||||
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).
|
||||
</p>
|
||||
|
@ -420,7 +438,7 @@ I have crafted several jconvolver config files that meet these specifications. T
|
|||
<p>
|
||||
The main outputs of the strip should go to a master bus, into which the output of the reverb engine is also fed.
|
||||
</p>
|
||||
<h6 id="n:1.2.3.1.5.2.">1.2.3.1.5.2. LADSPA Plugins</h6>
|
||||
<h6 id="n:1.2.3.1.6.2.">1.2.3.1.6.2. LADSPA Plugins</h6>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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)
|
||||
|
7
wscript
7
wscript
|
@ -31,7 +31,7 @@ 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
|
||||
|
||||
|
@ -39,6 +39,11 @@ def configure(conf):
|
|||
conf.env['LIB_DL'] = ['dl']
|
||||
conf.env['LIB_M'] = ['m']
|
||||
|
||||
if Options.options.sse:
|
||||
if os.system("grep -q '^flags.*\<sse2\>' /proc/cpuinfo"):
|
||||
Options.options.sse = 0
|
||||
print( "Processor lacks sse, disabling..." )
|
||||
|
||||
# NTK_EXTRA_FLAGS=''
|
||||
# if not Options.options.use_system_ntk:
|
||||
# print 'Using bundled NTK'
|
||||
|
|
Loading…
Reference in New Issue