Zahlreiche Nachwuchs-Bands geben täglich Unmengen an Geld aus, um an halbwegs brauchbare Demo-Aufnahmen zu kommen. In diesem Artikel möchten wir zeigen, wie Sie unter Linux preiswerter produzieren können.
Wie vielleicht mancher aus den Autoren-Informationen meiner vorhergehenden Artikel weiß, ist eines meiner Hobbies die Musik. Genauer gesagt: Ich spiele Gitarre in einer Rockband. Jeder, der sich schon einmal mit der Thematik Homerecording auseinandergesetzt hat, weiß ebenfalls, dass es viele Dinge für viel Geld zu kaufen gibt. Auch die Frage, ob man selbst produzieren soll, oder ob man sich blindlings in die Hände sogenannter Produzenten gibt, wird gerade bei Nachwuchs-Bands reichlich diskutiert. Hauptproblem in der Anfangsphase ist, dass man nicht so mir nichts dir nichts ein paar (zehn)tausend Mark zusammen bekommt, um eine vernünftige Aufnahme im Studio produzieren zu lassen – wenn dies meinen Erfahrungen nach trotzdem der qualitativ beste Weg ist.
Dieser Artikel ist an all jene gerichtet, deren kleines Budget es nicht zulässt, die Produzenten von Metallica oder Subway To Sally zu engagieren, die sich aber mit den Grundbegriffen von Linux auskennen und Spaß am Basteln haben. Wir wollen unsere Geschicke also selbst in die Hand nehmen und benötigen dazu das richtige Equipment. Insbesondere werde ich das Problem der Mehrspur-Aufnahmen unter Linux besprechen.
Wozu Mehrspur-Aufnahmen?
Auf CDs enthaltene Musikstücke sind in der Regel nur in Stereo, haben also zwei getrennte Kanäle. Diese bekommen Sie, wenn Sie einen Kassetten-Recorder oder einen Minidisk-Recorder zur Aufnahme verwenden. Wozu benötigen Sie also einen Multitracker?
Der Vorteil einer Mehrspur-Aufnahme liegt in der Tatsache, dass sie es ermöglicht, das Klangbild eines ganzen Songs nach dessen Aufnahme in aller Ruhe zu bearbeiten. Außerdem kann man verschiedenen Instrumente nacheinander einspielen – dies ist sicherlich bei Profimusikern nicht unbedingt nötig, hilft aber ungemein, wenn einer sich doch verspielt. Dann muss nämlich nicht die ganze Band die Aufnahme wiederholen, sondern nur derjenige, der den Fehler gemacht hat.
Kaufen oder basteln?
Angesichts der Preise für Achtspur-Geräte beantwortet sich die Frage, ob man nicht lieber ein fertiges Gerät kauft, eigentlich von selbst. Vierspur-Systeme gibt es zwar schon für unter tausend Mark, damit lässt sich aber nicht all zu viel anfangen. Unter der Voraussetzung, dass bereits ein PC zur Verfügung steht, liegt der Preis für die Selbstbau-Variante wesentlich niedriger. Ein weiterer Grund für die Bastel-Lösung ist natürlich der Spaßfaktor und die bloße Tatsache, dass es funktioniert.
Notwendige Linux Grundlagen
Ein wenig Theorie muss hier vorweg betrachtet werden. Linux bietet die Möglichkeit, auf die Hardware über sogenannte Devices zuzugreifen. Beispielsweise ist der erste serielle Port als Device /dev/ttyS0 zu finden. Sound-Karten, oder besser gesagt die Teile von Sound-Karten, die uns interessieren, werden über /dev/dsp angesprochen. Wenn Sie nur eine Sound-Karte installiert haben, können Sie z. B. mit dem Befehl play --device=/dev/dsp0 Audiodatei.wav eine Musikdatei darüber abspielen. Bei mehreren Sound-Karten werden mehrere Devices erzeugt, die dann von Null an aufwärts durchnummeriert sind.
Die “Entwicklungsumgebung”
Ich verwende als Audiotreiber das ALSA-Paket [1] in der Version 0.5.9c. Diese Treiber erzeugen zusätzlich eigene Gerätedateien und emulieren die dsp-Devices. Das später verwendete Tool ecasound[2] kann direkt die ALSA-Devices ansprechen. Da ich damit aber verschiedene Probleme hatte, beschränke ich mich auf die emulierte dsp-Variante.
Dieser Artikel entstand im Vorfeld einer Aufnahme mit meiner eigenen Band (http://www.gutefrage.de), daher kommen momentan “nur” zwei Sound-Karten zum Einsatz. Wenn aber das Prinzip verstanden wurde, können ohne weiteres mehr betrieben werden.
Um Missverständnissen vorzubeugen, soll an dieser Stelle meine Systemkonfiguration erwähnt werden. Ich setze SuSE Linux 7.0 [3] ein. Die beiden Sound-Karten sind zum einen eine Creative Labs Soundblaster Live und zum anderen eine Creative Labs Soundblaster 128 PCI.
Der Griff zum Schraubendreher
Ich gehe davon aus, dass ein Linuxnutzer sich nicht davor scheut, mal ins Innere seines Rechners zu schauen. Standard-PCs sind nur mit einer Sound-Karte ausgestattet. Nun können Sie Ihren Computer zum Fachhandel schaffen und für teures Geld Sound-Karten nachrüsten lassen. Da wir aber möglichst sparsam sein wollen, machen wir das ganze selbst. Dazu kaufen wir uns zuerst eine preiswerte PNP-Sound-Karte, die möglichst für den PCI-Bus ausgelegt ist. Prinzipiell sollten ältere ISA-Karten ebenfalls funktionieren, das konnte ich allerdings nicht ausprobieren.
Nach der Beschaffung geht es an den Einbau. Als Erstes fahren wir den ja immer laufenden Rechner runter, schalten ihn aus und ziehen wir alle Kabel ab. Damit es zu keinen Schäden an der empfindlichen Hardware kommt, sollten elektrostatische Ladung vermieden werden. Am Besten greift man vor dem Aufschrauben beherzt an eine hoffentlich nicht all zu heiße Heizung. Da diese in der Regel geerdet ist, sollte sich die überflüssige Energie dadurch abbauen. Der Rest ist schnell beschrieben:
- Gehäuse öffnen
- Slot-Abdeckung entfernen, um die Karte einbauen zu können (meist ist schon eine Grafikkarte eingebaut, so dass ich wohl nicht genauer erklären muss, was eine Slot-Abdeckung ist)
- Sound-Karte einstecken (Wichtig: Eine PCI-Karte passt nur in einen PCI-Slot!)
- Karte fest in den Steckplatz eindrücken (aber bitte nicht mit Gewalt das Mainboard durchbrechen)
- Sound-Karte festschrauben (mit der Schraube der Slot-Abdeckung)
- Gehäuse schließen und wieder anschließen
- Linux neu startenBei der ganzen Aktion sollten Sie etwas auf Ihre Hände Acht geben: Viele Billig-Gehäuse sind äußerst scharfkantig und könnten Schnittwunden verursachen. Wer sich diesen Einbau nicht zutraut, fragt zur Vermeidung von Schäden vielleicht einfach einen Bekannten, der öfter am Computer herumgeschraubt hat. Wir haben jetzt einen PC mit zwei Sound-Karten, eine davon möglicherweise onbord.
Buntes Treibe(r)n
Wie bereits erwähnt, benutze ich SuSE Linux 7.0. Daher gehe ich bei der Konfiguration der Treiber auf diese Distribution ein. Nutzer andere Distributionen können den ersten Teil dieses Abschnittes getrost überfliegen und die entsprechenden Anpassungen manuell vornehmen (siehe Sound-Karten-Konfiguration in Listing 1). Um Konfusionen zwischen KDE 2.0 und 1.1.2 zu vermeiden, gehe ich nicht darauf ein, wo sich die einzelnen Programme in den Menüs befinden, sondern starte die Tools direkt über die Kommandozeile ([ALT-F2] unter KDE bzw. in einer beliebigen X-Terminal-Emulation)
Bei der Standard-SuSE-Installation wird das ALSA-Paket bereits mit installiert. Da man sich ja nie sicher ist, welche Hardware man eigentlich installiert hat, überlässt man deren Erkennung kluger Software. SuSE hat mit YaST2 ein Tool geschaffen, welches u.a. eben diesen Zweck erfüllt und zahlreiche Sound-Karten erkennt. Das Sound-Karten-Modul von YaST2 hat nur den Nachteil, dass es jeweils nur eine Sound-Karte einrichten kann.
Wir müssen also doch noch selbst Hand anlegen. Da die Dokumentation auf der ALSA-Homepage [1] veraltet ist, habe ich dennoch SuSEs YaST2 benutzt, um die Einstellungen für die einzelnen Sound-Karten herauszufinden. Ich bin dazu folgendermaßen vorgegangen:
- Starten des Sound-Kartenmoduls von YaST2 über
susewmif ROOT_X11 /sbin/yast2 sound, anschließend mit Root-Passwort einloggen - Im darauf erscheineneden Dialog wählt man die erste Sound-Karte aus, die angeboten wird, und konfiguriert diese durch einen Klick auf den “Weiter”-Knopf. Der restliche Dialog von YaST2 ist selbsterklärend.Damit ist auch schon die Installation der ersten Sound-Karte abgeschlossen. Kommen wir nun zum Einrichten der weiteren Sound-Karte(n).
- Wir kopieren uns die aktuellen Einstellungen an einen “sicheren” Ort, an dem sie nicht von der nächsten Installation überschrieben werden. (
copy /etc/modules.conf ~/karte1.conf) - Nun kann die nächste Karte, wie oben beschrieben, eingerichtet werden. Dabei muss zuerst der “Zurücksetzen”-Knopf gedrückt werden, wodurch die Konfiguration der ersten Sound-Karte gelöscht wird.Um beide Sound-Karten verwenden zu können, müssen nun die Konfigurationseinträge beider in die Datei
/etc/modules.confgeschrieben und angepasst werden. Dazu sind erneut Root-Rechte nötig, dazu loggen Sie sich am einfachsten alsrootein. Wie immer als Root gilt: Vorsicht mit Veränderungen, Sie könnten unter Umständen Ihr ganzes System lahmlegen.
Wir öffnen nun also die Datei /etc/modules.conf und gehen ganz an das Dateiende. Dort sollten die ALSA-Einträge stehen, sie stammen von der letzten Sound-Karten-Konfiguration. In einem weiteren Texteditor öffnen wir nun unsere Sicherungskopie ~/karte1.conf, an deren Ende wir die ALSA-Einträge unserer ersten Einrichtung finden. Nun müssen wir diese Einträge an das Ende der /etc/modules.conf anfügen.
Diese müssen nun nur noch auf die beiden Sound-Karten verteilt werden. Dazu erhöhen wir zuerst die Anzahl der maximal zulässigen Sound-Karten auf die notwendige Anzahl, wie in Zeile 6 von Listing 1 zu sehen. Nun wird die Reihenfolge der Sound-Karten festgelegt. Dies geschieht durch die Parameter snd_index und snd_id der entsprechenden Karte, im Listing in der Zeile 6 und 8 gezeigt. Selbstverständlich müssen auch die entsprechenden Alias-Einträge angepasst (Zeile 7 und 9) und die OSS-Emulation auf beide Karten ausgeweitet (Zeilen 14 bis 25) werden.
Da wir ja noch Root-Rechte haben, aktivieren wir die Sound-Karten gleich. Noch aktive Sound-Karten werden dafür zunächst mit rcalsasound stop angehalten, und die neue Konfiguration mit rcalsasound start geladen.
Bei dem zweiten Befehl wird Linux bemängeln, dass die Konfiguration jünger ist als die geprüften Moduleabhängigkeiten. Diese Warnungen verschwinden nach einem Neustart von Linux, der hier aber nicht unbedingt notwendig ist, oder nach einem Aufruf von depmod -a.
Leider ist – wie gesagt – die Dokumentation von ALSA nicht auf dem neuesten Stand. Die darin verwendeten Parameter für die einzelnen Optionen funktionieren scheinbar nicht mehr mit den aktuellen Treibern. Die hier vorgestellte Lösung wurde durch stundenlanges Probieren gefunden und funktioniert bei mir ausgezeichnet. Ich kann aber nicht ausschließen, dass es bei der einen oder anderen Hardware-Konstellation zu Problemen kommt.
Testen der Konfiguration
Es gibt verschiedene Möglichkeiten, zu testen, welche Sound-Kartenkonfiguration gerade aktiv ist. Das von OSS her bekannte Auslesen dieser Infos mittels cat /dev/sndstat (als root) funktioniert mit den ALSA-Treibern nicht. Es gibt aber andere Wege, einer ist das Abspielen von einer Audiodatei mit Device-Angabe, hier im Beispiel für die erste und die zweite Sound-Karte:
play --device=/dev/dsp0 Datei.wav play --device=/dev/dsp1 Datei.wav
Dies funktioniert natürlich nur, wenn man an die entsprechenden Sound-Karten auch Lautsprecher angeschlossen hat. Ist dies noch nicht geschehen, kann man sich die Konfiguration auch unter KDE 2 mittels kcmshell Information/sound anzeigen lassen, wie in Abbildung 2 gezeigt.
Der dritte sicherlich unorthodoxeste Weg ist das Mixertool von KDE 2 kmix. Dieses ermöglicht unter anderem die Anpassung der Lautstärke der einzelnen Karten, hier am Beispiel meiner Soundblaster Live in Abbildung 3. Zwischen den beiden Karten kann über die Registerblätter hin und her geschalten werden.
Damit ist die Konfiguration der Sound-Karten (hoffentlich) erfolgreich abgeschlossen und wir können uns der eigentlichen Aufgabe eines Multitrackers, der Mehrspur-Aufnahme, zuwenden.
Broadcast 2000 zweckentfremdet?
Linux wäre nicht Linux, gäbe es zu diesem Zweck nur ein Tool. Ich gehe kurz auf verschiedene Programme ein und betrachte dann das meiner Meinung nach am besten geeigneteste etwas genauer.
Broadcast 2000 ist eigentlich dafür konzipiert worden, Videoschnitt unter Linux zu ermöglichen. Da auch gleichzeitig mehrere Audiospuren definiert werden können, besteht grundsätzlich die Möglichkeit, dieses Programm zu zweckentfremden. Leider ist es mir nicht gelungen, einzelnen Audiospuren separate Kanäle zuzuweisen. Das heißt, dass nur von einer Sound-Karte aufgenommen bzw. abgespielt werden kann. Da dies nicht das Ziel unserer Bemühungen ist, müssen wir uns eine andere Lösung suchen.
SLab unkooperativ
SLab [7] ist ein TCL/TK basiertes X-Windows-Programm, und ein sehr mächtiges Tool zur Mehrspur-Aufnahme – so man es erst einmal zum Laufen gebracht hat. Ein vorkompiliertes Paket wird zwar bei SuSE 7.0 mitgeliefert, es ist mir jedoch nicht gelungen dieses zur Kooperation zu bewegen – vielleicht klappt es ja noch später.
In diesem Falle würde ich es ecasound, dem im weiteren Teil verwendeten Tool, vorziehen, da SLab den Ein- und Ausgangspegel anzeigt und über einen eigenen Mixer verfügt. Zudem lässt sich die grafische Oberfläche intuitiver handhaben.
Ecasound
Die beiden Tools Broadcast 2000 und SLab sind, wie ich schon angedeutet habe, Bestandteil der SuSE-Distribution. Kommen wir nun zu einer Multitracker-Software, die SuSE schmählicher Weise (noch) nicht mitliefert. Ecasound [2] ist ein konsolen-basiertes Programm und stellt nur sehr geringe Ansprüche an die erforderliche Hardware. Man kann dafür einen ausrangierten PC (ein Pentium 200 sollte es schon sein) nehmen und diesen zum Multitracker ausbauen. Es gibt zwar eine QT-2-Oberfläche “qtecasound” [5], die aber zum einen auch nicht komfortabler als die Konsolen-Version zu bedienen ist und zum anderen eine unstabile Entwicklerversion von ecasound voraussetzt.
Auf der Homepage von ecasound [2] stehen diverse Pakete dieses Tools zum herunterladen bereit. Trotz der Tatsache, dass SuSE im Vergleich zu anderen Distributionen andere Pfade verwendet, können ruhig die dort angebotenen RPM-Pakete ecasound-1.8.2r14-1.i386.rpm und ecasound-plugins-1.8.2r14-1.i386.rpm verwenden. Auch für diese Installation benötigen Sie root-Rechte – am einfachsten geht dies mit folgendem Befehl in einem X-Term:
su -c rpm -i ecasound-1.8.2r14-1.i386.rpm ecasound-plugins-1.8.2r14-1.i386.rpm
Nach Eingabe des Root-Passworts installiert RPM beide Pakete.
Ecasound ist ein so komplexes Tool, dass ich nicht auf jede Funktion detailliert eingehen kann. Damit Sie eine Übersicht der Möglichkeiten bekommen, sind die Parameter in Tabelle 1 aufgelistet. Es wurden nicht alle englischen Begriffe ins Deutsche zu übertragen, dies liegt in der Tatsache begründet, dass sich einige englischen Bezeichnungen im Musikerumfeld als Standard etabliert haben und die deutschen Begriffe mehr Verwirrung als Erleuchtung stiften.
Da wir Ecasound eigentlich nur als Multitracker benutzen wollen, gehe ich nicht weiter auf die Effektmodule ein. Diese sind zwar auch recht interessant, sollten aber in einem separaten Artikel ausführlich besprochen werden.
Das Kanalkonzept
Ecasound bietet die Möglichkeit, so genannte Kanäle zu definieren, das kann man mit den Spuren einer Mehrspur-Aufnahme vergleichen. Beim Aufruf von Ecasound werden die Sound-Karten-Kanäle aufgeteilt: ecasound -a:kanal1 -a:kanal2 erzeugt zwei Kanäle (kanal1 und kanal2). Hinter den beiden Kanal-Namen können noch weitere Parameter wie Effekte oder Angaben Ein-/Ausgabe stehen, die dem Kanal zugewiesen werden, stehen. Zur Verwendung als Multitracker brauchen wir in der Regel nur die Audio-Quelle mit (-i) und zu anderen das Ziel, zu welchem die Audiodaten kanalisiert werden sollen, mit -o angeben.
Kommandozeile oder interaktiv
Startet man Ecasound mit -c als ersten Parameter, gelangt man in den interaktiven Modus. Dieser eignet sich hervorragend zum Starten bzw. Anhalten des virtuellen Tonbandes und zum Hin- und Herspulen. In Tabelle 2 finden Sie eine Übersicht der Befehle, die Ecasound am Kommando-Prompt versteht. Bei dem Versuch, die einzelnen Kanäle im interaktiven Modus mit Effekten zu belegen, ist mir das Programm allerdings oft abgestürzt. Daher sind die weiter unten aufgeführten Beispiele so ausgelegt, dass alle relevanten Parameter bereits beim Starten von ecasound angegeben werden. Dennoch werden wir des Komforts halber den interaktiven Modus zum Steuern des “Bandes” verwenden.
Mikrofonverteilung
Kommen wir nun zu unserer ersten Aufnahme. Als Beispiel verwende ich die bei mir benutzte Konstellation mit zwei Sound-Karten, deren zwei Stereo-Spuren in vier Mono-Spuren aufgetrennt werden. Wir wollen ein Schlagzeug mit vier Mikrofonen aufnehmen, jeweils eins für Bass-Drum und Snare-Drum, ein Mikrofon rechts über dem Schlagzeug und schließlich noch eins links oberhalb. Danach sollen noch weitere Instrumente eingespielt werden können.
Verkabelung
Da die Stereo-Eingänge an den Sound-Karten keinen Mikrofon-Vorverstärker besitzen und die eigentlichen Mikrofoneingänge nur Mono sind, benutzen wir ein Mischpult. Wir bauen also die Mikrofone auf und verbinden sie mit den Eingängen des Mischpultes. Danach verbinden wir die Ausgänge der Mischpult-Kanäle, die ja ebenfalls in Mono sind, mit unseren Sound-Karten. Dafür verwenden wir ein Y-Kabel, das den rechten und linken Kanal des Stereo-Klinkensteckers auf der Sound-Karten-Seite in zwei Mono-Klinkenstecker für das Mischpult aufteilt. Solche Kabel sind im Fachhandel erhältlich, aber recht teuer. Der Eigenbau ist sehr einfach: Die Masseleitung des Stereo-Steckers wird mit denen der zwei Mono-Stecker verlötet und der rechte bzw. linke Kanal wird mit dem Kontakt des jeweiligen Mono-Steckers verbunden.
Achtung Aufnahme!
Nachdem wir das ganze Szenario entsprechend verkabelt haben, können wir zur Testaufnahme schreiten. Mit kmix oder dem Konsolen-Programm qmix regeln wir den Eingang der Sound-Karte hoch und schalten ihn bei kmix ein (rotes Feld unter dem Regler). kmix lassen wir erst einmal laufen, wir brauchen es gleich zur Pegelanpassung wieder.
Zum Auspegeln habe ich krecord verwendet. Dort lassen wir uns zu erst über Optionen, Input die Eingangspegel anzeigen (siehe Abbildung 4), während der Schlagzeuger sein Gerät kräftig bearbeitet. Anschließend verändern wir die Line-Regler in kmix so lange, bis es keine Überschreitungen der 0-dB-Marke mehr gibt.

Abbildung 4: Pegelanzeige von krecord: Die Audio-Signale dürfen die 0-dB-Marke nicht übersteigen, sonst kommt es zu Verzerrungen
Zum Auspegeln der weiteren Sound-Karten müssen wir mit ecasound etwas tricksen: krecord kann nur die erste Sound-Karte ansprechen, deshalb leiten wir mit ecasound -i /dev/dsp1 -o /dev/dsp0 das Eingangssignal von der zweiten über die erste Sound-Karte um und regeln dann die Eingänge der zweiten Sound-Karte mit kmix nach. Ist der Pegel in Ordnung, können wir ecasound, das interaktiv läuft und auf Eingaben wartet, mit “q” beenden. Ecasound gibt uns übrigens Pegelüberschreitungen an – notfalls müssen wir diese Abgleichprozedur später noch einmal wiederholen, insbesondere nach Positionsveränderungen der Mikrofone oder Instrumente.
Ton ab…
Für unsere erste mehrspurige Probeaufnahme rufen wir ecasound interaktiv auf:
ecasound -c -r -b:128 -f:16,2,44100 -a:1 -i /dev/dsp0 -o spuren_1_2.wav -a:2 -i /dev/dsp1 -o spuren_3_4.wav
ecasound erwartet uns mit einem Befehlsprompt. Mit der Befehlszeile start beginnt die Aufnahme, und unser Schlagzeuger kann sich austoben. Ein anschließendes stop beendet den Test. Sollte das Befehlsprompt zwischenzeitlich durch Ausgaben verschwinden, drücken Sie einfach [Enter] und bekommen ein neues.
Weitere Instrumente
Unter der Voraussetzung, dass die von uns verwendeten Sound-Karten vollduplex-fähig sind, also gleichzeitig aufnehmen und abspielen können, müssen wir unser Szenario nicht einmal ändern, wenn nun vier weitere Instrumente gleichzeitig eingespielt werden sollen.
Da wir aber Amateure sind und alles nacheinander machen wollen, soll nun nach dem Schlagzeug z. B. nur der Bass eingespielt werden. Der Bassist bekommt zum Mithören einen Kopfhörer, der an die erste Sound-Karte angeschlossen ist, dann verbinden wir den Bass über das Mischpult mit der Sound-Karte. Vergessen Sie bitte nicht, dass der Bass eine andere Pegeleinstellung benötigt, Sie müssen dabei genauso wie vorhin beim Schlagzeug vorgehen. Nun spielen wir das aufgenommene Schlagzeug ab und nehmen den Bass auf. Der entsprechende Aufruf von Ecasound sieht folgendermaßen aus:
ecasound -c -r -b:128 -f:16,2,44100 -a:1 -i spuren_1_2.wav -o /dev/dsp0 -a:2 -i spuren_3_4.wav -o /dev/dsp0 -a:3 -i /dev/dsp1 -o bass.wav
Die Kanäle eins und zwei bekommen als Eingangssignal das vorher aufgenommene Schlagzeug; das Ausgangssignal geht auf /dev/dsp0, also auf den Kopfhörer an der ersten Sound-Karte. Der dritte Kanal ist für den Bass, er nimmt vom Eingang der zweiten Sound-Karte (/dev/dsp1) auf und schreibt in die Datei bass.wav. Bei vollduplex-fähigen Sound-Karten könnten wir die zweite völlig unbehelligt lassen und auch für die Aufnahme /dev/dsp0 nehmen.
Abmischen des Songs
Nachdem nun nacheinander alle Spuren aufgenommen wurden, muss natürlich noch abgemischt werden. Am einfachsten wäre es, wenn wir so viele Sound-Karten wie aufgenommene Spuren hätten. Dann wäre unser Ziel, den Computer lediglich als Multitracker zu nutzen, bereits erfüllt. Obwohl ich dies ja oben als Voraussetzung angegeben habe, möchte ich dennoch kurz auf einen Trick eingehen, wie man auch mit weniger Sound-Karten auskommt.
Wie man mehrere Kanäle über eine Sound-Karte ausgeben kann, wurde schon bei der Bass-Aufnahme gezeigt. Sollte der Computer zu langsam sein, um die verschiedenen Dateien gleichzeitig abzuspielen, kann man die einzelnen Spuren vorher zusammen mischen und dann den Mix wiedergeben. Dies funktioniert folgendermaßen:
Mit ecasound -f:16,2,44100 -a:1 -i spuren_1_2.wav -a:2 -i spuren_3_4.wav -a:all -o schlagzeug.wav werden die vier Spuren des Schlagzeugs auf zwei heruntergemischt und in die Datei schlagzeug.wav geschrieben. Per ecasound -f:16,2,44100 -i schlagzeug.wav -o /dev/dsp kann man sich das Ergebnis dann anhören. Es ist übrigens auch hier möglich, für die einzelnen Kanälen Effekte zu benutzen – mehr dazu finden Sie unter [4].
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/




