Linux goes Tonstudio
Multitracker im Eigenbau mit Linux
Fazit
Es funktioniert, theoretisch. Ob sich das Geld für einen Multitracker wirklich sparen lässt, indem man sich einen eigenen mit Linux und ein paar Sound-Karten zusammenbaut, muss jeder für sich entscheiden. Soviel steht aber fest, wir werden es in jedem Fall in der Praxis testen.
Es wäre toll, wenn all diejenigen, die aufgrund dieses Artikels ebenfalls mit dem Experimentieren anfangen, mit mir Ihre Erfahrungen austauschen würden. Meine Mail-Adresse lautet: mailto:hagen@gutefrage.de
Von ecasound unterstützte Dateiformate
- .wav (Wave)
- .ewf (8/16/24/32bit unkomprimierte Ecasound Wave Files)
- .raw (Raw/Audiodateien ohne Dateikopf)
- .cdr (CDDA Format, welches auf Audio-CDs verwendet wird.)
- .mp3 (MPEG 1.0/2.0, Wiedergabe benötigt
mpg123[http://10], Aufnahmelame[http://10]) - XM, IT, S3M, MOD, MTM, 669, STM, ULT, FAR, MED, AMF, DSM, IMF, GDM, STX (Modulformate, benötigen
MikMod[http://10]) - .aiff (AIFF, benötigt
libaudiofile[http://11]) - .au, .snd (Sun/NeXT Audioformate benötigen
libaudiofile[http://11])
Tabelle 1: ecasound-Parameter
| -c | starte im interaktivem Modus |
-d debug_level
|
Debug-Informationen anzeigen |
| -q | "quiet mode", keine Textausgabe |
| --help | Hilfe anzeigen |
| --version | Versions-Informationen anzeigen |
-s[:]Datei
|
Kanalkonfiguration aus der Datei laden
|
-b:Puffergröße
|
Puffergröße (Angabe in samples) |
-m:mixmode
|
mixmode |
-n:Name
|
Kanalkonfiguration benennen |
| -r | Laufzeitpriorität erhöhen |
-sr:Abtastrate
|
Interne Abtastrate setzen |
| -x | Wiedergabe abbrechen |
-z:Eigenschaft
|
Eigenschaft zulassen
|
-t:Sekunden
|
Bearbeitungszeit in Sekunden
|
| -tl | Wiedergabe als Schleife zulassen |
-a:Name1, Name2, …
|
auswählen/erzeugen von Kanälen ('all' ist reserviert) |
-f:Type,Kanäle,Abtastrate default
|
Dateiformat (für alle folgenden Eingabe- bzw. Ausgabedateien) |
-i[:]Eingabe-Dateiname
|
Weist den aktiven Kanälen eine neue Eingabedatei zu
|
-o[:]Ausgabe-Dateiname
|
Weist den aktiven Kanälen eine neue Ausgabedatei zu
|
-y:Sekunden
|
Startpostition festlegen |
-pf:preset.eep
|
übernimmt die erste Einstellung von "preset.eep" |
-pn:preset_name
|
übernimmt alle Einstellungen von "preset_name" |
-ea:Verstärkungsfaktor-%
|
verstärkt das Signal um den angegebenen Faktor (Angabe in Prozent) |
-eac:Verstärkungsfaktor-%, Kanal
|
verstärkt den angegebenen Kanal (Angabe in Prozent) |
-eaw:Verstärkungsfaktor-%, Pegelgrenze
|
verstärkt das entsprechende Signal und gibt eine Warnung aus, wenn die Pegelgrenze überschritten wird) |
-ec:Kompressionsrate, Grenzwert
|
Kompressor |
-eca:speak-level-%, release-time-sec, fast-crate, crate
|
erweiterter Kompressor |
-enm:threshold-level-%, pre-hold-time-msec, attack-time-msec, post-hold-time-msec, release-time-msec
|
noise gate |
-ef1:center_freq, width
|
resonanter Bandpass-Filter |
-ef3:cutoff_freq, reso, gain
|
resonanter Lowpass-Filter |
-ef4:cutoff, resonance
|
resonanter Lowpass-Filter zweiter Ordnung (24dB) |
-efa:delay-samples, feedback-%
|
Allpass-Filter |
-efb:center-freq, width
|
Bandpassfilter |
-efh:cutoff-freq
|
highpass filter |
-efi:delay-samples, radius
|
inverser Comb-Filter |
-efl:cutoff-freq
|
lowpass filter |
-efr:center-freq, width
|
Bandreject-Filter |
-efs:center-freq, width
|
Resonator-Filter |
-ei:spitch-shift-%
|
pitch shifter |
| -el:name,params | LADSPA-plugin |
| -eli:id_number,params LADSPA-plugin | (eindeutiger Identifikator) |
-erc:from-channel, to-channel
|
Kanal kopieren |
-erm:to-channel
|
Alle Kanäle in eine Datei "runtermischen" |
-epp:right-%
|
normal pan |
-etc:delay-time-msec, variance-time-samples, feedback-%, lfo-freq
|
chorus |
-etd:delay-time-msec, surround-mode, number-of-delays, mix-%
|
advanced reverb |
-ete:room_size, feedback-%, wet-%
|
delay |
-etm:delay-time-msec, number-of-delays, mix-%
|
multitap delay |
-etf:delay-time-msec
|
fake stereo |
-etl:delay-time-msec, variance-time-samples, feedback-%, lfo-freq
|
flanger |
-etp:delay-time-msec, variance-time-samples, feedback-%,lfo-freq
|
phaser |
-etr:delay-time, surround-mode, feedback-%
|
reverb |
| -ev | analyze/maximize volume |
| -ezf | find optimal value for DC-fix |
-ezx:left-dc-fix-value, right-dc-fix-value
|
adjust DC |
-gc:start-time, len
|
time crop gate |
-ge:open-threshold-%, close-thold-%, volume-mode
|
threshold gate |
-kos:fx-param, start-value, end-value, freq, i-phase
|
sine-oscillator |
-kf:fx-param, start-value, end-value, freq, genosc-number
|
file envelope (generic oscillator) |
-kl:fx-param, start-value, end-value, time-seconds
|
linear envelope (fade-in and fade-out) |
-kl2:fx-param, start-value, end-value, 1st-stage-length-sec,2nd-stage-length-sec
|
two-stage linear envelope |
-km:fx-param, start-value, end-value, controller, channel
|
MIDI-controlled envelope |
| -kx | use last specified controller as controller target |
Tabelle 2: ecasound-Befehle im interaktiven Modus
| Befehl | Kurzform | Bedeutung |
|---|---|---|
| q | ecasound beenden | |
| start | t | Verarbeitung starten |
| stop | s | Verarbeitung anhalten |
rewind Sekunden
|
rw Sekunden
|
Zurückspulen |
forward Sekunden
|
fw Sekunden
|
Vorspulen |
setpos Sekunden
|
Springt zur angegebenen Stelle (vom Beginn gerechnet | |
| status | st, u | Allgemeine Informationen |
| cs-status | Statusanzeige der Kanalbelegung | |
| c-status | cstatus, cs, a | Statusanzeige der Kanäle |
| cop-status | estatus, es, x | Statusanzeige der Kanalverarbeitung |
| ctrl-status | Statusanzeige des "Controllers" | |
| aio-status | fstatus, fs, l | Statusanzeige der Audioein- und ausgänge |
Listing 1
/etc/modules.conf
01 # ALSA section {$#@begin@#$} [don't remove or move this line] vvvvv
02 #
03 # ALSA native device support, generated by YaST2
04 #
05 alias char-major-116 snd
06 options snd snd_major=116 snd_cards_limit=2
07 alias snd-card-0 snd-card-emu10k1
08 options snd-card-emu10k1 snd_index=0 snd_id=card1
09 alias snd-card-1 snd-card-ens1371
10 options snd-card-ens1371 snd_index=1 snd_id=card2
11 #
12 # OSS/Free emulation
13 #
14 alias sound-slot-0 snd-card-0
15 alias sound-service-0-0 snd-mixer-oss
16 alias sound-service-0-1 snd-seq-oss
17 alias sound-service-0-3 snd-pcm-oss
18 alias sound-service-0-8 snd-seq-oss
19 alias sound-service-0-12 snd-pcm-oss
20 alias sound-slot-1 snd-card-1
21 alias sound-service-1-0 snd-mixer-oss
22 alias sound-service-1-1 snd-seq-oss
23 alias sound-service-1-3 snd-pcm-oss
24 alias sound-service-1-8 snd-seq-oss
25 alias sound-service-1-12 snd-pcm-oss
26 #
27 # ALSA section {$#@_end_@#$} [don't remove or move this line] ^^^^^
Glossar
Multitracker
Ein Multitracker ist ein Gerät, das es ermöglicht, mehrere Audio-Quellen parallel aufzunehmen und diese auch parallel wieder abzuspielen. Dazu werden die Spuren separat auf Magnetband, Minidisk oder Festplatte aufgezeichnet.
PNP
PNP oder auch P'n'P ist die Abkürzung für Plug and Play (engl.: einbauen und spielen). Die Begriffe Plug and Pray (engl.: einbauen und beten) oder Plug and Pain (engl.: einbauen und Schmerz) sind ebenfalls unter diversen Betriebssystemen durchaus zutreffend. Der Vorteil solcher Geräte besteht darin, dass sich das Betriebssystem um die Vergabe der Ressourcen wie IRQ und Ports kümmert. Neuere Hardware ist in der Regel PNP-fähig.
IRQ
Interrupts (eigentlich "Interrupt Requests") dienen der Kommunikation zwischen der CPU (Prozessor) und der eingebauten Hardware. Wenn beispielsweise die Maus bewegt wird, löst dies einen Interrupt aus. Der Prozessor unterbricht das gerade laufende Programm, zum Beispiel einen MP3-Encoder, und führt erst Mauszeiger nach.
onbord
Bei einige Komplettsysteme sind Grafikkarte oder eine Sound-Karte oft auf dem Motherbord (Hauptplatine) aufgelötet, also on board.
X-Terminalemulation
X-Term genannt, fälschlicherweise manchmal X-Terminal (Das ist ein kleiner Computer, auf dem man ein X-Window-System laufen lassen kann). Es gibt verschiedene Tools, die das manuelle Eingeben von Shell-Befehlen erlauben. In der Windows-Welt heißt dieses Programm DOS-Box oder MS-DOS Eingabeaufforderung. Unter Linux sind einige Beispiele für solche Programme xterm, rxvt, kvt und console.
OSS
Open Sound System ist ein Paket kommerzieller Audio-Treiber der Firma 4Front (http://www.opensound.com), die für nahezu alle Unix-Betriebssysteme verfügbar sind. In einer abgespeckten Version sind sie in die Linux-Kernel-Quellen integriert. Diese dann kostenlosen Treiber unterstützen aber keine PCI-Karten. Um solche Soundkarten benutzen zu können, muss eine kostenpflichtige Lizenz erworben werden. Eine Alternative zum OSS stellt das ALSA-Projekt dar.
Infos
[1] Homepage des ALSA-Projektes:http://www.alsa-project.org/
[2] ecasound Homepage:http://www.wakkanet.fi/~kaiv/ecasound/
[3] Homepage der SuSE GmbH:http://www.suse.de
[4] ecasound Beispiele:http://www.wakkanet.fi/~kaiv/ecasound/Documentation/examples.html
[5] qtecasound Homepage:http://www.wakkanet.fi/~kaiv/qtecasound/download.html
[6] Broadcast 2000 Homepage:http://heroine.linuxave.net/bcast2000.html
[7] Slab Homepage:http://www.slabexchange.org/
[8] mpg123 Homepage:http://www.mpg123.de/
[9] lame Homepage:http://www.sulaco.org/mp3/
[10] MikMod Homepage:http://www.stack.nl/~mikmak/mikmod.htm
[11] libaudiofile Homepage:http://www.68k.org/~michael/audiofile/



