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[10], Aufnahmelame[10]) - XM, IT, S3M, MOD, MTM, 669, STM, ULT, FAR, MED, AMF, DSM, IMF, GDM, STX (Modulformate, benötigen
MikMod[10]) - .aiff (AIFF, benötigt
libaudiofile[11]) - .au, .snd (Sun/NeXT Audioformate benötigen
libaudiofile[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.
konsolenbasierte Programme: Programme, die für die Konsole programmiert sind, benötigen kein X-Window, um gestartet werden zu können. Man kann es in etwa mit alten DOS-Programmen vergleichen. Dennoch besteht die Möglichkeit, solche Programme unter X zu verwenden. Dabei kommen X-Terminal-Emulationen zum Einsatz. Man kann aber auch aus dem X-Windows heraus auf Konsolenebene umschalten (X läuft dann weiter). Mit [Strg-Alt-F1] kommt man auf die erste Textkonsole, [Strg-Alt-F5] wechselt auf die fünfte. Je nach Konfiguration gibt es unterschiedlich viele Textkonsolen. Mit [Strg-Alt-F7] oder [Strg-Alt-F8] (das hängt von der verwendeten Distribution ab) kommt man zur grafischen Oberfläche zurück. Alle Programme laufen weiter, wenn man auf eine andere Konsole gewechselt hat.
i386: Binärpakete mit der Bezeichnung i386 sind für Rechner mit Intel-Prozessor (oder kompatible, z. B. von AMD) kompiliert und auch nur auf solchen Computern lauffähig. i386 steht für "ab Intel 80386", manchmal findet man auch i586 oder i686, die einen Pentium bzw. Pentium-II oder höher voraussetzen.
rpm: RPM (Red Hat Paket Manager) ist ein Tool, welches Programme zusammen mit Informationen über die Installation und vor allem Deinstallation in einem Paket zusammenfasst. Die meisten Linux-Distributionen verwenden RPM-Pakete, es gibt aber durchaus andere wie z. B. .deb bei Debian.
man-page: Die man-pages (manual pages, engl.: Handbuch) liegen den meisten Programmen bei. Sie sind meist ausführliche Beschreibungen des jeweilige Programmes und können mittels man Programm-Name aufgerufen werden.
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/



