non/mixer/doc/MANUAL.mu

261 lines
9.5 KiB
Plaintext
Raw Normal View History

! title Non Mixer User Manual
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
! date January 21, 2010
-- Table Of Contents
: User Manual
:: The Mixer
/ Mixer
< non-mixer-complex.png
The Non-Mixer is a stand-alone audio mixer, utilizing JACK as an
audio subsystem. At the time of writing, the architecture of
Non-Mixer is unique. By making the mixer stand-alone, concepts such
as busses, sends, and inserts are eliminated, as the same goals can
be achieved by simply adding more strips to the mixer.
2010-02-01 02:04:47 +01:00
Start by creating a new project (menu item `Project\/New`).
/ New Project
< new-project.png
2010-01-31 08:41:33 +01:00
After the project has been created. Hit `a` or choose `Mixer\/Add
Strip` from the menu to add a new strip to the mixer.
2010-01-31 08:41:33 +01:00
::: Display Options
The display options, found in the `Options\/Display` submenu may be adjusted
to suit your needs. Set the color scheme, widget style, and other graphic
options to your liking. These options are global and affect all projects.
::: Mixer Strips
/ Mixer Strip
< single-strip.png
Each mixer strip has a name and color, each of which may be defined
by the user. Names, but not colors, must be unique. In addition,
each strip has controls to move it left or right (the arrows) in the
display and to remove it entirely (the 'X').
Strips start out in /narrow/ mode, with the /fader/ view
enabled. Click the desired button to toggle the mode or view.
2010-01-31 08:41:33 +01:00
Each strip has a context menu which lists the available options
and their associated key-bindings. To bring up the context menu, `Right
The fader view comprises a large gain control and digital peak meter
indicator. These are automatically connected to the default gain and
2010-01-31 08:41:33 +01:00
meter modules of the strip's signal chain.
To see how an audio signal traveling through this strip will be
processed, switch to its /signal/ view.
2010-01-31 08:41:33 +01:00
:::: Navigation
2010-02-01 02:04:47 +01:00
A strip is focused when you click on it. Focus can be moved among
strips with the `Tab` and `Shift-Tab` keys.
2010-01-31 08:41:33 +01:00
:::: Control
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).
:::: Signal Chain
The signal chain view of a mixer strip provides a way to view and
manipulate the signal processing of a mixer strip.
2010-01-31 08:41:33 +01:00
::::: Modules
/ Modules
< modules.png
All signal processing in Non Mixer occurs in /Modules/. Modules are
signal processing abstractions providing ports for audio and control
2010-01-31 08:41:33 +01:00
I\/O and, in addition, some simple user interface. Sink and source
modules carry audio out of and into JACK.
2010-01-31 08:41:33 +01:00
Modules are displayed as named blocks. Some modules (e.g. the Meter
module) may have additional GUI components.
2010-01-31 08:41:33 +01:00
Each module has zero or more audio I\/O ports and zero or more
control ports. Audio routing between modules is handled
automatically. Modules with mono audio configurations (one channel
in, one channel out) can be automatically adjusted to support any
number of discrete channels. Modules with more (related) channels,
however, introduce restrictions on the order in which modules can be
chained.
An indicator in the upper left-hand corner of each module block
indicates whether the module has any parameters bound to controls.
Non Mixer has several built-in modules. They are:
= JACK
= Performs JACK I\/O
= Gain
= Applies gain in dB
= Meter
2010-02-01 02:04:47 +01:00
= Digital Peak Meter
= Mono Pan
= Performs intensity panning of a mono signal into a stereo signal.
= Plugin
= Hosts a LADSPA plugin
:::::: OSC Control
The input parameters of all modules are controllable via OSC,
regardless of whether the parameter is set as controllable.
The format of the automatically generated OSC path names is as follows:
> /mixer/strip/[STRIP_NAME]/control/[MODULE_NAME]/[PARAMETER_NAME]
The UDP port that the OSC server binds to can be set by providing
the `--osc-port` command-line option. Without this option, a random
port will be bound automatically (the exact OSC URL will always be
printed to the console as a line beginning with "OSC: ").
The default path accepts a float value between 0.0 and 1.0 (a
Control Voltage) which will be scaled to the allowable range of the control.
A path ending in \/unscaled is also available, which accepts exact values,
which will be clamped to the allowable range. For example:
> /mixer/strip/[STRIP_NAME]/control/[MODULE_NAME]/[PARAMETER_NAME]/unscaled
If same module\/plugin is used twice in a signal chain
(e.g. multiple Gain stages), then a position dependent sequence number
will be appended to the module name. For example, a path might look
like the following:
> /mixer/strip/Foo/control/Gain.1/Gain_(dB)
For the second instance of the Gain module on the strip named 'Foo'.
For each OSC parameter change message received, a reply will be sent
to the same path at the sender with the new value as the only
parameter. Changes to the control value initatied in the GUI will
*not* generate any OSC messages.
2010-01-31 08:41:33 +01:00
:::::: Manipulation
2010-01-31 08:41:33 +01:00
Left-clicking on a module brings up a Module Parameter Editor window
for the selected module.
Right-clicking on a module brings up a context menu allowing you
manipulate the module, as well as to pick a new module to insert
before the selected one in the chain.
Middle-clicking on a module toggles its activation state (the audio
signal will bypass inactive modules).
Control+Right-clicking on a module causes it to be removed from the
chain (modules added by default cannot be removed).
2010-02-01 02:04:47 +01:00
The 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.
2010-01-31 08:41:33 +01:00
:::::: Module Parameter Editor
/ Module Parameter Editor
< gverb-parameters-knobs.png
The Module Parameter Editor is used to alter the values of a
2010-01-31 08:41:33 +01:00
module's parameters, and in addition, to bind its parameters to
controls. A menu button in the upper left-hand corner allows you to
select between knob, vertical slider and horizontal slider controls.
/ Horizontal Sliders
< gverb-parameters-hsliders.png
/ Vertical Sliders
< gverb-parameters-vsliders.png
Underneath each control is a bind button. Clicking adds a new
control to the chain's /Controls/ view and binds it to the parameter
in question. For simplicity, only one control at a time may be bound
to a given parameter.
2010-01-31 08:41:33 +01:00
:::::: Controls
/ Control View
< controls.png
The control view of a chain groups together all of the controls
bound to parameters of modules in that chain. The default mode of
controls is /Manual/. Right click on a control to bring up a menu
2010-01-31 08:41:33 +01:00
which will allow you to select one of the available control I\/O
methods to use. When /Control Voltage/ (CV) is selected, a CV input
port will be created on the containing mixer strip's JACK
client. The control will now accept values from that input. A
control bound and configured in this way can then be connected to
2010-01-31 08:41:33 +01:00
the output of a Non-DAW control sequence using your favorite
connection manager.
{ NOTE:
{ All knob and slider controls respond to mousewheel
{ events. Hold down the `Ctrl` key while scrolling the mousewheel to
{ achieve finer resolution.
2010-01-31 08:41:33 +01:00
::::::: Control Voltages
The control voltage concept should be familiar to anyone who has
2010-01-31 08:41:33 +01:00
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.
2010-01-31 08:41:33 +01:00
Control Voltages, on the other hand, provide a simple 1:1 source to
sink relationship and offer much higher resolution, both in time and
value, than can be natively expressed through MIDI. The chief
advantage of CV in the context of Non-DAW is the ease with which an
control sequence can be connected to a mixer module parameter. If
you have a MIDI controller that you'd like to use to control
parameters of Non-Mixer, consider /jm2cv/, a JACK MIDI to Control
Voltage daemon which was written by Peter Nelson specifically for
use with Non-Mixer. jm2cv can be acquired by:
> git clone git://fuzzle.org/jm2cv.git
2010-01-31 08:41:33 +01:00
::: Projects
A Non-Mixer project is a directory where Non-Mixer keeps the strip
settings, project specific settings, and some meta-data. A project
is completely self-contained. You can rename a project as simply as:
> $ mv Project-A Project-B
:::: JACK I/O
Each mixer strip is presented as a separate JACK "client". This
helps to avoid the necessity of internally duplicating JACK's
routing logic and, with JACK2, permits the possibility of parallel
execution of mixer strip signal chains.
The JACK client name of each strip will correspond to the name of the strip.
{ NOTE:
{ The JACK API makes implementing this far more difficult and kludgey than it should have to be.
{ Please petition your local JACK developer to accept jack_client_set_name() into the API.
/ Patchage
< non-mixer-and-non-daw-in-patchage.png