Last minute documentation updates.

This commit is contained in:
Jonathan Moore Liles 2010-02-01 23:38:47 -06:00
parent 1bd1324a25
commit 76d9f480ec
4 changed files with 364 additions and 80 deletions

173
mixer/doc/OVERVIEW.html Normal file
View File

@ -0,0 +1,173 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta name="generator" content="Generated by MUP v3.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" rel="stylesheet" href="mup.css">
<title>The Non Mixer</title>
</head>
<body>
<div id=cover>
<h1>The Non Mixer</h1>
<h3></h3>
<address>
Jonathan Moore Liles <a href="mailto:male@tuxfamily.org">&lt;male@tuxfamily.org&gt;</a><br>
February 1, 2010<br>
</address><img src="logo.png" alt="logo"><hr></div>
<div id=body>
<div id=toc>
<h1 id=toc>Table Of Contents</h1>
<ul>
<li><a href="#n:1.">1. Overview</a>
<ul><li><a href="#n:1.1.">1.1. Description</a>
<li><a href="#n:1.2.">1.2. Why write another one?</a>
<li><a href="#n:1.3.">1.3. Features</a>
<ul><li><a href="#n:1.3.1.">1.3.1. Stand-alone Implementation</a>
<li><a href="#n:1.3.2.">1.3.2. Modular Signal Processing</a>
<li><a href="#n:1.3.3.">1.3.3. Parallel Processing</a>
<li><a href="#n:1.3.4.">1.3.4. Multiple Instances</a>
<li><a href="#n:1.3.5.">1.3.5. LADSPA Plugins</a>
<li><a href="#n:1.3.6.">1.3.6. Unlimited Strips</a>
<li><a href="#n:1.3.7.">1.3.7. Automation</a>
</ul></ul><li><a href="#u:1.">What does freedom have to do with this software?</a>
<li><a href="#u:2.">Donations</a>
<li><a href="#u:3.">Distribution</a>
<li><a href="#u:4.">Requirements</a>
<li><a href="#u:5.">Community</a>
</ul></ul><hr></div>
<h1 id="n:1.">1. Overview</h1>
<h2 id="n:1.1.">1.1. Description</h2>
<p>
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 FLTK GUI toolkit for a fast and lightweight user interface.
</p>
<p>
Please see the <a class=ext href="MANUAL.html">Manual</a> for more information.
</p>
<h2 id="n:1.2.">1.2. Why write another one?</h2>
<p>
At the time work began on Non Mixer, there was no other powerful, fast, and light stand-alone free-software JACK mixer available. There was (and is) LiveMix, however LiveMix is neither fast nor light, and it wasn't able to accept the necessary external control data. SpiralSynthModular, strangely enough, was the closest thing the author could find to the tool he needed (it has gain/mix modules and all modules accept Control Voltage input). SSM is truly an excellent, if neglected, program, but the modules-on-a-canvas model with manual routing is far too cumbersome of an arrangement for real world mixing tasks. Instead of creating another monolithic DAW with built-in routing and mixing, the author choose to follow the time tested Unix design philosophy of one tool per task. The most obvious point of division is between the timeline and the mixer. Drawing the line here allows routing and mixing to actually occur within JACK, which is an infinitely more flexible arrangement than the alternative.
</p>
<h2 id="n:1.3.">1.3. Features</h2>
<p>
Non-Mixer shares many features in common with other, similar projects. However, Non-Mixer's unique architecture permits surprising new functionality.
</p>
<h3 id="n:1.3.1.">1.3.1. Stand-alone Implementation</h3>
<p>
The Non Mixer is a stand-alone application. It is a complement to Non DAW, but neither program requires the other in order to function.
</p>
<p>
Implementing the mixer functionality in a separate program, connected to Non-DAW via JACK presents a number of advantages:
</p>
<ul><li><span>Eliminates the need for an internal connection management interface</span>
<li><span>Improves overall system stability</span>
<li><span>Increases parallelism (utilizes multiple cores)</span>
<li><span>Adds flexibility</span>
<li><span>Eliminates the need for cumbersome concepts and interfaces such as 'sends', 'groups', 'inserts' and 'busses'.</span>
</ul><p>
Multiple instances of the mixer can be run together in order to organize groups of channels and manage them with your preferred window manager.
</p>
<p>
Each mixer strip runs as a separate JACK client. In JACK2, this can translates into the DSP workload being spread across multiple CPU cores.
</p>
<p>
Since the 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-DAW 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.
</p>
<p>
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-DAW (or another program) via JACK.
</p>
<p>
Control data is expressed as Control Voltage (CV).
</p>
<h3 id="n:1.3.2.">1.3.2. Modular Signal Processing</h3>
<p>
All signal processing in Non Mixer occurs in <i>Modules</i>. 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).
</p>
<h3 id="n:1.3.3.">1.3.3. Parallel Processing</h3>
<p>
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.
</p>
<h3 id="n:1.3.4.">1.3.4. Multiple Instances</h3>
<p>
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.
</p>
<h3 id="n:1.3.5.">1.3.5. LADSPA Plugins</h3>
<p>
LADSPA plugins are hosted by the <i>Plugin</i> module and can be inserted anywhere in the signal chain (contingent on compatibility of the I/O configuration at that point).
</p>
<h3 id="n:1.3.6.">1.3.6. Unlimited Strips</h3>
<p>
There is no limit imposed by Non Mixer on the total number of strips or Mixer instances you can create.
</p>
<h3 id="n:1.3.7.">1.3.7. Automation</h3>
<p>
Any module parameter may be bound to a <i>control</i>. The control may be controlled via the GUI, or externally via a Control Voltage signal, such as is output by a Non-DAW control sequence.
</p>
<h1 id="u:1.">What does freedom have to do with this software?</h1>
<p>
Non is <i>free software</i>. This means, briefly, that you are free use it as <b>you</b> wish, free to examine and adapt the source code, free to share it with your friends, and free to publish your changes to the source code. Furthermore, Non is <i>copyleft</i>, which means that you are free from the threat of some other entity taking over and denying you the above freedoms. The <i>free</i> part of <i>free software</i> doesn't refer to price any more than the <i>free</i> in <i>free speech</i> does.
</p>
<p>
To learn why free software is so important to us (and why it should be important to you), please see the Free Software Foundation's website:
</p>
<p>
<a class=ext href="http://www.fsf.org/licensing/essays/free-sw.html">What is Free Software?</a> <a class=ext href="http://www.fsf.org/licensing/essays/copyleft.html">What is Copyleft?</a>
</p>
<h1 id="u:2.">Donations</h1>
<p>
Donations can take many forms. You can donate your time in code, either by sending it to me for review or cloning the git repository and publishing one containing your changes. You can donate your time in testing, documentation, artwork, indexing, etc. Or, if you don't feel that you possess the time or skills required for the above forms of donation, you can donate money instead. Money donated will help to ensure that I have the free time, good nutrition and enthusiasm required to implement new features. It can also be a more palpable way of saying "Thanks for caring." or "Job well done!"
</p>
<p>
If you don't love this software, don't feel guilty about not contributing. If you do love it, then please help me improve it--in whatever manner you think is appropriate.
</p>
<p>
<a class=ext href="http://non.tuxfamily.org/donation.html">Make a donation</a>
</p>
<h1 id="u:3.">Distribution</h1>
<p>
Development of the Non-DAW and Non-Mixer can be followed with Git:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
git clone git://git.tuxfamily.org/gitroot/non/daw.git
</pre></td></tr>
</table></div>
<p>
There are no pre-compiled binaries available.
</p>
<h1 id="u:4.">Requirements</h1>
<p>
The following libraries are required to build Non DAW and Non Mixer
</p>
<ul><li><span>FLTK >= 1.1.7 (with `fluid`)</span>
<li><span>JACK >= 0.103.0</span>
<li><span>liblrdf >= 0.1.0</span>
</ul><h1 id="u:5.">Community</h1>
<p>
Feel free to drop by the <tt>#non</tt> channel on irc.freenode.net.
</p>
<p>
There is a mailing list <tt>non-mixer@lists.tuxfamily.org</tt>.
</p>
<p>
To subscribe, send a message with the subject 'subscribe' to <a href="mailto:non-mixer-request@lists.tuxfamily.org">&lt;non-mixer-request@lists.tuxfamily.org&gt;</a>.
</p>
<p>
You can also browse the <a class=ext href="http://listengine.tuxfamily.org/lists.tuxfamily.org/non-mixer/">archive</a>.
</p>
</div>
</body>
</html>

