Important message! Free Software under attack! See News

Non Mixer

Description

The Non Mixer is a powerful, reliable and fast modular Digital Audio Mixer, released under the GNU General Public License (GPL). It utilizes the JACK Audio Connection Kit for inter-application audio I/O and the NTK GUI toolkit for a fast and lightweight user interface.

Non Mixer can be used alone or in concert with Non Timeline and Non Sequencer to form a complete studio.

Please see the Manual for more information (and plenty of screenshots).

Features

Non Mixer shares many features in common with other, similar projects. However, Non Mixer's unique architecture permits surprising new functionality.

Stand-alone Implementation

The Non Mixer is a stand-alone application. It is a complement to Non Timeline, but neither program requires the other in order to function.

Implementing the mixer functionality in a separate program, connected to Non Timeline via JACK presents a number of advantages:

  • Eliminates the need for an internal connection management interface
  • Improves overall system stability
  • Increases parallelism (utilizes multiple cores)
  • Adds flexibility
  • Eliminates the need for cumbersome concepts and interfaces such as 'sends', 'groups', 'inserts' and 'busses'.

Multiple instances of the mixer can be run together in order to organize groups of channels and manage them with your preferred window manager.

Each mixer strip runs as a separate JACK client. In JACK2, this can translate into the DSP workload being spread across multiple CPU cores.

Since Non Mixer is an entirely separate unit, you may use any JACK capable mixer client you want instead of, or in myriad combination with, the Non Mixer. The one called LiveMix works well, but lacks many features of Non's mixer. All operations on the mixer affect the current mix set state only and are not journaled.

The mixer's design is modular, with all DSP occurring in discrete modules. One module hosts LADSPA plugins and the mixer is capable of receiving control (automation) data for any module parameter from Non Timeline (or another program) via JACK and OSC.

Control data is expressed either as Control Voltage (CV) or Control Signals (OSC).

Modular Signal Processing

All signal processing in Non Mixer occurs in Modules. This includes input and output from/to JACK. The modular design helps to restrain the total program complexity, and this in turn increases flexibility and reliability. Even the built-in gain stage and meter are modules (and you can place as many meters as you like, wherever you like, in the signal chain, eliminating the post/pre concept).

Parallel Processing

Because each mixer strip in Non Mixer runs as a separate JACK client (in its own thread), JACK has the opportunity, upon analysis of the connection graph, to execute some or all strips in parallel. This is a highly desirable behavior for those having multi-CPU and/or multi-core configurations.

Multiple Instances

Because Non Mixer is stand-alone, it is possible to run multiple instances. One reason you might want to do this is so that you can group sets of strips out of a large total number of strips. For example, you might want to keep all of your drum strips together. By using multiple Non Mixer instances, you are able to manage these groups of strips with the familiar navigation facilities of your chosen window manager. Once again, a modular design allows us to maintain a good balance of complexity across user interface levels without duplicating and internalizing the functionality already available at a higher level.

LADSPA Plugins

LADSPA plugins are hosted by the Plugin module and can be inserted anywhere in the signal chain (contingent on compatibility of the I/O configuration at that point).

Unlimited Strips

There is no limit imposed by Non Mixer on the total number of strips or Mixer instances you can create.

Automation

Any module parameter may be bound to a control. The control may be controlled via the GUI, or externally via a Control Voltage signal, such as is output by a Non Timeline control sequence.

All module parameters are alterable via OSC messages, regardless of whether or not they have controls defined.

Spatialization

Plugins supporting Ambisonics panning are automatically assigned a special control called a Spatializer. This allows for easy and positioning of sound sources.

Requirements

The following libraries are required to build Non Mixer

  • JACK >= 0.103.0
  • liblrdf >= 0.1.0
  • liblo >= 0.26
  • NTK

(locked)

This work is licensed under a Creative Commons License