Remove website documents from repository.
This commit is contained in:
parent
ddb5d4f7ab
commit
bcfa3953b1
|
@ -12,9 +12,7 @@ OBJS=$(SRCS:.mu=.html)
|
|||
all: $(OBJS)
|
||||
|
||||
upload: all
|
||||
@ ln -sf OVERVIEW.html index.html
|
||||
@ rsync -L mup.css MANUAL.html index.html *.png ssh.tuxfamily.org:/home/non/non-mixer.tuxfamily.org-web/htdocs
|
||||
@ rm -f index.html
|
||||
@ rsync -L mup.css MANUAL.html *.png ssh.tuxfamily.org:/home/non/non-mixer.tuxfamily.org-web/htdocs
|
||||
|
||||
install:
|
||||
@ install -d "$(DESTDIR)$(DOCUMENT_PATH)"/non-mixer
|
||||
|
|
|
@ -1,182 +0,0 @@
|
|||
<!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"><male@tuxfamily.org></a><br>
|
||||
February 1, 2010<br>
|
||||
|
||||
</address><img src="icon.png" alt="icon"><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>
|
||||
|
||||
<li><a href="#n:1.3.8.">1.3.8. Spatialization</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>
|
||||
<center><div class="fig image"><table border=1>
|
||||
<tr><td><img src="non-mixer-complex.png" alt="fig. "></td></tr>
|
||||
</table></div></center>
|
||||
<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 (and lots of screenshots).
|
||||
</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 either as Control Voltage (CV) or Control Signals.
|
||||
</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. All module parameters are alterable via OSC messages, regardless of whether or not they have <i>controls</i> defined.
|
||||
</p>
|
||||
<h3 id="n:1.3.8.">1.3.8. Spatialization</h3>
|
||||
<p>
|
||||
Plugins supporting Ambisonics panning are automatically assigned a special control called a Spatializer. This allows for easy and positioning of sound sources.
|
||||
</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-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/non.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>JACK >= 0.103.0</span>
|
||||
<li><span>liblrdf >= 0.1.0</span>
|
||||
<li><span>liblo >= 0.26</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"><non-mixer-request@lists.tuxfamily.org></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>
|
|
@ -1,200 +0,0 @@
|
|||
|
||||
! title The Non Mixer
|
||||
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
|
||||
! date February 1, 2010
|
||||
! extra #(image,icon,icon.png)
|
||||
|
||||
-- Table Of Contents
|
||||
|
||||
: Overview
|
||||
|
||||
< non-mixer-complex.png
|
||||
|
||||
:: 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 (and
|
||||
lots of screenshots).
|
||||
|
||||
:: 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 either as Control Voltage (CV) or Control
|
||||
Signals.
|
||||
|
||||
::: 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.
|
||||
|
||||
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.
|
||||
|
||||
; 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-Mixer can be followed with Git:
|
||||
|
||||
> git clone git://git.tuxfamily.org/gitroot/non/non.git
|
||||
|
||||
There are no pre-compiled binaries available.
|
||||
|
||||
; Requirements
|
||||
|
||||
The following libraries are required to build Non DAW and Non Mixer
|
||||
|
||||
* JACK >= 0.103.0
|
||||
* liblrdf >= 0.1.0
|
||||
* liblo >= 0.26
|
||||
|
||||
; 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).
|
|
@ -11,9 +11,7 @@ OBJS=$(SRCS:.mu=.html)
|
|||
all: $(OBJS)
|
||||
|
||||
upload: all
|
||||
@ ln -sf OVERVIEW.html index.html
|
||||
@ rsync -L mup.css MANUAL.html index.html *.png ssh.tuxfamily.org:/home/non/non-sequencer.tuxfamily.org-web/htdocs
|
||||
@ rm -f index.html
|
||||
@ rsync -L mup.css MANUAL.html *.png ssh.tuxfamily.org:/home/non/non-sequencer.tuxfamily.org-web/htdocs
|
||||
|
||||
install:
|
||||
@ install -d "$(DESTDIR)$(DOCUMENT_PATH)/non-sequencer"
|
||||
|
|
|
@ -1,85 +0,0 @@
|
|||
<!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 Sequencer</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id=cover>
|
||||
<h1>The Non Sequencer</h1>
|
||||
<h3></h3>
|
||||
<address>
|
||||
Jonathan Moore Liles <a href="mailto:male@tuxfamily.org"><male@tuxfamily.org></a><br>
|
||||
<br>
|
||||
|
||||
</address><img src="icon.png" alt="logo"><hr></div>
|
||||
<div id=body>
|
||||
<hr width=50%>
|
||||
<h1 id="u:1.">Description</h1>
|
||||
<p>
|
||||
The Non Sequencer is a powerful real-time, pattern-based MIDI sequencer for Linux--released under the GPL. Filling the void left by countless DAWs, piano-roll editors, and other purely performance based solutions, it is a compositional tool--one that transforms MIDI music-making on Linux from a complex nightmare into a pleasurable, efficient, and streamlined process.
|
||||
</p>
|
||||
<p>
|
||||
Please see the <a class=ext href="MANUAL.html">manual</a> for more information.
|
||||
</p>
|
||||
<h1 id="u:2.">What it is not</h1>
|
||||
<p>
|
||||
Non is <b>not</b> a plain MIDI recorder, tracker, software synthesizer, notation editor or AI system. There are other programs available to do those things. Non is intended to be one tool among many in your Linux audio toolbox.
|
||||
</p>
|
||||
<p>
|
||||
Everything in Non happens <i>on-line</i>, in realtime. Music is composed live, while the transport is running.
|
||||
</p>
|
||||
<h1 id="u:3.">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:4.">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:5.">Distribution</h1>
|
||||
<p>
|
||||
Development of the Non Sequencer can be followed with Git:
|
||||
</p>
|
||||
<div class="fig example"><table width=100%><tr><td><pre>
|
||||
git clone git://git.tuxfamily.org/gitroot/non/non.git
|
||||
</pre></td></tr>
|
||||
</table></div>
|
||||
<p>
|
||||
There are no pre-compiled binaries available.
|
||||
</p>
|
||||
<h1 id="u:6.">Requirements</h1>
|
||||
<p>
|
||||
The following libraries are required to build Non:
|
||||
</p>
|
||||
<ul><li><span>JACK >= 0.103.0</span>
|
||||
<li><span>sigc++ 2.0</span>
|
||||
</ul><h1 id="u:7.">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-sequencer@lists.tuxfamily.org</tt>.
|
||||
</p>
|
||||
<p>
|
||||
To subscribe, send a message with the subject 'subscribe' to <a href="mailto:non-sequencer-request@lists.tuxfamily.org"><non-sequencer-request@lists.tuxfamily.org></a>.
|
||||
</p>
|
||||
<p>
|
||||
You can also browse the <a class=ext href="http://listengine.tuxfamily.org/lists.tuxfamily.org/non-sequencer/">archive</a>.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,85 +0,0 @@
|
|||
|
||||
! title The Non Sequencer
|
||||
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
|
||||
! extra #(image,logo,icon.png)
|
||||
|
||||
--
|
||||
|
||||
; Description
|
||||
|
||||
The Non Sequencer is a powerful real-time, pattern-based MIDI sequencer for
|
||||
Linux--released under the GPL. Filling the void left by countless DAWs,
|
||||
piano-roll editors, and other purely performance based solutions, it is a
|
||||
compositional tool--one that transforms MIDI music-making on Linux from a
|
||||
complex nightmare into a pleasurable, efficient, and streamlined process.
|
||||
|
||||
Please see the #(url,MANUAL.html,manual) for more information.
|
||||
|
||||
; What it is not
|
||||
|
||||
Non is *not* a plain MIDI recorder, tracker, software synthesizer, notation
|
||||
editor or AI system. There are other programs available to do those things.
|
||||
Non is intended to be one tool among many in your Linux audio toolbox.
|
||||
|
||||
Everything in Non happens /on-line/, in realtime. Music is composed live,
|
||||
while the transport is running.
|
||||
|
||||
; 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 Sequencer can be followed with Git:
|
||||
|
||||
> git clone git://git.tuxfamily.org/gitroot/non/non.git
|
||||
|
||||
There are no pre-compiled binaries available.
|
||||
|
||||
; Requirements
|
||||
|
||||
The following libraries are required to build Non:
|
||||
|
||||
* JACK >= 0.103.0
|
||||
* sigc++ 2.0
|
||||
|
||||
; Community
|
||||
|
||||
Feel free to drop by the `#non` channel on irc.freenode.net.
|
||||
|
||||
There is a mailing list `non-sequencer@lists.tuxfamily.org`.
|
||||
|
||||
To subscribe, send a message with the subject 'subscribe' to
|
||||
#(email,non-sequencer-request@lists.tuxfamily.org).
|
||||
|
||||
You can also browse the #(url,http:\/\/listengine.tuxfamily.org\/lists.tuxfamily.org\/non-sequencer\/,archive).
|
||||
|
|
@ -12,9 +12,7 @@ OBJS=$(SRCS:.mu=.html)
|
|||
all: $(OBJS)
|
||||
|
||||
upload: all
|
||||
@ ln -sf OVERVIEW.html index.html
|
||||
@ rsync -L mup.css MANUAL.html index.html *.png ssh.tuxfamily.org:/home/non/non-daw.tuxfamily.org-web/htdocs
|
||||
@ rm -f index.html
|
||||
@ rsync -L mup.css MANUAL.html *.png ssh.tuxfamily.org:/home/non/non-daw.tuxfamily.org-web/htdocs
|
||||
|
||||
install:
|
||||
@ install -d "$(DESTDIR)$(DOCUMENT_PATH)"/non-daw
|
||||
|
|
|
@ -1,230 +0,0 @@
|
|||
<!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 DAW</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id=cover>
|
||||
<h1>The Non DAW</h1>
|
||||
<h3></h3>
|
||||
<address>
|
||||
Jonathan Moore Liles <a href="mailto:male@tuxfamily.org"><male@tuxfamily.org></a><br>
|
||||
March 1, 2008<br>
|
||||
|
||||
</address><img src="icon.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. What it is not</a>
|
||||
|
||||
<li><a href="#n:1.3.">1.3. What is a DAW?</a>
|
||||
|
||||
<li><a href="#n:1.4.">1.4. Why write another one?</a>
|
||||
|
||||
<li><a href="#n:1.5.">1.5. Features</a>
|
||||
|
||||
<ul><li><a href="#n:1.5.1.">1.5.1. Journaled Projects</a>
|
||||
|
||||
<li><a href="#n:1.5.2.">1.5.2. Non-destructive editing</a>
|
||||
|
||||
<li><a href="#n:1.5.3.">1.5.3. Unlimited tracks</a>
|
||||
|
||||
<li><a href="#n:1.5.4.">1.5.4. Unlimited takes</a>
|
||||
|
||||
<li><a href="#n:1.5.5.">1.5.5. Cross-fades</a>
|
||||
|
||||
<li><a href="#n:1.5.6.">1.5.6. Automation</a>
|
||||
|
||||
<li><a href="#n:1.5.7.">1.5.7. Time/tempo mapping</a>
|
||||
|
||||
</ul><li><a href="#n:1.6.">1.6. Components</a>
|
||||
|
||||
<ul><li><a href="#n:1.6.1.">1.6.1. Timeline</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>
|
||||
<center><div class="fig image"><table border=1>
|
||||
<tr><td><img src="tle.png" alt="fig. "></td></tr>
|
||||
</table></div></center>
|
||||
<h2 id="n:1.1.">1.1. Description</h2>
|
||||
<p>
|
||||
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="MANUAL.html">Manual</a> for more information (and lots of screenshots).
|
||||
</p>
|
||||
<h2 id="n:1.2.">1.2. What it is not</h2>
|
||||
<p>
|
||||
Non-DAW is <b>not</b> a wave editor. It is not a beat slicer. It is not a granular synthesis engine. It is <b>not</b> a clone of some proprietary DAW. It is not an <i>insert name of proprietary audio thing here</i> killer. It is <b>not</b> limiting and restricting. It is <b>not</b> a monolithic DAW with internal mixing or EQ DSP. Non-DAW is intended to be one tool among many in your Linux audio toolbox.
|
||||
</p>
|
||||
<h2 id="n:1.3.">1.3. What is a DAW?</h2>
|
||||
<p>
|
||||
The acronym DAW stands for Digital Audio Workstation. Of course, Non is software, so when we say DAW we imply a purely software based system. A DAW is used by modern studio engineers to record and arrange multitrack sessions of different musicians into a single song. Perhaps a more noble use of a DAW, and the one for which Non-DAW was specifically written, is to provide the mutli-instrumentalist individual with all the software necessary to quickly and conveniently record and arrange his compositions and produce a professional quality result.
|
||||
</p>
|
||||
<p>
|
||||
In this author's opinion, a DAW comprises the following functionality:
|
||||
</p>
|
||||
<ul><li><span>Non-linear, non-destructive arrangement of portions of audio clips.</span>
|
||||
<li><span>Tempo and time signature mapping, with editing operations being closely aligned to this map.</span>
|
||||
</ul><p>
|
||||
Since Non uses JACK for IO, some things traditionally considered to be within the scope of a monolithic DAW can be pared out into JACK and Non Mixer:
|
||||
</p>
|
||||
<ul><li><span>Signal routing</span>
|
||||
<li><span>Audio mixing</span>
|
||||
<li><span>Hosting of plugins</span>
|
||||
</ul><h2 id="n:1.4.">1.4. Why write another one?</h2>
|
||||
<p>
|
||||
First and foremost, we can disregard all non-free DAWs because we do not waste our precious time and spirit on non-free and/or proprietary software. This excludes virtually every other DAW in existence. Secondly, we require a DAW that runs on the GNU/Linux operating system in conjunction with other free software, such as the JACK Audio Connection Kit, in a modular and cooperative and manner. Finally, we require a program that is powerful, fast, and reliable. No other software meets these requirements.
|
||||
</p>
|
||||
<p>
|
||||
The design of the Non DAW differs substantially from others. This is a good thing; for a clone of a bad design is doomed from the start.
|
||||
</p>
|
||||
<p>
|
||||
There is only one other DAW that is capable and free software, and its name is Ardour. Suffice it to say that the architecture of Ardour is incompatible with the requirements of speed and reliability. Other DAW-like free software programs, including Traverso and QTractor, are similarly limited (being of similar design), but suffer the additional burden of cumbersome legacy ALSA support and very a limited feature set.
|
||||
</p>
|
||||
<p>
|
||||
Given these options, we had no choice but to start from scratch, this time on a solid foundation, rather than attempting (in vain) to shoehorn good design into an existing code base.
|
||||
</p>
|
||||
<h2 id="n:1.5.">1.5. Features</h2>
|
||||
<p>
|
||||
Non-DAW shares many features in common with other, similar projects. However, Non-DAW's unique architecture permits surprising new functionality.
|
||||
</p>
|
||||
<h3 id="n:1.5.1.">1.5.1. Journaled Projects</h3>
|
||||
<p>
|
||||
Unlike legacy DAWs, which keep project state in huge, memory wasting, hard to manage XML (or binary equivalent) trees, Non-DAW has the unique ability to store project state in a compact continuous journal of bidirectional delta messages--similar to the journal part of journaling filesystems--in plain ASCII.
|
||||
</p>
|
||||
<p>
|
||||
The Non-DAW disk format takes the form of a journal of delta messages. Each project file contains the complete history of that project since the last (optional) compaction operation. These journals are so terse that it is practical to keep the complete history of a project from the time it was first opened. No XML or other bloated, buggy, resource hungry format is employed. (Anyone suggesting the use of XML for anything related to this project will be shot on sight with incendiary rounds.)
|
||||
</p>
|
||||
<p>
|
||||
This has a number of highly desirable consequences. Among them:
|
||||
</p>
|
||||
<ol><li><span>Zero time spent 'saving' projects.</span>
|
||||
<li><span>No need to 'save' projects manualy.</span>
|
||||
<li><span>No need for CPU and RAM wasting 'autosave' function.</span>
|
||||
<li><span>In the (unlikely) event of a crash, at most *one* transaction (user action) may be lost, and the project will *not* be invalidated.</span>
|
||||
<li><span>Unlimited undo--potentially going back to the very moment the project was created (state of the template it was based on).</span>
|
||||
<li><span>Undo history requires no additional RAM.</span>
|
||||
<li><span>Project format is insanely simple and easy to manipulate with sed or awk scripts, should the need arise (see the included `remove-unused-sources` script for an example).</span>
|
||||
</ol><p>
|
||||
Non-DAW's journalling capability can drastically change your workflow. No longer will you fear a system failure. No longer will your pinky finger become sore from hitting Control-S after every important change. No longer will you have to attempt, in vain, to manually edit a completely incomprehensible XML 'document', because Ardour has corrupted its memory and therefore the project you 'saved'.
|
||||
</p>
|
||||
<h3 id="n:1.5.2.">1.5.2. Non-destructive editing</h3>
|
||||
<p>
|
||||
Sound sources (audio files) are represented by <i>regions</i>. Any number of regions may represent different parts of the same source. All editing is performed on these region structures--the sound sources themselves are considered read-only (except for captures in-progress).
|
||||
</p>
|
||||
<h3 id="n:1.5.3.">1.5.3. Unlimited tracks</h3>
|
||||
<p>
|
||||
Tracks in a DAW are unlike tracks on tape in that a single track can contain more than one channel of audio. Each audio track has its own record, mute, solo, and gain, as well an active take and any number of inactive takes. A track may also have any number of annotation and control sequences associated with it.
|
||||
</p>
|
||||
<h3 id="n:1.5.4.">1.5.4. Unlimited takes</h3>
|
||||
<p>
|
||||
A <i>take</i> is a sequence of regions. Each track has <i>current take</i>, implied by 'the track', as well as any number of other, inactive takes. A track may be set to display all takes simultaneously, to ease the process of reviewing past takes or stitching together a new take from parts of previous takes. Old takes may be deleted, either one by one or all at once, when they are no longer required. Takes may not be transferred between tracks (there's no technical reason why they can't, but allowing this would be bad design).
|
||||
</p>
|
||||
<h3 id="n:1.5.5.">1.5.5. Cross-fades</h3>
|
||||
<p>
|
||||
Where regions overlap, a cross-fade exists. This means that the transition from region A to region B will be gradual rather than abrupt. The shape of the gain curve may be selected separately for region A and B of the cross-fade. Available curves include: Linear, Sigmoid, Logarithmic, and Parabolic.
|
||||
</p>
|
||||
<h3 id="n:1.5.6.">1.5.6. Automation</h3>
|
||||
<p>
|
||||
Each track can have associated with it any number of <i>control sequences</i>, a subset of which may be visible at any one time. Each control sequence comprises a series of <i>control points</i>, which collectively represent a graph of changes to a single controllable value over time. Anything may be controlled by a control track, including external software supporting OSC or MIDI control, although the most common application is mixer gain automation, where the value controlled is the fader level in the mixer.
|
||||
</p>
|
||||
<h3 id="n:1.5.7.">1.5.7. Time/tempo mapping</h3>
|
||||
<p>
|
||||
The time and tempo maps (rulers) affect where and how many bar/beat lines are drawn. During playback they affect the time/tempo of the JACK transport so that other programs, like the Non-Sequencer, can follow along in sync.
|
||||
</p>
|
||||
<h2 id="n:1.6.">1.6. Components</h2>
|
||||
<p>
|
||||
The Mixer and the Timeline are separate programs, connected through JACK.
|
||||
</p>
|
||||
<h3 id="n:1.6.1.">1.6.1. Timeline</h3>
|
||||
<p>
|
||||
All operations on the timeline are journaled, and therefore reversible.
|
||||
</p>
|
||||
<p>
|
||||
The following data belong to the timeline:
|
||||
</p>
|
||||
<dl>
|
||||
<dt><em>Tracks and Takes</em></dt>
|
||||
<dd>Each Track has a number of input and output ports, a name, and any number of attached sequences. All sequences but the current (topmost) are inactive and do not generate sound or accept captures. These sequences are referred to as <i>Takes</i>. Previous takes may be swapped with the current sequence and all takes may be shown on screen at once for easy splicing. Each track can also have any number of Control Sequences attached to it, in which case all control sequences generate control output unless disconnected. The height of a track may be adjusted and a track can be muted, soloed, or record-enabled.</dd>
|
||||
<dt><em>Regions</em></dt>
|
||||
<dd>Regions are the most common object on the timeline. Each region represents a segment of some particular audio file. Waveforms of all regions belonging to the same source are displayed in the same hue. Each region has a normalization value and regions can be selected individually or operated on in groups. Each region has a fade-in and fade-out curve, and when two regions overlap, this constitutes a cross-fade.</dd>
|
||||
<dt><em>Control Points</em></dt>
|
||||
<dd>Control points are arbitrarily placed points on a curve (or line) from which continuous control values are interpolated and sent out a JACK port (like a control voltage).</dd>
|
||||
<dt><em>Time and Tempo Points</em></dt>
|
||||
<dd>Time and Tempo points control the tempo and meter throughout time. This information is used for drawing the measure lines and snapping to the grid, as well as informing other JACK clients of tempo changes throughout a song.</dd>
|
||||
<dt><em>Annotation Points</em></dt>
|
||||
<dd>Cue points are textual markers on the timeline. Common names for cue points include "Verse 1", "Bridge", etc.</dd>
|
||||
<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>
|
||||
<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 can be followed with Git:
|
||||
</p>
|
||||
<div class="fig example"><table width=100%><tr><td><pre>
|
||||
git clone git://git.tuxfamily.org/gitroot/non/non.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.
|
||||
</p>
|
||||
<ul><li><span>JACK >= 0.103.0</span>
|
||||
<li><span>libsndfile >= 0.18.0</span>
|
||||
<li><span>liblo >= 0.26</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-daw@lists.tuxfamily.org</tt>.
|
||||
</p>
|
||||
<p>
|
||||
To subscribe, send a message with the subject 'subscribe' to <a href="mailto:non-daw-request@lists.tuxfamily.org"><non-daw-request@lists.tuxfamily.org></a>.
|
||||
</p>
|
||||
<p>
|
||||
You can also browse the <a class=ext href="http://listengine.tuxfamily.org/lists.tuxfamily.org/non-daw/">archive</a>.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,273 +0,0 @@
|
|||
|
||||
! title The Non DAW
|
||||
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
|
||||
! date March 1, 2008
|
||||
! extra #(image,logo,icon.png)
|
||||
|
||||
-- Table Of Contents
|
||||
|
||||
: Overview
|
||||
|
||||
< tle.png
|
||||
|
||||
:: Description
|
||||
|
||||
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.
|
||||
|
||||
Please see the #(url,MANUAL.html,Manual) for more information (and
|
||||
lots of screenshots).
|
||||
|
||||
:: What it is not
|
||||
|
||||
Non-DAW is *not* a wave editor. It is not a beat slicer. It is not a
|
||||
granular synthesis engine. It is *not* a clone of some proprietary DAW. It
|
||||
is not an /insert name of proprietary audio thing here/ killer. It is *not*
|
||||
limiting and restricting. It is *not* a monolithic DAW with internal mixing
|
||||
or EQ DSP. Non-DAW is intended to be one tool among many in your Linux audio
|
||||
toolbox.
|
||||
|
||||
:: What is a DAW?
|
||||
|
||||
The acronym DAW stands for Digital Audio Workstation. Of course, Non is
|
||||
software, so when we say DAW we imply a purely software based system. A DAW
|
||||
is used by modern studio engineers to record and arrange multitrack sessions
|
||||
of different musicians into a single song. Perhaps a more noble use of a
|
||||
DAW, and the one for which Non-DAW was specifically written, is to provide
|
||||
the mutli-instrumentalist individual with all the software necessary to
|
||||
quickly and conveniently record and arrange his compositions and produce a
|
||||
professional quality result.
|
||||
|
||||
In this author's opinion, a DAW comprises the following functionality:
|
||||
|
||||
* Non-linear, non-destructive arrangement of portions of audio clips.
|
||||
* Tempo and time signature mapping, with editing operations being closely aligned to this map.
|
||||
|
||||
Since Non uses JACK for IO, some things traditionally considered to be within
|
||||
the scope of a monolithic DAW can be pared out into JACK and Non Mixer:
|
||||
|
||||
* Signal routing
|
||||
* Audio mixing
|
||||
* Hosting of plugins
|
||||
|
||||
:: Why write another one?
|
||||
|
||||
First and foremost, we can disregard all non-free DAWs because we do not
|
||||
waste our precious time and spirit on non-free and\/or proprietary software.
|
||||
This excludes virtually every other DAW in existence. Secondly, we require a
|
||||
DAW that runs on the GNU\/Linux operating system in conjunction with other
|
||||
free software, such as the JACK Audio Connection Kit, in a modular and
|
||||
cooperative and manner. Finally, we require a program that is powerful,
|
||||
fast, and reliable. No other software meets these requirements.
|
||||
|
||||
The design of the Non DAW differs substantially from others. This is a good
|
||||
thing; for a clone of a bad design is doomed from the start.
|
||||
|
||||
There is only one other DAW that is capable and free software, and its name
|
||||
is Ardour. Suffice it to say that the architecture of Ardour is incompatible
|
||||
with the requirements of speed and reliability. Other DAW-like free software
|
||||
programs, including Traverso and QTractor, are similarly limited (being of
|
||||
similar design), but suffer the additional burden of cumbersome legacy ALSA
|
||||
support and very a limited feature set.
|
||||
|
||||
Given these options, we had no choice but to start from scratch, this time on
|
||||
a solid foundation, rather than attempting (in vain) to shoehorn good design
|
||||
into an existing code base.
|
||||
|
||||
:: Features
|
||||
|
||||
Non-DAW shares many features in common with other, similar projects. However,
|
||||
Non-DAW's unique architecture permits surprising new functionality.
|
||||
|
||||
::: Journaled Projects
|
||||
|
||||
Unlike legacy DAWs, which keep project state in huge, memory wasting, hard
|
||||
to manage XML (or binary equivalent) trees, Non-DAW has the unique ability
|
||||
to store project state in a compact continuous journal of bidirectional
|
||||
delta messages--similar to the journal part of journaling filesystems--in
|
||||
plain ASCII.
|
||||
|
||||
The Non-DAW disk format takes the form of a journal of delta messages. Each
|
||||
project file contains the complete history of that project since the last
|
||||
(optional) compaction operation. These journals are so terse that it is
|
||||
practical to keep the complete history of a project from the time it was
|
||||
first opened. No XML or other bloated, buggy, resource hungry format is
|
||||
employed. (Anyone suggesting the use of XML for anything related to this
|
||||
project will be shot on sight with incendiary rounds.)
|
||||
|
||||
This has a number of highly desirable consequences. Among them:
|
||||
|
||||
+ Zero time spent 'saving' projects.
|
||||
+ No need to 'save' projects manualy.
|
||||
+ No need for CPU and RAM wasting 'autosave' function.
|
||||
+ In the (unlikely) event of a crash, at most *one* transaction (user action) may be lost, and the project will *not* be invalidated.
|
||||
+ Unlimited undo--potentially going back to the very moment the project was created (state of the template it was based on).
|
||||
+ Undo history requires no additional RAM.
|
||||
+ Project format is insanely simple and easy to manipulate with sed or awk scripts, should the need arise (see the included `remove-unused-sources` script for an example).
|
||||
|
||||
Non-DAW's journalling capability can drastically change your workflow. No
|
||||
longer will you fear a system failure. No longer will your pinky finger
|
||||
become sore from hitting Control-S after every important change. No longer
|
||||
will you have to attempt, in vain, to manually edit a completely
|
||||
incomprehensible XML 'document', because Ardour has corrupted its memory and
|
||||
therefore the project you 'saved'.
|
||||
|
||||
::: Non-destructive editing
|
||||
|
||||
Sound sources (audio files) are represented by /regions/. Any number of
|
||||
regions may represent different parts of the same source. All editing is
|
||||
performed on these region structures--the sound sources themselves are
|
||||
considered read-only (except for captures in-progress).
|
||||
|
||||
::: Unlimited tracks
|
||||
|
||||
Tracks in a DAW are unlike tracks on tape in that a single track can
|
||||
contain more than one channel of audio. Each audio track has its own
|
||||
record, mute, solo, and gain, as well an active take and any number
|
||||
of inactive takes. A track may also have any number of annotation
|
||||
and control sequences associated with it.
|
||||
|
||||
::: Unlimited takes
|
||||
|
||||
A /take/ is a sequence of regions. Each track has /current take/, implied by
|
||||
'the track', as well as any number of other, inactive takes. A track may be
|
||||
set to display all takes simultaneously, to ease the process of reviewing
|
||||
past takes or stitching together a new take from parts of previous takes.
|
||||
Old takes may be deleted, either one by one or all at once, when they are no
|
||||
longer required. Takes may not be transferred between tracks (there's no
|
||||
technical reason why they can't, but allowing this would be bad design).
|
||||
|
||||
::: Cross-fades
|
||||
|
||||
Where regions overlap, a cross-fade exists. This means that the transition
|
||||
from region A to region B will be gradual rather than abrupt. The shape of
|
||||
the gain curve may be selected separately for region A and B of the
|
||||
cross-fade. Available curves include: Linear, Sigmoid, Logarithmic, and
|
||||
Parabolic.
|
||||
|
||||
::: Automation
|
||||
|
||||
Each track can have associated with it any number of /control sequences/, a
|
||||
subset of which may be visible at any one time. Each control sequence
|
||||
comprises a series of /control points/, which collectively represent a graph
|
||||
of changes to a single controllable value over time. Anything may be
|
||||
controlled by a control track, including external software supporting OSC or
|
||||
MIDI control, although the most common application is mixer gain automation,
|
||||
where the value controlled is the fader level in the mixer.
|
||||
|
||||
::: Time/tempo mapping
|
||||
|
||||
The time and tempo maps (rulers) affect where and how many bar\/beat lines
|
||||
are drawn. During playback they affect the time\/tempo of the JACK transport
|
||||
so that other programs, like the Non-Sequencer, can follow along in sync.
|
||||
|
||||
:: Components
|
||||
|
||||
The Mixer and the Timeline are separate programs, connected through JACK.
|
||||
|
||||
::: Timeline
|
||||
|
||||
All operations on the timeline are journaled, and therefore reversible.
|
||||
|
||||
The following data belong to the timeline:
|
||||
|
||||
= Tracks and Takes
|
||||
= Each Track has a number of input and output ports, a name, and
|
||||
= any number of attached sequences. All sequences but the current
|
||||
= (topmost) are inactive and do not generate sound or accept
|
||||
= captures. These sequences are referred to as /Takes/. Previous
|
||||
= takes may be swapped with the current sequence and all takes
|
||||
= may be shown on screen at once for easy splicing. Each track
|
||||
= can also have any number of Control Sequences attached to it,
|
||||
= in which case all control sequences generate control output
|
||||
= unless disconnected. The height of a track may be adjusted
|
||||
= and a track can be muted, soloed, or record-enabled.
|
||||
= Regions
|
||||
= Regions are the most common object on the timeline. Each region
|
||||
= represents a segment of some particular audio file. Waveforms
|
||||
= of all regions belonging to the same source are displayed in
|
||||
= the same hue. Each region has a normalization value and regions
|
||||
= can be selected individually or operated on in groups. Each
|
||||
= region has a fade-in and fade-out curve, and when two regions
|
||||
= overlap, this constitutes a cross-fade.
|
||||
= Control Points
|
||||
= Control points are arbitrarily placed points on a curve (or
|
||||
= line) from which continuous control values are interpolated
|
||||
= and sent out a JACK port (like a control voltage).
|
||||
= Time and Tempo Points
|
||||
= Time and Tempo points control the tempo and meter throughout
|
||||
= time. This information is used for drawing the measure lines
|
||||
= and snapping to the grid, as well as informing other JACK
|
||||
= clients of tempo changes throughout a song.
|
||||
= Annotation Points
|
||||
= Cue points are textual markers on the timeline. Common names
|
||||
= for cue points include "Verse 1", "Bridge", etc.
|
||||
= Annotation Regions
|
||||
= 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.
|
||||
|
||||
; 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 can be followed with Git:
|
||||
|
||||
> git clone git://git.tuxfamily.org/gitroot/non/non.git
|
||||
|
||||
There are no pre-compiled binaries available.
|
||||
|
||||
; Requirements
|
||||
|
||||
The following libraries are required to build Non DAW.
|
||||
|
||||
* JACK >= 0.103.0
|
||||
* libsndfile >= 0.18.0
|
||||
* liblo >= 0.26
|
||||
|
||||
; Community
|
||||
|
||||
Feel free to drop by the `#non` channel on irc.freenode.net.
|
||||
|
||||
There is a mailing list `non-daw@lists.tuxfamily.org`.
|
||||
|
||||
To subscribe, send a message with the subject 'subscribe' to
|
||||
#(email,non-daw-request@lists.tuxfamily.org).
|
||||
|
||||
You can also browse the #(url,http:\/\/listengine.tuxfamily.org\/lists.tuxfamily.org\/non-daw\/,archive).
|
Loading…
Reference in New Issue