187
mixer/doc/OVERVIEW.mu Normal file
View File

@ -0,0 +1,187 @@
! title The Non Mixer
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
! date February 1, 2010
! extra #(image,logo,logo.png)
-- Table Of Contents
: Overview
:: 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 FLTK GUI toolkit for a fast and lightweight user
interface.
Please see the #(url,MANUAL.html,Manual) for more information.
:: Why write another one?
At the time work began on Non Mixer, there was no other powerful,
fast, and light stand-alone free-software JACK mixer available.
There was (and is) LiveMix, however LiveMix is neither fast nor
light, and it wasn't able to accept the necessary external control
data. SpiralSynthModular, strangely enough, was the closest thing
the author could find to the tool he needed (it has gain\/mix
modules and all modules accept Control Voltage input). SSM is truly
an excellent, if neglected, program, but the modules-on-a-canvas
model with manual routing is far too cumbersome of an arrangement
for real world mixing tasks. Instead of creating another monolithic
DAW with built-in routing and mixing, the author choose to follow
the time tested Unix design philosophy of one tool per task. The
most obvious point of division is between the timeline and the
mixer. Drawing the line here allows routing and mixing to actually
occur within JACK, which is an infinitely more flexible arrangement
than the alternative.
:: 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
DAW, but neither program requires the other in order to function.
Implementing the mixer functionality in a separate program, connected
to Non-DAW 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
translates into the DSP workload being spread across multiple CPU
cores.
Since the 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-DAW 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-DAW (or another program) via JACK.
Control data is expressed as Control Voltage (CV).
::: 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-DAW control sequence.
; What does freedom have to do with this software?
Non is /free software/. This means, briefly, that you are free use
it as *you* wish, free to examine and adapt the source code, free to
share it with your friends, and free to publish your changes to the
source code. Furthermore, Non is /copyleft/, which means that you
are free from the threat of some other entity taking over and
denying you the above freedoms. The /free/ part of /free software/
doesn't refer to price any more than the /free/ in /free speech/
does.
To learn why free software is so important to us (and why it should be
important to you), please see the Free Software Foundation's website:
#(url,http:\/\/www.fsf.org\/licensing\/essays\/free-sw.html,What is Free Software?)
#(url,http:\/\/www.fsf.org\/licensing\/essays\/copyleft.html,What is Copyleft?)
; Donations
Donations can take many forms. You can donate your time in code, either by
sending it to me for review or cloning the git repository and publishing one
containing your changes. You can donate your time in testing, documentation,
artwork, indexing, etc. Or, if you don't feel that you possess the time or
skills required for the above forms of donation, you can donate money
instead. Money donated will help to ensure that I have the free time, good
nutrition and enthusiasm required to implement new features. It can also be
a more palpable way of saying "Thanks for caring." or "Job well done!"
If you don't love this software, don't feel guilty about not contributing.
If you do love it, then please help me improve it--in whatever manner you
think is appropriate.
#(url,http:\/\/non.tuxfamily.org\/donation.html,Make a donation)
; Distribution
Development of the Non-DAW and Non-Mixer can be followed with Git:
> git clone git://git.tuxfamily.org/gitroot/non/daw.git
There are no pre-compiled binaries available.
; Requirements
The following libraries are required to build Non DAW and Non Mixer
* FLTK >= 1.1.7 (with `fluid`)
* JACK >= 0.103.0
* liblrdf >= 0.1.0
; Community
Feel free to drop by the `#non` channel on irc.freenode.net.
There is a mailing list `non-mixer@lists.tuxfamily.org`.
To subscribe, send a message with the subject 'subscribe' to
#(email,non-mixer-request@lists.tuxfamily.org).
You can also browse the #(url,http:\/\/listengine.tuxfamily.org\/lists.tuxfamily.org\/non-mixer\/,archive).

