Multitracker im Eigenbau mit Linux

Aus LinuxUser 03/2001

Multitracker im Eigenbau mit Linux

Linux goes Tonstudio

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.conf geschrieben und angepasst werden. Dazu sind erneut Root-Rechte nötig, dazu loggen Sie sich am einfachsten als root ein. 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], Aufnahme lame[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/

Der Autor

Hagen Höpfner ist Informatik-Student an der Otto-von-Guericke-Universität Magdeburg. In seiner Freizeit ist er begeisterter Vater und spielt Gitarre in der Rockband “Gute Frage” (http://www.gutefrage.de). Das Foto zeigt die Mitglieder, von links nach rechts: Mario (vocals, bass), Oliver (vocals, guitar), Hagen (guitar), Norman (drum)).

LinuxUser 03/2001 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben