~ubuntu-branches/ubuntu/wily/muse/wily

« back to all changes in this revision

Viewing changes to doc/documentation.tex

  • Committer: Package Import Robot
  • Author(s): Fabrice Coutadeur, Fabrice Coutadeur, Alessio Treglia
  • Date: 2012-08-04 07:05:22 UTC
  • mfrom: (1.1.11)
  • Revision ID: package-import@ubuntu.com-20120804070522-yf76neafek15rjv6
Tags: 2.0.1-1
[ Fabrice Coutadeur ]
* New stable bug fixing release.
* debian/compat: set compat to 9 to automatically get hardening flags

[ Alessio Treglia ]
* Add Fabrice Coutadeur to the Uploaders field.
* Refresh 1001-buildsystem.patch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
\usepackage{wrapfig}
79
79
\usepackage{fancyhdr}
80
80
\pagestyle{fancy}
81
 
        \lhead{\scriptsize{\slshape\leftmark}}
82
 
        \chead{}
83
 
        \rhead{\thepage}
84
 
        \lfoot{}
85
 
        \cfoot{}
86
 
        \rfoot{}
87
 
        \renewcommand{\headrulewidth}{0.4pt}
 
81
        \lhead{\scriptsize{\slshape\leftmark}}
 
82
        \chead{}
 
83
        \rhead{\thepage}
 
84
        \lfoot{}
 
85
        \cfoot{}
 
86
        \rfoot{}
 
87
        \renewcommand{\headrulewidth}{0.4pt}
88
88
\usepackage{ifthen}
89
89
 
 
90
%% Borrowed from Lyx output. "Because html converters don't know 
 
91
%%  tabularnewline". Is required? Maybe replace with \\ ?
 
92
\providecommand{\tabularnewline}{\\}
 
93
 
90
94
% Hyphenate symbols before each uppercase letter, after each underscore
91
95
% (without a "-") and after each ':' (without a "-")
92
96
% TODO for any latex crack: also do automatic hyphenation, that is,
117
121
 
118
122
 
119
123
 
120
 
\author{Florian Jung, Robert Jonsson}
 
124
\author{Florian Jung, Robert Jonsson, Tim Donnelly}
121
125
\title{MusE Documentation}
122
126
 
123
127
\newcommand{\url}[1]{\texttt{#1}}
133
137
\begin{document}
134
138
\label{Main/Arranger}
135
139
\begin{figure}[htp]
136
 
\centering
137
 
\includegraphics[width=1.0\textwidth]{pics/muse2}
 
140
\centering \includegraphics[width=1.0\textwidth]{pics/muse2}
138
141
\label{fig:MusE}
139
142
\end{figure}
140
 
\chapter {What is this?}
 
143
\chapter{What is this?}
141
144
You are, if you have printed this document, holding in your hand the
142
145
written documentation for the audio and midi sequencer MusE version 2.\\ 
143
146
\url{http://www.muse-sequencer.org} is MusE's home on the internet where
147
150
all about.
148
151
\chapter{User's manual}
149
152
 
150
 
\section {Introduction}
151
 
\subsection {A brief history of computer audio and MusE}
 
153
\section{Introduction}
 
154
\subsection{A brief history of computer audio and MusE}
152
155
To quickly summarize over a decades open source development: in 1999 Werner
153
156
 Schweer released the first version of MusE, muse-0.0.1.tar.gz, in it's first
154
157
few releases (actually not few, Werner relentlessly churned out new releases)
159
162
strives to encompass most of the music recording process, creation, editing,
160
163
mastering.
161
164
 
162
 
\subsection {Definitions}
 
165
\subsection{Definitions}
163
166
\key{CTRL} refers to the control key on the keyboard, e.g. \key{CTRL+C}
164
167
means to press and hold the control key while pressing the c key. Make sure
165
168
you know where you have it so you won't accidentally lose control
176
179
E.g.\\
177
180
\hspace*{1cm}\shell{\$> muse2}\\
178
181
 
179
 
\subsection {Getting up and running for impatient people}
 
182
\subsection{Getting up and running for impatient people}
180
183
Install MusE from the repository of your chosen distribution.
181
184
To get decent performance start Jack with the following command in a
182
185
terminal:\\
183
186
\hspace*{1cm}\shell{\$> jackd -d alsa -d hw:0 -p 256}\\
184
187
Or, if you prefer, use the launcher utility \textbf{QJackCtl} to get some
185
188
help starting Jack.
186
 
After this, start MusE from the menu or fire up another terminal and type
 
189
After this, start MusE from the menu or fire up another terminal and
 
190
type
 
191
 
187
192
\shell{muse2}.\\
188
 
If this didn't work out read on for the slighly more complete route for
 
193
If this didn't work out read on for the slightly more complete route for
189
194
getting things started.
190
195
 
191
 
\subsection {Getting up and running}
192
 
\subsubsection {Installation from binaries}
 
196
\subsection{Getting up and running}
 
197
\subsubsection{Installation from binaries}
193
198
There are several ways to install MusE depending on your situation. The
194
199
most convenient way is to install a prepackaged version from your chosen
195
200
distribution. The drawback of this is that it may not be the most recent
196
201
version, though often there is a more recent package from a private packager.
197
 
\subsubsection {Installation from source}
 
202
\subsubsection{Installation from source}
198
203
Building MusE from source is not hard, there are a number of prerequistes
199
204
that must be met but the actual building should be painless (ha, famous
200
205
last words).\\
201
206
Please follow the README in the source package and/or read the instructions
202
207
on the homepage: \url{http://muse-sequencer.org/index.php/Installation}
203
208
 
204
 
\subsubsection {Hardware}
 
209
\subsubsection{Hardware}
205
210
MusE on the Linux platform supports midi through ALSA and Jack-midi and audio
206
211
through Jack. For information on what hardware is supported there are some
207
212
convenient places to check:
208
 
\begin {itemize}
209
 
\item Alsa soundcard matrix
210
 
\item \url{http://FFADO.org} for firewire devices.
211
 
\end {itemize}
 
213
\begin{itemize}
 
214
\item Alsa soundcard matrix at 
 
215
\url{http://www.alsa-project.org/main/index.php/Matrix:Main} 
 
216
\item \url{http://FFADO.org} for firewire devices. 
 
217
\end{itemize}
212
218
Also, as is often a very good approach for Linux and open source, the
213
219
various forums available on the internet often contain good information.
214
220
Chances are someone has already tried your configuration and/or had your
215
221
specific problem and the solution is already written down.
216
 
\subsubsection {Launching}
 
222
\subsubsection{Launching}
217
223
After installation the binary muse2 is installed on the computer. If MusE
218
224
was installed from a distribution repository the binary may have a
219
225
different name depending on the distribution policies. Most distributions
220
226
do however install a menu entry so MusE should be conveniently available
221
227
from there.
222
 
\subsubsection {Audio preconditions}
 
228
\subsubsection{Audio preconditions}
223
229
In the standard case MusE expects to find and connect to the Jack audio
224
230
server \url{http://jackaudio.org}. Make sure jack is installed (if MusE was
225
231
installed with a distribution-package Jack will very likely already be
227
233
sufficiently tuned to allow it to run with realtime capabilities. The
228
234
realtime configuration is configuration of the operating system and roughly
229
235
consists of two parts.
230
 
\begin {enumerate}
 
236
\begin{enumerate}
231
237
\item By default on most distros only the superuser lets applications setup
232
 
realtime capabilities. Please see the APPENDIX for setting up realtime
 
238
realtime capabilities. Please see the APPENDIX for setting up realtime 
233
239
\item Maximizing performance. A standard linux installation may not able
234
240
to reach the performance required by a power user. This requires exchanging
235
241
the linux kernel for a so called lowlatency kernel, this is also covered by
236
242
the realtime APPENDIX.
237
 
\end {enumerate}
238
 
 
239
 
\subsubsection {Running MusE}
240
 
Find MusE in the menu or open a terminal and enter muse2. A splash screen
241
 
should pop up followed by the main application window and you are off!
242
 
\shell{\$> muse2}\\
 
243
\end{enumerate}
 
244
 
 
245
\subsubsection{Running MusE}
 
246
Find MusE in the menu or open a terminal and enter muse2.
 
247
 
 
248
\shell{\$> muse2}\\A splash screen should pop up followed
 
249
by the main application window and you are off!\\
243
250
If an error like the screenshot below pops up the Jack audio server is
244
251
either not running or started as a different user than what you are trying
245
252
to start MusE as.
246
253
\begin{figure}[htp]
247
 
\centering
248
 
\includegraphics[width=\screenshotwidth]{pics/no_audio}
 
254
\centering \includegraphics[width=\screenshotwidth]{pics/no_audio} 
249
255
\caption{Jack server missing}
250
 
\label{fig:no_audio}
 
256
\label{fig:no_audio} 
251
257
\end{figure}
252
 
\subsubsection {Midi only}
 
258
\subsubsection{Midi only}
253
259
MusE can be started in Midi-only mode where MusE does not have any external
254
260
dependencies apart from ALSA midi. In this case start MusE from a terminal:
255
261
\shell{\$> muse2 -a}
256
262
 
257
 
\subsection {Beginners tutorial}
 
263
\subsubsection{ALSA midi with Jack}
 
264
If Jack is running, by default MusE will not use ALSA devices, preferring
 
265
Jack midi instead. To force ALSA devices to be used as well as Jack
 
266
midi, start MusE with the -A option: \shell{\$> muse2 -A}
 
267
 
 
268
\subsection{Beginners tutorial}
258
269
To get a quick grip of what MusE can achieve please follow this beginners
259
270
tutorial.
260
 
\subsubsection {Setup}
 
271
\subsubsection{Setup}
261
272
First off, fire up MusE as was described in the previous chapter, making
262
273
sure that the jack audio server is started with sufficient configuration
263
274
to allow for audio output without breakup. Also make sure your system can
264
 
make sound.
265
 
\subsubsection {Soft synth test}
 
275
make sound. 
 
276
\subsubsection{Soft synth test}
266
277
With MusE up and running right click in the Track-pane (see screenshot in
267
 
~\ref{Main/Arranger}) and select \menu{Add Synth > MESS > Organ}. A Soft
268
 
Synth track called Organ-0 should appear as well as a separate GUI for
269
 
the synthesizer.
 
278
~\ref{Main/Arranger}) and select \menu{Add Synth > MESS > vam soft synth}.
 
279
A Soft Synth track called vam-0 should appear as well as a separate GUI
 
280
for the synthesizer.
270
281
 
271
282
Now right click once more in the Track-pane and select \menu{Add Midi
272
 
Track}. Another track appears called Track-1, you will notice that it is
273
 
by default bound to the synth that was just created Organ-0.
 
283
Track}. Another track appears called Track 1, and its track list Port
 
284
column should show it is bound to the synth that was just created vam-0.
 
285
If it is not, click on the Track 1 Port column to open a drop-down list
 
286
of available devices and choose vam-0.
274
287
\begin{wrapfigure}{r}{0.05\textwidth}
275
288
\includegraphics[width=0.05\textwidth]{pics/arrow_tool}
276
289
%\hrulefill
283
296
not important where or how large the drawn Part is. When you are done double
284
297
click on the drawn part. This will open up the Piano Roll editor. To the
285
298
left of the Piano Roll there are piano keys in a vertical line, try clicking
286
 
on the keys in this virtual keyboard each click should be rewarded with an
287
 
organ sound (maybe of questionable quality, a sound nevertheless)
 
299
on the keys in this virtual keyboard each click should be rewarded with a
 
300
synth sound (maybe of questionable quality, a sound nevertheless) 
288
301
\begin{figure}[htp]
289
 
\centering
290
 
\includegraphics[width=.5\textwidth]{pics/organ_synth}
291
 
\caption{Organ synthesizer}
292
 
\label{fig:organ_synth}
 
302
\centering \includegraphics[width=.5\textwidth]{pics/vam_synth}
 
303
\caption{vam synthesizer}
 
304
\label{fig:vam_synth}
293
305
\end{figure}
294
306
 
295
 
\subsubsection {Missing sound}
 
307
\subsubsection{Missing sound}
296
308
If you got sound from the previous exercise you can carry on to the next,
297
309
or keep reading for further enlightenment in case you come upon trouble
298
 
later on. If there are no sound we need to do some fault hunting. First
299
 
of, click on Arranger window once more and select the Organ-0 track in the
 
310
later on. If there is no sound we need to do some fault hunting. First
 
311
off, click on Arranger window once more and select the vam-0 track in the
300
312
track-pane.
301
 
\begin{figure}[ht]
302
 
\centering
303
 
\includegraphics[width=\screenshotwidth]{pics/main_window_with_midi_editor}
 
313
\begin{figure}[htp]
 
314
\centering \includegraphics[width=\screenshotwidth]
 
315
{pics/main_window_with_midi_editor_vam}
304
316
\caption{Midi editor view}
305
317
\label{fig:Midi editor}
306
318
\end{figure}
313
325
Strip should light up in green to visualize that the Synth is making
314
326
sound, if it is not try to trace back your steps and and see if you did
315
327
anything differently than described.
316
 
Now, if the Meter lights up but there is still no sound we need to to
 
328
Now, if the Meter lights up but there is still no sound we need to
317
329
check the routing between the tracks. Click on the Arranger window again
318
330
and select the Out 1 track, this is the predefined output which MusE by
319
331
default loads at startup, at the bottom of Mixer Strip there are two
321
333
of the track, click on the right one, the output and make sure that it is
322
334
connected to some valid outputs on your system.
323
335
\begin{wrapfigure}{r}{0.25\textwidth}
324
 
\includegraphics[width=0.25\textwidth]{pics/output_routing}
 
336
\includegraphics[width=0.25\textwidth]{pics/output_routing} 
325
337
%\hrulefill
326
338
\end{wrapfigure}
327
339
Click on the outputs to select them, if you did changes here go back and
328
340
try clicking on the Piano Roll keyboard again, hopefully it helped. If there
329
 
 still are problems make sure your system actually can make sound through
 
341
still are problems make sure your system actually can make sound through
330
342
Jack, this is however getting outside the scope of this manual.\\\\
331
343
\textit{This might be the time to bring up the concept of community support.
332
344
Open source software could never be what it is without the support given by
335
347
one of the online forums for MusE or Linux audio in general. See some pointers
336
348
in the Support chapter.}
337
349
 
338
 
\subsubsection {Recording}                                               %TODO: walkthrough of recording midi
 
350
\subsubsection{Recording}                                                %TODO: walkthrough of recording midi
339
351
TBD
340
352
 
341
353
 
342
 
\section {Basic overview}
 
354
\section{Basic overview}
343
355
In this section we will make a step by step walk-through of all the
344
356
different editors, their purpose and what functions they support.
345
357
 
346
358
\subsection{Main/Arranger}
347
359
 
348
 
\label{Main/Arranger}
 
360
\label{Main/Arranger} 
349
361
\begin{figure}[htp]
350
 
\centering
351
 
\includegraphics[width=\screenshotwidth]{pics/main_window_annotated}
 
362
\centering \includegraphics[width=\screenshotwidth]
 
363
{pics/main_window_annotated} 
352
364
\caption{MusE main window}
353
 
\label{fig:Main Window}
 
365
\label{fig:Main Window} 
354
366
\end{figure}
355
367
Above is the main window of MusE, the Arranger, this is what greets you
356
368
when launching MusE. The Arranger consists of two main parts, the Track-pane
359
371
screenshot above shows an empty project. Below is MusE with a song in
360
372
progress, turns out it wasn't a very good song, but for our purposes it
361
373
is fine. In the below screenshot there are a lot of tracks visible in the
362
 
Track-pane, each have an icon which indicate it's type, wave-trace, input,
 
374
Track-pane, each have an icon which indicate it's type, wave-track, input,
363
375
output etcetera, more about that later. In the Arranger canvas a number of
364
376
parts are visible, the ones in yellow are in this composition wave files,
365
377
the multicolored line are different Parts of a drum track.
366
 
\label{Main/Arranger}
 
378
\label{Main/Arranger} 
367
379
\begin{figure}[htp]
368
 
\centering
369
 
\includegraphics[width=\screenshotwidth]{pics/main_window_with_arrangement}
 
380
\centering \includegraphics[width=\screenshotwidth]
 
381
{pics/main_window_with_arrangement} 
370
382
\caption{MusE main window with arrangement}
371
 
\label{fig:Main Window with arrangement}
 
383
\label{fig:Main Window with arrangement} 
372
384
\end{figure}
373
385
 
374
 
\subsection{Mixer}
 
386
\subsection{Mixer} \label{mixer} 
375
387
Choosing \menu{View > Mixer A} or \menu{B} from the menu in the main
376
 
window will bring up the mixer as viewed below. The mixer will with all
377
 
options enabled show channel strips for all tracks in the current setup,
378
 
depending on how far you have gotten this view may become very large,
379
 
at which point it may be a good idea to limit what is viewed in the
380
 
Mixer. From the view menu all the different kinds of tracks can be
381
 
toggled on/off from the mixer. Some may find it a good idea to use the
382
 
two mixers A and B setup with different setup and store this in your
383
 
song template(s), more about this in the Song Template section. It can
384
 
be argued that everything in MusE is a track analogous to the Unix
385
 
idiom that everything is a file.
386
 
The types of tracks viable in the mixer (and track-pane) are:
 
388
window will bring up the mixer as viewed below. The mixer will open with
 
389
all options enabled, showing channel strips for all tracks in the current
 
390
setup, depending on how far you have gotten this view may become very large,
 
391
at which point it may be a good idea to limit what is viewed in the Mixer.
 
392
From the view menu all the different kinds of tracks can be toggled on/off
 
393
from the mixer. Some may find it a good idea to use the two mixers A and B
 
394
setup with different setup and store this in your song template(s), more
 
395
about this in the Song Template section. It can be argued that everything
 
396
in MusE is a track analogous to the Unix idiom that everything is a file.
 
397
The types of tracks visible in the mixer (and track-pane) are:
387
398
\begin{wrapfigure}{r}{0.5\textwidth}
388
 
\includegraphics[width=0.5\textwidth]{pics/mixer}
 
399
\includegraphics[width=0.5\textwidth]{pics/mixer} 
389
400
%\hrulefill
390
401
\end{wrapfigure}
391
 
\begin {itemize}
392
 
\item Audio output
393
 
\item Audio input
394
 
\item Group track
395
 
\item Aux track
396
 
\item Wave track
397
 
\item Synth track
398
 
\item Midi track
 
402
\begin{itemize}
 
403
\item Audio output 
 
404
\item Audio input 
 
405
\item Group track 
 
406
\item Aux track 
 
407
\item Wave track 
 
408
\item Synth track 
 
409
\item Midi track 
399
410
\end{itemize}
400
411
 
401
412
 
402
 
There are also a Midi Track variation called Drum Track, they are 
403
 
however not distinguishable from Midi Tracks in the Mixer. Also the 
404
 
strips for midi tracks are different in the Mixer than in the 
 
413
There is also a Midi Track variation called Drum Track, they are
 
414
however not distinguishable from Midi Tracks in the Mixer. Also the
 
415
strips for midi tracks are different in the Mixer than in the
405
416
Track-pane view.
406
417
 
407
 
 
408
 
\subsection{Tracks}
 
418
\section{Tracks and parts}
409
419
MusE arranges your music in \emph{tracks} and \emph{parts}. The following
410
 
section shall provice you an overview of how things are done with MusE.
 
420
section shall provide you an overview of how things are done with MusE.
411
421
If you are or were a Cubase or Cakewalk user, you will feel familiar with
412
 
this. There are
413
 
MIDI and drum tracks (which are internally MIDI tracks) which can hold
414
 
note data, wave tracks which hold wave data, and several kinds of
415
 
audio tracks, synthesizers etc.
 
422
this. 
 
423
 
 
424
\subsection{Tracks}
 
425
There are two general classes of tracks: MIDI tracks and audio
 
426
tracks. MIDI tracks (and drum tracks which are internally MIDI tracks)
 
427
can hold note data. The Wave track is a type of audio track which holds
 
428
wave data. There are also several other kinds of audio tracks.
416
429
 
417
430
\paragraph{MIDI tracks}
418
431
MIDI and drum tracks hold MIDI event data. They don't differ much,
423
436
They hold audio data which can be just played back or be piped through
424
437
effect plugin chains. They offer automation for these plugins.
425
438
 
426
 
\paragraph{Audio inputs}
 
439
\paragraph{Audio input tracks}
427
440
These provide the path for your audio data from outside into your
428
 
project. Set up the physical audio inputs you want to connect your audio
429
 
in track with, and then route them to some wave tracks.
430
 
 
431
 
                                                                         % TODO: what are audio outs and auxs?
432
 
                                                                         %       someone please write this!
433
 
                                                                         
434
 
\subsection{Parts}
435
 
Tracks are split in parts. These contain MIDI events or wave chunks.
436
 
You can copy, clone them, move them around, delete them etc.
437
 
 
438
 
\subsection{MIDI ports}
439
 
Ports provide an abstraction layer for your MIDI synthesizers (which
440
 
can be both software and hardware synthesizers). Port are numbered.
441
 
In order to produce sound, each MIDI track is assigned to exactly one
442
 
MIDI port, to which the MIDI events are then sent.
443
 
 
444
 
In the configuration menu, you must map the port numbers to the actual
445
 
synth devices (by selecting ALSA or jack midi ports, or synth plugins).
446
 
 
447
 
Try left-clicking on the "Ports" column of some MIDI track. If you
448
 
use a soft synth, right-clicking the Ports column of the synth or any
449
 
track using the synth lets you launch the synthe's GUI.
450
 
 
451
 
\section{Tracks and parts}
452
 
\subsection{Tracks}
 
441
project. Set up the physical audio inputs you want to connect your
 
442
audio input track with, and then route the input tracks to various
 
443
other tracks such as wave tracks.
 
444
 
 
445
\paragraph{Audio output tracks}
 
446
These provide the path for your project's audio data to outside. Set
 
447
up the physical audio outputs you want to connect your audio out track
 
448
with, and then route various other tracks, such as wave tracks, to
 
449
the output tracks.
 
450
 
 
451
\paragraph{Audio group tracks}
 
452
Group tracks are like busses, where you can route other tracks to
 
453
them, then route the groups to other tracks. Since group tracks have
 
454
all the features of other audio tracks, like volume and pan, they
 
455
provide a convenient common routing point where you have control of
 
456
the sound before it is passed to other tracks.
 
457
 
 
458
\paragraph{Audio aux tracks} \label{aux_tracks} 
 
459
These provide a more convenient way to mix several audio tracks
 
460
together. With each audio aux track added, other audio tracks will
 
461
gain a common send knob for adjusting the level sent to the aux
 
462
track. This can be more convenient than using several group tracks.
 
463
 
 
464
\paragraph{Synthesizer tracks}
 
465
This type of track is a software synthesizer which MIDI and drum tracks
 
466
can be assigned to.
 
467
 
453
468
\paragraph{Creation}
454
469
You can create a track by either right-clicking in the arranger's track   % TODO: insert screenshot
455
470
list and then adding the desired track, or via the edit menu.
456
471
 
457
 
\paragraph{Attributes}                                                    % TODO: this should be a list
458
 
Tracks have several attributes.
459
 
\subparagraph{Mute} If you click on the \emph{Mute} field (denoted with
 
472
\paragraph{Attributes}                                                    
 
473
Tracks have several attributes:
 
474
\begin{description}
 
475
\item [{Mute:}] If you click on the \emph{Mute} field (denoted with
460
476
a "M" column header), the track gets muted and stops producing sound.
461
 
\subparagraph{Solo} The solo button ("S" column header) mutes all other   % TODO: soloing chains etc?
462
 
tracks.
463
 
\subparagraph{Record} The R column "arms" your track for recording.
 
477
\item [{Solo:}] \label{track_attr_solo} The solo button ("S" column
 
478
header) singles out a track for listening. It mutes
 
479
some other tracks but may phantom solo others. 
 
480
For more info see the section on soloing: \ref{track_soloing} and
 
481
phantom soloing: \ref{phantom_soloing}
 
482
\item [{Record:}] The R column "arms" your track for recording.
464
483
When you rec-arm your song and have no tracks rec-armed, you won't be
465
484
able to record anything. See also the config option "move rec-arm with    % TODO: reference to rec-arm config option
466
 
selection".
467
 
\subparagraph{Track name} Double-click and you will see.
468
 
\subparagraph{Port} For MIDI tracks, this lets you select the MIDI
 
485
selection". 
 
486
\item [{Track name:}] Double-click to edit the track name.
 
487
\item [{Port:}] For MIDI tracks, this lets you select the MIDI
469
488
port to which the events should be routed. This can be your physical
470
 
synthesizer or a software synthesizer. For soft synthes, this is the
 
489
synthesizer or a software synthesizer. For soft synths, this is the
471
490
port the synth is associated to. For other track types, this is disabled.
472
 
\subparagraph{Channel} For MIDI tracks, this is the MIDI channel the
 
491
\item [{Channel:}] For MIDI tracks, this is the MIDI channel the
473
492
output is sent to. For any kind of audio tracks, this is the number of
474
493
channels (mono, stereo).
475
494
                                                                          % TODO: what's that "T" column?!
476
 
\subparagraph{Automation} For audio tracks, this lets you set up the
477
 
automation display in the arranger. Clicking this will provide you with
478
 
a popup menu with lots of submenus. The submenus let you select the
479
 
color you want to associate with the automation parameter. \emph{Clicking % TODO: this is nonstandard
480
 
on a submenu} will select or unselect it, making the automation parameter % TODO: put reference to automation section
481
 
shown or hidden.
 
495
\item [{Automation:}] \label{track_attr_automation} For audio tracks,
 
496
this lets you set up the automation display in the arranger. 
 
497
(See automation \ref{audio_automation}). Clicking this will provide you
 
498
with a popup menu with lots of submenus. Clicking on a submenu will
 
499
select or unselect it showing or hiding the automation parameter as a 
 
500
graph overlaid on top of the track.\\
 
501
The submenus let you select the color you want to associate with the
 
502
automation parameter. There you can also assign midi controllers to
 
503
the parameters, a dialog is shown where you can manually choose the
 
504
midi controller, with a \emph{learn} button to 'listen for' and
 
505
automatically recognize any midi controller operated by you.
482
506
 
483
 
\subparagraph{Clef} For MIDI tracks, you can specify a clef here. This
 
507
\item [{Clef:}] For MIDI tracks, you can specify a clef here. This
484
508
only affects the score editor.
485
509
 
486
 
\paragraph{The trackinfo side bar}
 
510
\end{description}
 
511
 
 
512
\subsubsection{The trackinfo side bar}
487
513
In the arranger and the part editors, you'll have a trackinfo sidebar
488
514
on the left side. You can set up track-type specific things there.
489
515
 
490
 
\subsubsection{MIDI tracks}
491
 
MIDI parts have no automation settings. However, they support various     % TODO: this will hopefully become wrong soon
492
 
controllers, program changes etc.. The MIDI trackinfo sidebar lets you
493
 
change program, volume, pan and more. Just editing the value in the
494
 
boxes will send an event, but not write it to the track. In order to
495
 
write it, you will need to click on the corresponding button ("Vol" for
496
 
writing down volume information).
497
 
 
498
 
\subsubsection{Drum tracks}
 
516
\paragraph{MIDI trackinfo sidebar} \label{midi_trackinfo_sidebar}
 
517
The MIDI trackinfo sidebar lets you change program, volume, pan and
 
518
more. This sidebar can also be viewed at the left of the pianoroll
 
519
editor.                                                                        %%FIXME Ref to pianoroll
 
520
\subparagraph{Drum tracks:}
499
521
These are MIDI tracks as well, but with a few differences. They allow
500
522
you to map certain drum sounds with different input notes, and you
501
523
can change the output settings of a certain "drum instrument" without
508
530
for the used channel and more. These limitations will be addressed in
509
531
MusE 2.1, which offers a new concept of drum tracks.
510
532
 
511
 
\subsubsection{Audio tracks}
512
 
\paragraph{Effect rack}
513
 
On the top of the sidebar, there is an effect rack which allows you to
514
 
apply various plugins on the audio. For more information on this, refer
515
 
to \ref{plugins}.
516
 
 
517
 
\paragraph{Controls}
518
 
Lorem ipsum % TODO FINDMICH HIER WEITER
 
533
\subparagraph{MIDI trackinfo controls:}
 
534
\begin{description}
 
535
\item [{Output port:}] This drop-down list selects the midi port
 
536
to send midi output from this track. 
 
537
\item [{Output channel:}] This box selects the midi channel to be
 
538
used on the output port.
 
539
\item [{Input and output routing:}] Selects midi ports and
 
540
channels to receive midi from, and soloing paths. (See Routes
 
541
\ref{routes}).
 
542
\item [{Midi through:}] This button selects whether midi input is
 
543
passed through to the selected output port.\\
 
544
Depending on your midi devices and settings, there are cases when
 
545
this should be off such as using the same port and channel for
 
546
input and output (otherwise a double-note \emph{echo} will be heard),
 
547
and cases when it must be on such as when using a synthesizer track
 
548
as output device. 
 
549
\item [{Input detect indicator:}] Blinks when midi activity is
 
550
detected on the selected midi channels on the selected midi input
 
551
ports.
 
552
\item [{Transpose:}] This transposes midi input notes up or down
 
553
in pitch. This is very useful if your midi keyboard hasn't enough
 
554
keys or the selected output device plays an octave too low or high,
 
555
and you would like to shift the octave of the incoming notes to
 
556
compensate.
 
557
\item [{Delay:}] Adjusts the delay of the notes.                               %% FIXME What is this again? Does it work?
 
558
\item [{Length:}] Adjusts the length of the notes.                             %% FIXME What is this again? Does it work?
 
559
\item [{Velocity:}] Adjusts the velocity of incoming notes.
 
560
Use it to compensate for a too-loud or too-soft keyboard.
 
561
\item [{Compression:}] Adjusts the compression of incoming note
 
562
velocities. Use it to make soft incoming notes louder, and loud
 
563
notes not so loud. 
 
564
\item [{Instrument:}] Selects the midi instrument patch to be used
 
565
by the selected output port. This is equivalent of dialing the patch
 
566
in the bank and program boxes, except it displays a more friendly
 
567
patch \emph{name} as defined by the selected output port's midi
 
568
instrument. See instruments, or port configuration                             %% FIXME Ref to instruments. 
 
569
\ref{midi_port_config}
 
570
\item [{H-Bank:}] Selects the high bank number of the current patch.
 
571
\item [{L-Bank:}] Selects the low bank number of the current patch.
 
572
\item [{Prog:}] Selects the program number of the current patch.
 
573
\item [{Volume:}] Adjusts the midi volume controller.
 
574
\item [{Pan:}] Adjusts the midi pan controller.
 
575
\end{description}
 
576
The buttons beside the Prog, Volume, and Pan boxes store the value,
 
577
at the current transport position, for midi automation. (See
 
578
automation \ref{midi_automation}).
 
579
 
 
580
Note that the 'Prog' button stores H-Bank and L-Bank along with
 
581
'Prog' value, so there are no H-Bank and L-Bank buttons.
 
582
 
 
583
The 'All' button simply stores all three Program (and banks), Volume,
 
584
and Pan values at once.
 
585
 
 
586
\emph{Tip:} If the Song Type is GM, GS, or XG, you may need to store           %% FIXME Ref to song type
 
587
desired values at transport position zero, otherwise your adjustments
 
588
may be overriden by the instrument when the transport is moved back
 
589
to position zero. If this behaviour is undesired, you can set the 
 
590
Song Type to 'NO' meaning no song type.                                        %% FIXME Ref to explanation of instruments and default controller values
 
591
 
 
592
\paragraph{Audio trackinfo sidebar}
 
593
Unlike the midi trackinfo sidebar, the audio trackinfo side bar
 
594
is nothing more than an embedded audio mixer strip, the exact same 
 
595
strip as found in the mixers. (See mixer \ref{mixer}).
 
596
\subparagraph{Effects rack:}
 
597
On the top of the audio trackinfo sidebar, there is an effects rack
 
598
which allows you to apply various plugins on the audio. For more
 
599
information on this, refer to \ref{effects_rack}.
519
600
 
520
601
 
521
602
\subsection{Parts}
537
618
while holding down the \key{CTRL} key.
538
619
 
539
620
 
540
 
 
541
 
\section{Plugins and automation} \label{plugins}
542
 
There are several kinds of plugins. First, there are audio plugins, which
543
 
can be applied to any track handling audio (that is, inputs, outputs,
544
 
wave tracks, synth tracks). Plugins can be added by double-clicking
545
 
on an entry in the effect rack in the track info pane (which is shown
546
 
at the left side of the arranger when the according track is selected).
547
 
Right-clicking them offers a self-explanatory popup menu.
 
621
\section{Routes} \label{routes}
 
622
Routes are how tracks are connected together and to the outside world.
 
623
(They are also how Jack midi ports connect to the outside world. See
 
624
midi port configuration \ref{midi_port_config}).
 
625
Each track strip has two buttons whose icons look like plugs. One button
 
626
is for input routing and the other is for output routing. Clicking on
 
627
these buttons will pop up a menu of available input or output routes that
 
628
you can connect to. Most audio tracks list other tracks to connect to, 
 
629
but audio input and output tracks are special: Audio input track input
 
630
routing menus list available Jack audio input ports. Conversely audio
 
631
output track output routing menus list available Jack audio output ports.
 
632
 
 
633
\begin{wrapfigure}{r}{0.25\textwidth}
 
634
\includegraphics[width=0.25\textwidth]{pics/output_routing} 
 
635
%\hrulefill
 
636
\end{wrapfigure}
 
637
 
 
638
Meanwhile MIDI and drum tracks allow you to route available MIDI ports
 
639
and channels to the track using a handy popup matrix.
 
640
 
 
641
\begin{wrapfigure}{r}{0.25\textwidth}
 
642
\includegraphics[width=0.25\textwidth]{pics/midi_routing_matrix} 
 
643
%\hrulefill
 
644
\end{wrapfigure}
 
645
 
 
646
 
 
647
\subsection{Anti circular routing} \label{anti_circular_routing}
 
648
Any routing menu item which would cause a circular routing condition
 
649
is grayed out. Find out why the condition would exist by examining 
 
650
routing paths involved and correct the situation if required.
 
651
 
 
652
Also, you cannot use a track's aux sends if the track has an input
 
653
route path from ANY Aux Track. (See aux tracks \ref{aux_tracks}).
 
654
Aux send knobs and labels are disabled in that case.
 
655
 
 
656
\subsection{Soloing chain routes} \label{soloing_chain_routes}
 
657
Soloing chains (see solo chains \ref{soloing_chains}) are really just
 
658
routes like any other. The available solo chaining paths are displayed
 
659
in the routing popup menus.
 
660
 
 
661
\section{Track soloing} \label{track_soloing}
 
662
Soloing allows you to single out a track for listening while muting others,
 
663
without you having to mute the other tracks. (See soloing track attribute
 
664
\ref{track_attr_solo}).
 
665
 
 
666
\subsection{Phantom soloing} \label{phantom_soloing}
 
667
In order to solo a track and mute others so that it is heard, MusE
 
668
employs 'phantom' soloing: When a track is soloed, MusE automatically
 
669
solos all tracks routed to and from this track. (See routes
 
670
\ref{routes}). A phantom soloed track is indicated by a black square
 
671
in the track pane solo column. (See track attributes
 
672
\ref{track_attr_solo}).
 
673
 
 
674
 
 
675
\begin{figure}[htp]
 
676
\centering \includegraphics[width=\screenshotwidth]{pics/soloing_window}
 
677
\caption{Soloing, with phantom soloing}
 
678
\label{fig:Soloing} 
 
679
\end{figure}
 
680
 
 
681
\subsection{Soloing chains} \label{soloing_chains}
 
682
When an audio output track sends audio to some external entity, such
 
683
as an external running application, and audio from the external entity
 
684
is fed back into a MusE audio input track, solo chains allow you to
 
685
solo the input or output, and MusE will complete the path automatically
 
686
soloing the other, and all paths that came before or after it.
 
687
 
 
688
Solo chains also work with MIDI tracks chained to audio inputs:
 
689
When a MIDI track drives some MIDI device whose audio is fed into MusE,
 
690
solo chains allow the entire chain to be soloed.
 
691
 
 
692
Solo chains are accessed via routing menus. (See solo chain routes
 
693
\ref{soloing_chain_routes}).
 
694
 
 
695
\section{Plugins} \label{plugins}
 
696
Plugins are small add-ons which can process a track's data.
 
697
 
 
698
MIDI plugins operate on midi and drum tracks, and are found in
 
699
the \menu{Midi} menu.
 
700
 
 
701
Audio plugins can be applied to any track handling audio (that is,
 
702
inputs, outputs, wave tracks, synth tracks). The effects rack
 
703
section describes this. (See effects rack \ref{effects_rack}).
 
704
 
 
705
\subsection{The audio effects rack} \label{effects_rack}
 
706
All audio track types (Input, Output, Group, Wave, Synth, and Aux) have
 
707
an effects rack into which audio plugins can be inserted in a chain.
 
708
Currently each rack can accomodate up to four plugins.
 
709
 
 
710
MusE currently supports LADSPA plugins and DSSI synth and effects
 
711
plugins.
 
712
 
 
713
Plugins can be added by double-clicking on an entry in the effect rack
 
714
in the track info pane (which is shown at the left side of the arranger
 
715
when the according track is selected). Right-clicking the rack items
 
716
offers a self-explanatory popup menu.
 
717
 
 
718
All plugin controls can be automated. (See audio automation
 
719
\ref{audio_automation}).
 
720
 
 
721
One must carefully consider how many audio inputs and outputs a plugin
 
722
has, and how may channels the particular audio track has (1 mono or
 
723
2 stereo), and how MusE uses the plugins in the rack.
 
724
 
 
725
Learn more about this in the appendix Understanding the Effects Rack:
 
726
\ref{apx_effects_rack}
 
727
 
 
728
\subsubsection{Audio plugin Graphical User Interfaces (GUIs)} 
 
729
\label{plugin_guis} Once a plugin is added, you need a way to 
 
730
manipulate its controls, which affect its behaviour and operate
 
731
on the sound.
 
732
 
 
733
MusE can show a generic GUI which contains all of the
 
734
plugin's controls arranged in a rather plain generic fashion.
 
735
 
 
736
Some plugins may also have a native GUI which looks much better (it
 
737
was specifically designed for the plugin).
 
738
 
 
739
Both GUI types are opened from the effects rack right-click popup menu.
 
740
 
 
741
\section{Automation} \label{automation}
 
742
Automation is the ability to record (or construct) and playback
 
743
exact sequences of control movements.
 
744
 
 
745
MIDI and audio automation are each currently uniquely different,
 
746
but share some similarities.
 
747
 
 
748
\subsection{Audio automation} \label{audio_automation}
 
749
Almost all graphical audio controls in MusE can be automated.
 
750
 
 
751
This includes an audio track's volume and pan, and the controls
 
752
of any plugins in the effects rack, and if the track is a
 
753
synthesizer track, all of the synth's controls.
 
754
 
 
755
Each control has a manual adjustment value. This value is shown
 
756
when there is no automation data at all, or automation has been
 
757
disabled.
 
758
 
 
759
For plugin and synth controls, it is usually more desirable to
 
760
manipulate automation with the generic plugin GUIs, because
 
761
MusE has full control over their behaviour. (See plugin GUIs
 
762
\ref{plugin_guis}).
 
763
 
 
764
There are a few ways to enter audio automation data:
 
765
\begin{itemize}
 
766
\item By adjusting audio controls while the transport is rolling.
 
767
MusE will record the exact movements.
 
768
\item By adjusting audio controls while the transport is stopped,
 
769
at different transport positions. TOUCH mode allows this.
 
770
\item By right-clicking any audio control and choosing an operation
 
771
from the automation popup menu. This includes storing, erasing,
 
772
and clearing automation events, and seeking the next or previous
 
773
event.
 
774
\item By drawing the data on the audio track's automation graphs.
 
775
(See track automation \ref{track_attr_automation}).
 
776
\end{itemize}
 
777
\paragraph{Audio automation modes} 
 
778
Each audio track strip has an automation mode button
 
779
at the bottom. There are four automation modes:
 
780
\begin{description}
 
781
\item [{OFF:}] Disables all automation, uses manual value always.
 
782
\item [{READ:}] Automation data is applied to controls. If any
 
783
automation data exists, the manual value is overridden and has
 
784
no effect.
 
785
\item [{TOUCH:}] Allows you to alter a control at any time, while
 
786
transport is stopped or rolling, If rolling, when the control is
 
787
released it returns to reading from automation data. 
 
788
\item [{WRITE:}] Allows to adjust an initial value before rolling
 
789
the transport. While rolling, when the control is released it does
 
790
not return to reading from automation data. 
 
791
\end{description}
 
792
Here is a screenshot of automation WRITE mode, and some automation
 
793
data, with the track pane automation popup menu showing (see track
 
794
automation \ref{track_attr_automation}):
 
795
\begin{figure}[htp]
 
796
\centering \includegraphics[width=\screenshotwidth]
 
797
{pics/main_window_with_automation}
 
798
\caption{Audio automation graphs}
 
799
\label{fig:audio_automation} 
 
800
\end{figure}
 
801
 
 
802
\label{midi_automation} \subsection{Midi automation} 
 
803
MIDI automation is a slightly different concept: Unlike audio
 
804
automation, currently there is no automation 'mode' and it doesn't
 
805
record graphical control movements. Data is viewed from within
 
806
the pianoroll and drum editors, by clicking on the 'Ctrl' button               %% FIXME Ref to pianoroll
 
807
on those canvases.
 
808
                                       
 
809
Similar to audio controls, each midi control has a manual adjustment
 
810
value. This value is overridden when there is midi automation data.
 
811
 
 
812
There are a few ways to enter MIDI automation data:
 
813
\begin{itemize}
 
814
\item By adjusting external MIDI controls (such as a midi keyboard
 
815
pitch or modulation wheel) while the transport is rolling and both
 
816
the transport and midi track are in record mode. MusE will record
 
817
the exact movements. As mentioned earlier, note that graphical control
 
818
movements are not recorded.                                                    %% FIXME Feature requests for true midi automation
 
819
\item By right-clicking any midi control and choosing an operation
 
820
from the automation popup menu. This includes storing and erasing
 
821
automation events.                                                             %% FIXME Store/erase not enough functionality
 
822
\item By adjusting volume, pan, bank or program boxes in the midi
 
823
trackinfo panel and clicking the corresponding volume, pan, or 
 
824
program buttons. (See midi trackinfo \ref{midi_trackinfo_sidebar}).
 
825
\item By drawing the data on a midi part's automation graphs.
 
826
\end{itemize}
 
827
Here is a screen shot of a midi track, containing a midi part
 
828
which has been opened with the pianoroll editor and automation                 %% FIXME Ref to pianoroll
 
829
data showing.
 
830
                                                         
 
831
The 'Ctrl' popup menu (bottom left) shows available midi controllers
 
832
and the green dot indicates there is some data.
 
833
 
 
834
\begin{figure}[htp]
 
835
\centering \includegraphics[width=\screenshotwidth]
 
836
{pics/main_window_with_midi_automation}
 
837
\caption{MIDI automation graphs}
 
838
\label{fig:midi_automation} 
 
839
\end{figure}
 
840
 
548
841
 
549
842
\section{Configuration}
 
843
 
 
844
\subsection{MIDI ports} 
 
845
MIDI ports provide an abstraction layer for your MIDI hardware and
 
846
synthesizers (which can be both software and hardware synthesizers),
 
847
and other MIDI applications. Port are numbered. In order to produce
 
848
sound, each MIDI track is assigned to exactly one MIDI port, to which
 
849
the MIDI events are then sent.
 
850
 
 
851
The advantage of this abstraction layer is that if your system changes,
 
852
for example you change MIDI hardware, then you need only modify the
 
853
ports instead of all the tracks using those ports. This is similar
 
854
to the audio input and output track abstraction to the outside world.
 
855
 
 
856
\label{midi_port_config} \paragraph{MIDI port configuration} 
 
857
In the midi/softsynth configuration menu, you must map the port numbers
 
858
to the actual devices (by selecting ALSA or jack midi ports, or synth
 
859
plugins).
 
860
 
 
861
Try left-clicking on the "Ports" column of some MIDI track.
 
862
If you use a soft synth, right-clicking the Ports column of the synth
 
863
or any track using the synth lets you launch the synth's GUI.
 
864
 
 
865
\begin{figure}[htp]
 
866
\centering \includegraphics[width=\screenshotwidth]
 
867
{pics/midi_config_window} 
 
868
\caption{Midi configuration window}
 
869
\label{fig:midi_config_window} 
 
870
\end{figure}
 
871
 
 
872
\paragraph{Columns in the MIDI configuration ports list:}
 
873
\begin{description}
 
874
\item [{GUI:}] For synthesizer devices, indicates if a gui is available
 
875
and if it is showing. Click to show.
 
876
\item [{I:}] If present, the port can accept MIDI input. Click to
 
877
enable or disable it.
 
878
\item [{O:}] If present, the port can send MIDI output. Click to enable
 
879
or disable it.
 
880
\item [{Instrument:}] Selects the instrument to be used when MIDI is
 
881
played through the port.
 
882
\item [{Device name:}] Selects or creates a MIDI device assigned to the
 
883
port. These can be Jack MIDI devices or ALSA MIDI devices (if ALSA is
 
884
enabled), or soft synthesizers. Jack MIDI devices are created by selecting
 
885
Create Jack Device from the Device name drop-down menu. Jack MIDI devices
 
886
can be renamed as you wish by clicking the device name. Soft synthesizers
 
887
are created by clicking in the soft synthesizer list and then Add
 
888
Instance. Or you can simply create a new synthesizer track from the
 
889
arranger track list, or even the mixer menus.
 
890
\item [{In and Out routes:}] These are for Jack MIDI devices, they are
 
891
the routes to and from available Jack MIDI ports. Jack may provide
 
892
different alias names for these ports, you can select which alias
 
893
is shown.
 
894
\item [{Default in channels:}] Auto-connect these port channels to
 
895
new midi or drum tracks.
 
896
\item [{Default out channel:}] Auto-connect new midi or drum tracks
 
897
to this channel on the port.
 
898
\item [{State:}] Indicates the state of the port including any errors
 
899
opening it.
 
900
\end{description}
 
901
 
 
902
\subsection{Global settings}
 
903
\subsubsection{Audio settings}
550
904
\paragraph{Minimum control period}
551
 
Plugins can usually process an arbitrarily small (or large) amount of
552
 
samples. If some plugin control value changes continously, to provide
 
905
Plugins can usually process an arbitrarily small (or large) amount
 
906
of samples. If some plugin control value changes continously, to provide
553
907
ideal listening experience, MusE would need to call the plugin 44100
554
908
times a second, asking for one single value at a time. With the minimum
555
909
control period setting, the user can force MusE to ask the plugin for
556
910
at least N values. Setting this value to 64 would in this situation
557
 
make MusE call the plugin $689 = \frac{44100}{64})$ times a second,
 
911
make MusE call the plugin $689=\frac{44100}{64})$ times a second,
558
912
asking for 64 values at a time. While doing this will reduce accuracy
559
913
of control changes, it may also reduce CPU usage, because calling
560
914
the plugin more often, requesting smaller chunks, is more expensive
564
918
downmix of your project, set this to a low value. If you're experiencing
565
919
performance problems, increasing this value might help.
566
920
 
567
 
 
568
 
 
569
 
 
570
 
 
 
921
\chapter{Appendix}
 
922
\label{apx_effects_rack} \section{Understanding the effects rack} 
 
923
One must carefully consider how many audio inputs and outputs a plugin
 
924
has, and how may channels the particular audio track has (1 mono or
 
925
2 stereo), and how MusE uses the plugins in the rack.
 
926
 
 
927
MusE will try to internally create as many independent copies
 
928
(instances) of a plugin as necessary, to satisfy the number of channels
 
929
in the audio track.
 
930
Basically it divides the number of track channels by the number of 
 
931
plugin audio inputs or outputs to determine how many copies to make.
 
932
First it examines the number of plugin audio outputs, and if there are
 
933
none, it will examine the number of audio inputs, and if there are
 
934
none, it will simply use just one plugin copy.
 
935
 
 
936
For mono tracks with plugins having more than one audio input or
 
937
output, MusE uses the first input or output and ignores the rest. 
 
938
 
 
939
For stereo tracks:
 
940
 
 
941
\begin{tabular}{|c|c|c|c|c|}
 
942
\hline 
 
943
plugin inputs & outputs & copies & track in route channels &
 
944
track out route channels\tabularnewline
 
945
\hline 
 
946
\hline 
 
947
0 & 0 & 1 & 0 & 0\tabularnewline
 
948
\hline 
 
949
0 & 1 & 2 & 0 & 2\tabularnewline
 
950
\hline 
 
951
0 & >=2 & 1 & 0 & 2\tabularnewline
 
952
\hline 
 
953
1 & 0 & 2 & 2 & 0\tabularnewline
 
954
\hline 
 
955
1 & 1 & 2 & 2 & 2\tabularnewline
 
956
\hline 
 
957
1 & >=2 & 1 & 1 (L only) & 2\tabularnewline
 
958
\hline 
 
959
>=2 & 0 & 1 & 2 & 0\tabularnewline
 
960
\hline 
 
961
>=2 & 1 & 2 & 2 & 2\tabularnewline
 
962
\hline 
 
963
>=2 & >=2 & 1 & 2 & 2\tabularnewline
 
964
\hline 
 
965
\end{tabular}
 
966
 
 
967
Notice that on a stereo track with a plugin having one audio input and
 
968
two audio outputs, only the first track input route channel is used
 
969
(left only).
 
970
 
 
971
These same rules apply to inter-plugin audio when more than one plugin 
 
972
is in the rack chain. Extra audio outputs of one plugin may be ignored
 
973
by the next plugin if not used. 
 
974
 
 
975
Currently specialized plugins with many inputs and/or outputs are not 
 
976
really useful in MusE.
 
977
 
 
978
Nor are so-called 'realtime' control plugins which use audio inputs 
 
979
and outputs for control signals. 
 
980
 
 
981
Loud noise alert! Beware of using such plugins in an audio effects
 
982
rack. 
 
983
 
 
984
Example: Consider a stereo Audio Input track with these effect rack 
 
985
 LADSPA plugins: 
 
986
 
 
987
\begin{itemize}
 
988
\item comb\_splitter Comb Splitter by Steve Harris
 
989
\item tap\_stereo\_echo Tap Stereo Echo by Tom Szilagyi
 
990
\end{itemize}
 
991
    
 
992
 
 
993
The Comb Splitter has one audio input and two audio outputs. 
 
994
The Stereo Echo has two audio inputs and two audio outputs.
 
995
  
 
996
The stereo Audio Input track will therefore ignore its second
 
997
input route connection. It will process the left input only,
 
998
separating it into stereo with the Comb Splitter, passing the  
 
999
split stereo signal into the Stereo Echo, finally producing 
 
1000
stereo output available at the Audio Input track's output routes.      
 
1001
  
 
1002
  
 
1003
One improvement would be not creating unused redundant plugin copies
 
1004
between plugins in stereo tracks.
 
1005
For example, for a plugin having one audio input and one audio output,
 
1006
feeding a plugin having one audio input and two audio outputs,  
 
1007
the extra copy of the first plugin is redundant and not required,
 
1008
but currently it is created anyway.
 
1009
  
571
1010
 
572
1011
\chapter{Internals -- how it works}
573
1012
This chapter explains how MusE is built internally, and is meant
574
1013
to be an aid for developers wanting to quickly start up with MusE.
575
1014
For details on \emph{why} stuff is done please refer to the following
576
 
chapter.
 
1015
chapter. 
577
1016
\section{User controls and automation}
578
1017
\subsection{Handling user input}
579
1018
\subsubsection{Plugins and synthesizers}
601
1040
(depending on whether the song is stopped or played).
602
1041
 
603
1042
The \sym{AudioTrack::{\_}recEvents} list consists of \sym{CtrlRecVal}
604
 
items (see \file{ctrl.h}), which hold the following data:
 
1043
items (see \file{ctrl.h}), which hold the following data: 
605
1044
\begin{itemize}
606
 
\item the frame where the change occurred
607
 
\item the value
 
1045
\item the frame where the change occurred 
 
1046
\item the value 
608
1047
\item the type, which can be \usym{ARVT{\_}START}, \usym{ARVT{\_}VAL} or \usym{ARVT{\_}STOP}.
609
1048
      \usym{ARVT{\_}VAL} are written by every \usym{AudioTrack::recordAutomation}
610
1049
      call, \usym{ARVT{\_}START} and \usym{ARVT{\_}STOP} are generated by
611
 
      \sym{AudioTrack::startAutoRecord} and \sym{stopAutoRecord},
612
 
      respectively.
 
1050
      \sym{AudioTrack::startAutoRecord} and \sym{stopAutoRecord}, respectively.
613
1051
\item and the id of the controller which is affected
614
1052
\end{itemize}
615
1053
It is processed when the song is stopped. The call path for this is:
628
1066
that is, a list of \sym{CtrlList}s, that is, a list of lists of
629
1067
controller-objects which hold the control points of the automation graph.
630
1068
The \sym{CtrlList} also stores whether the list is meant discrete
631
 
(a new control point results in a value-jump) or continous (a new control
 
1069
(a new control point results in a value-jump) or continuous (a new control
632
1070
point results in the value slowly sloping to the new value).
633
1071
Furthermore, it stores a \sym{{\_}curVal} (accessed by \sym{curVal()}),
634
1072
which holds the currently active value, which can be different from the
651
1089
\end{itemize}
652
1090
 
653
1091
Whenever a \sym{CtrlList} has been manipulated,
654
 
\sym{MusEGlobal::song->controllerChange(Track*)} shall be called,
655
 
which emits the \sym{MusEGlobal::song->controllerChanged(Track*)}
 
1092
\sym{MusEGlobal::song->controllerChange(Track{*})} shall be called,
 
1093
which emits the \sym{MusEGlobal::song->controllerChanged(Track{*})}
656
1094
signal in order to inform any parts of MusE about the change (currently,
657
1095
only the arranger's part canvas utilizes this).
658
1096
 
683
1121
default GUIs and \sym{PluginI::guiParamPressed},
684
1122
\sym{guiParamReleased}, \sym{guiSliderPressed} and
685
1123
\sym{guiSliderReleased} for MusE GUIs read from a UI file;
686
 
\sym{guiSlider*} obviously handle sliders, while \sym{guiParam*}
 
1124
\sym{guiSlider{*}} obviously handle sliders, while \sym{guiParam{*}}
687
1125
handle everything else which is not a slider. They call
688
1126
\sym{PluginI::enableController} to enable/disable it.
689
1127
 
699
1137
\item For seek: \sym{Audio::seek} sends a message ("\sym{G}") to
700
1138
                \sym{Song::seqSignal} which calls
701
1139
                \sym{Song::clearRecAutomation} which calls
702
 
                \sym{PluginI::enableAllControllers}                
 
1140
                \sym{PluginI::enableAllControllers}
703
1141
\end{itemize}
704
1142
 
705
1143
 
782
1220
Once the user changes any parameter (automation data or plugins for
783
1221
wave tracks, MIDI events or effect plugin stuff for MIDI tracks),
784
1222
then MusE shall generate the sound for this particular track in the
785
 
"old" way (send MIDI data to synthes, or pipe audio data through plugins).
 
1223
"old" way (send MIDI data to synthes, or pipe audio data through plugins). 
786
1224
(So that the user will not even notice that MusE actually pre-renderered
787
1225
stuff.) Either MusE automatically records this while playback (if possible)
788
1226
or prompts the user to accordingly set up his cabling and then record
841
1279
for every plugin in the plugin rack (recording the actual track is
842
1280
useless because it would be a plain copy).
843
1281
Create a MIDI track, MusE will ask you on which physical audio input
844
 
your synth is connected. Setting up multiple synthes on one physical 
 
1282
your synth is connected. Setting up multiple synthes on one physical
845
1283
audio in is allowed, see below.
846
1284
 
847
1285
\paragraph{Pre-rendering stuff}
894
1332
\section{Slotted editors}
895
1333
Currently, MusE has the pianoroll editor, drum editor, score editor,
896
1334
then the controller editor which is inside the pianoroll/drum editor.
897
 
All these editors have a very similar concept: the "time axis" is
898
 
vertical and (almost) linear, they handle parts, and events are
 
1335
All these editors have a very similar concept: the "time axis" is 
 
1336
vertical and (almost) linear, they handle parts, and events are 
899
1337
manipulated similarly.
900
1338
 
901
1339
A unified editor shall be created which allows you to combine different
911
1349
\item A time-scrollbar with zoom
912
1350
\end{itemize}
913
1351
 
914
 
Each slot contains the following:
 
1352
Each slot contains the following: 
915
1353
\begin{itemize}
916
1354
\item A menu button, button box or control panel for setting up this
917
1355
      particular slot. This could contain "note head colors", "show
995
1433
 
996
1434
% bug in arranger/pcanvas/automation: if a controlpoint is directly on
997
1435
% a line of another ctrl graph, you can't click it
 
1436