View File

@ -47,8 +47,6 @@ March 1, 2008<br>
<ul><li><a href="#n:1.6.1.">1.6.1. Timeline</a>
<li><a href="#n:1.6.2.">1.6.2. Mixer</a>
</ul></ul><li><a href="#u:1.">What does freedom have to do with this software?</a>
<li><a href="#u:2.">Donations</a>
@ -66,7 +64,7 @@ March 1, 2008<br>
The Non DAW is a powerful, reliable and fast modular Digital Audio Workstation system, released under the GNU General Public License (GPL). It utilizes the JACK Audio Connection Kit for inter-application audio I/O and the FLTK GUI toolkit for a fast and lightweight user interface.
</p>
<p>
Please see the <a class=ext href="non-daw/MANUAL.html">Non DAW Manual</a> and <a class=ext href="non-mixer/MANUAL.html">Non Mixer Manual</a> for more information.
Please see the <a class=ext href="MANUAL.html">Manual</a> for more information.
</p>
<h2 id="n:1.2.">1.2. What it is not</h2>
<p>
@ -173,33 +171,6 @@ The following data belong to the timeline:
<dt><em>Annotation Regions</em></dt>
<dd>Annotation Regions are annotations with a definite duration. These are useful for representing lyrics or other notes of a timely nature. Each track may have any number of annotation sequences associated with it, and these sequences can contain a free mix of annotation points and annotation regions.</dd>
</dl>
<h3 id="n:1.6.2.">1.6.2. Mixer</h3>
<p>
The Non Mixer is a stand-alone application. It is a complement to Non DAW, but neither program requires the other in order to function.
</p>
<p>
Implementing the mixer functionality in a separate program, connected to Non-DAW via JACK presents a number of advantages:
</p>
<ul><li><span>Eliminates the need for an internal connection management interface</span>
<li><span>Improves overall system stability</span>
<li><span>Increases parallelism (utilizes multiple cores)</span>
<li><span>Adds flexibility</span>
<li><span>Eliminates the need for cumbersome concepts and interfaces such as 'sends', 'groups', 'inserts' and 'busses'.</span>
</ul><p>
Multiple instances of the mixer can be run together in order to organize groups of channels and manage them with your preferred window manager.
</p>
<p>
Each mixer strip runs as a separate JACK client. In JACK2, this can translates into the DSP workload being spread across multiple CPU cores.
</p>
<p>
Since the 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-DAW 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.
</p>
<p>
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-DAW (or another program) via JACK.
</p>
<p>
Control data is expressed as Control Voltage (CV).
</p>
<h1 id="u:1.">What does freedom have to do with this software?</h1>
<p>
Non is <i>free software</i>. This means, briefly, that you are free use it as <b>you</b> wish, free to examine and adapt the source code, free to share it with your friends, and free to publish your changes to the source code. Furthermore, Non is <i>copyleft</i>, which means that you are free from the threat of some other entity taking over and denying you the above freedoms. The <i>free</i> part of <i>free software</i> doesn't refer to price any more than the <i>free</i> in <i>free speech</i> does.
@ -222,7 +193,7 @@ If you don't love this software, don't feel guilty about not contributing. If yo
</p>
<h1 id="u:3.">Distribution</h1>
<p>
Development of the Non-DAW can be followed with Git:
Development of the Non-DAW and Non-Mixer can be followed with Git:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
git clone git://git.tuxfamily.org/gitroot/non/daw.git
@ -238,11 +209,6 @@ The following libraries are required to build Non DAW and Non Mixer
<ul><li><span>FLTK >= 1.1.7 (with `fluid`)</span>
<li><span>JACK >= 0.103.0</span>
<li><span>libsndfile >= 0.18.0</span>
<li><span>liblrdf >= 0.1.0</span>
</ul><p>
The following are optional:
</p>
<ul><li><span>LASH >= 0.5.4</span>
</ul><h1 id="u:5.">Community</h1>
<p>
Feel free to drop by the <tt>#non</tt> channel on irc.freenode.net.

View File

@ -16,8 +16,7 @@
inter-application audio I\/O and the FLTK GUI toolkit for a fast and
lightweight user interface.
Please see the #(url,non-daw%(slash)MANUAL.html,Non DAW Manual) and
#(url,non-mixer%(slash)MANUAL.html,Non Mixer Manual) for more information.
Please see the #(url,MANUAL.html,Manual) for more information.
:: What it is not
@ -210,41 +209,6 @@
= sequences associated with it, and these sequences can contain
= a free mix of annotation points and annotation regions.
::: Mixer
The Non Mixer is a stand-alone application. It is a complement to Non
DAW, but neither program requires the other in order to function.
Implementing the mixer functionality in a separate program, connected
to Non-DAW 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
translates into the DSP workload being spread across multiple CPU
cores.
Since the 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-DAW 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-DAW (or another program) via JACK.
Control data is expressed as Control Voltage (CV).
; What does freedom have to do with this software?
Non is /free software/. This means, briefly, that you are free use it as
@ -278,10 +242,9 @@
#(url,http:\/\/non.tuxfamily.org\/donation.html,Make a donation)
; Distribution
Development of the Non-DAW can be followed with Git:
Development of the Non-DAW and Non-Mixer can be followed with Git:
> git clone git://git.tuxfamily.org/gitroot/non/daw.git
@ -294,11 +257,6 @@
* FLTK >= 1.1.7 (with `fluid`)
* JACK >= 0.103.0
* libsndfile >= 0.18.0
* liblrdf >= 0.1.0
The following are optional:
* LASH >= 0.5.4
; Community