Archiv für die Kategorie'Linux-Audio'

Ardour2 ist fertig!

am 2. Mai 2007 über Linux-Audio

Linux war lange Zeit nicht besonders bekannt für tolle Programme im kreativen Bereich. Erst allmählich konnten Projekte wie Gimp und Inkscape auch im professionellen Bereich Fuß fassen. Der gesamte Audio-Sektor war in besonderem Maße böse vernachlässigt. Das war nicht immer so: Schon ganz früh hatten die ersten Unix-Enthusiasten mit cSound (übrigens am renommierten MIT entwickelt) gebastelt. Und knapp 20 Jahre war dieses avagardistische „Programmieren“ von Musik das einzige, was einen dazu treib unter einem Unix-System Musik zu machen.

Die Ansprüche änderten sich aber. Das hat die Gemeinschaft der freien Software aber zu spät gemerkt. Viel zu zäh war die Entwicklung von ALSA, der endgültige Abschied von OSS und das Entwickeln freier modularer Systeme wie Jack, DSSI, LADSPA und insbesondere LV2. Der Musiker von heute braucht flexible und skalierbare Systeme für das Harddisk-Recording, einen flexiblen Plugin-Standard und ein hohes Qualitätsniveau.

Ardour2 Screenshot
Ardour2 wurde dank GTK zwar schöner, jedoch nicht zwangsläufig übersichtlicher

Und das alles soll er seit vorgestern nun in Ardour2 bekommen. Ardour ist ein Harddisk-Recorder für den gehobenen Anspruch. Mit dem Soundserver Jack kann er sich an die Hardware und an andere Software anschließen. Mit den Plugin-Standards LADSPA/LV2 und – neu in Version 2 – VST kann man auf eine Vielzahl freier, kostenloser und proprietärer Effekte zurückgreifen. Automation aller Parameter, einfaches Bearbeiten, Envelopes und flexibles Routing machen Ardour im Prinzip fit für eine professionelle CD-Produktion.

Einzig am MIDI-Sequenzing fehlt es noch. Will man MIDI-Daten verarbeiten, egal ob zur Klangsynthese oder zur Steuerung, ist man weiterhin auf Rosegarden angewiesen. Zwei Sequencer simultan laufen zu lassen ist zwar dank der globalen Transportfunktion von Jack nicht unmöglich, jedoch recht unkomfortabel. Schon seit Jahren steht dieser Punkt auf der Roadmap, auch der Google „Summer of Code“ 2006 konnte das Ziel nicht verwirklichen. Dieses Jahr haben sich aber zwei Bewerber gefunden. Der eine wird MIDI implementieren. Und der andere bastelt an einem weiteren wichtigen Feature: Raumklangmodellierung über Multispeaker Panning, samt GUI zum Konfigurieren (und hoffentlich automatisieren).

Was beim neuen Ardour aber deutlich ins Auge sticht ist die neue Bedienoberfläche. Die GUI in GTK2 ist zwar nicht wirklich übersichtlicher, aber ziemlich „fancy“. So „fancy“, dass ich die gtkrc von Ardour zu meinem globalen Theme gemacht habe. Und weil Ardour unter der GPL steht, darf ich diese Datei hier anbieten. In einer normalen Linux-Installation muss sie einfach in den Ordner /usr/share/themes/Ardour/gtk-2.0/ kopiert werden:

»Download der Ardour Theme Datei

Programming your Yamaha Synth with Linux and Wine

am 28. Februar 2007 über Linux, Linux-Audio, Musik

Yamaha offers a wide variety of different products for musicians. And the most tricky part in programming them is to handle the menus, the sub-menus and the sub-sub-menus which are accessible through different modes, sub-modes and sub-sub-modes. To make the programming even more interesting for the musician, the only output that the machine gives is found on a minimal, 3×6 cm monochrome display. (Maybe you know now, why I spent 3000€ on my Clavia „Nord Stage“.)

But Yamaha knows about the problems of their costumers(?), so they offer proprietary software to program their products on a PC trough a highly developed GUI with multiple colors and readable text! This works surprisingly well - but only on Windows and Mac OS. Although the hardware is completely compatible with the “snd-usb-audio” kernel module, they did not take the effort to port their software to Linux.

I’ve figured out how to run a Yamaha Motif Rack on Linux using the built-in MIDI-to-USB device and the proprietary “Studio Manager 2.x” and the corresponding plugin for the Motif. Plugins for all digital Yamaha products and the “Studio Manager” itself can be found on Yamahasynth.com.

The first step is the setup of the hardware. Configure the synth to use MIDI-to-USB instead of the DIN connectors. Then connect the synth via USB to your PC. Make shure that the kernel module “snd-usb-audio” is loaded (take a look at lsmod) or compiled into the kernel.

Now the synth should be recognized by the system. Of course, bus and device may vary:

# lsusb | grep Yamaha
Bus 002 Device 002: ID 0499:1015 Yamaha Corp.

Now make sure that ALSA finds the MIDI ports. The port numbers may vary depending on your other MIDI devices. The port name depends on your synth:

#aplaymidi -l
Port Client name Port name
72:0 MOTIF-R MOTIF-R MIDI 1
72:1 MOTIF-R MOTIF-R MIDI 2
72:2 MOTIF-R MOTIF-R MIDI 3
72:3 MOTIF-R MOTIF-R MIDI 4
72:4 MOTIF-R MOTIF-R MIDI 5
72:5 MOTIF-R MOTIF-R MIDI 6
72:6 MOTIF-R MOTIF-R MIDI 7
72:7 MOTIF-R MOTIF-R MIDI 8

Perfect! All MIDI ports are available without configuration.

Now the tricky part: The setup.exe both of the “Studio Manager” and the plugin for the synth will fail due to some “fixme”-bugs in Wine. The bugs are related to some MSI issues and are currently unresolved. You have to install both setup.exe on a Windows machine. Then copy the whole folder “C:\Program Files\YAMAHA” from the Windows system to “~/.wine/drive_c/Program Files/” on your Linux system. This should copy both the “Studio Manager” and the plugins. Copy the following DLLs from “C:\Windows\system32″ on Windows to “~/.wine/drive_c/Program Files/YAMAHA/Studio Manager”:

  • SM2DLL.dll
  • msvcp60.dll
  • smh-qt-mt333.dll
  • smh-qtoptserver.dll
  • smlogcfg.dll

Now there is one big problem: The plugin is registered to the “Studio Manager” through the installation process. So all entries in the registry are not set in Wine. So run “regedit” on Windows and export every registry node that carries a value with the path to your plugin. They can be found with the search string “YAMAHA\Studio Manager\$your_plugin_name”. There are about 7 entries just in [HKEY_CLASSES_ROOT\CLSID\] - you have to export each individal node. Don’t forget the node [HKEY_LOCAL_MACHINE\Software\Yamaha\].

Copy all exported nodes on Linux. Open each of them in notepad and save it once again (just type notepad in a shell). This is a workaround for a bug in Wine’s version of “regedit”. Now import all exported patches to the registry on the Linux machine. Regedit is also available on Wine.

After that, the “Studio Manager” will run and it will find your plugin. Now enjoy making music!

Studio Manager on Linux

1337 mplayer

am 31. Januar 2007 über Linux, Linux-Audio, Musik

MPlayer LogoWer braucht schon eine hässliche GUI um Musik abzuspielen? Ich nicht. Darum läuft meine Musik in aller Regel mit mplayer - und zwar in der Kommandozeile. Einzig die Steuerung gestaltet sich manchmal etwas umständlich. Während sich Amarok und Co. gerne in Form kleiner Symbole auf allen Arbeitsplätzen schnell bedienen lassen, muss man zur Interaktion mit Mplayer stets in das passende Shell-Fenster wechseln. Doch Linux wäre nicht Linux, wenn sich dieses Problem nicht elegant hacken ließe.

Das Ziel: Mplayer soll, wenn einmal in irgendeiner Shell gestartet, über meine Multimediatasten an der Tastatur bedient werden können. Egal, welches Fenster gerade den Fokus hat.

Der modulare (und chaotische) Aufbau Mplayers erlaubt da eine Lösung: Zuerst muss man eine Schnittstelle schaffen, die die Befehle an Mplayer weitergibt. Ein FIFO bietet sich dafür an:

mkfifo ~/.mplayer/mplinput

Danach sollte man Mplayer sagen, dass es als zusätzlichen Eingabekanal diesen FIFO verwenden soll. Das geht sehr gut mit einem Eintrag in ‚/etc/mplayer‘ oder besser in ‚~/.mplayer/conf‘:

input=file=/home/benutzername/mplayer/mplinput

Die Variable ~ kann von Mplayer wohl nicht aufgelöst werden, darum muss der Pfad hart kodiert sein. Ab dem nächsten Start lauscht Mplayer also an der FIFO auf neue Befehle. Die werden elegant mit einem echo-Befehl dort hineingeschrieben:

echo "pause" > ~/.mplayer/mplinput
echo "pt_step 1" > ~/.mplayer/mplinput
echo "pt_step -1" > ~/.mplayer/mplinput

Der erste Eintrag pausiert die Musikausgabe, die beiden anderen springen ein Musikstück weiter oder zurück. Weitere Funktionen lassen sich durch intensive Lektüre der Man-Page mehr oder weniger schnell erraten.

Nun müssen diese Befehle noch auf Tastendruck ausgeführt werden. Wer wie ich spezielle Multimediatasten hat, wird vielleicht mit diesen Zeilen für ‚~/.Xmodmap‘ etwas anfangen können. Eigentlich sollte der Keycode standardisiert sein. Sowohl mein IBM Notebook als auch meine Cherry Tastatur bedienen sich jenen Zahlen für Sondertasten:

keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume

Das binden der Tasten an die Befehle sollte am besten dem Windowmanager übertragen werden. Bei Fluxbox etwa müssen folgende Zeilen in ‚~/.fluxbox/keys‘ hinzugefügt werden:

None XF86AudioPlay :ExecCommand echo "pause" > ~/.mplayer/mplinput
None XF86AudioNext :ExecCommand echo "pt_step 1" > ~/.mplayer/mplinput
None XF86AudioPrev :ExecCommand echo "pt_step -1" > ~/.mplayer/mplinput

Wer zudem noch die globale Lautstärke von ALSA kontrollieren möchte, sollte sich ‚amixer‘ (nicht ‚alsamixer‘) anschauen. Die Bedienung gestaltet sich recht einfach.

Tatataaaaa!

am 24. August 2006 über Linux, Linux-Audio, Musik, Software

Als ich die standardmäßigen Systemsounds von Gnome aktiviert habe, war das eine glatte Beleidigung an meine Ohren. Während selbst Microsoft so langsam auf den Trichter gekommen ist, meinen die Gnome-Entwickler den Benutzer beim Starten des Systems mit schmetternden Midi-Trompeten begrüßen zu müssen. Ein guter Login- und Logout-Sound muss in erster Linie kurz, einfach, schön und vor allem dezent sein. Da ich in den Weiten des Internets nichts gefunden habe, was diese Kriterien nur annährend erfüllt, hab ich selbst was aufgenommen.

Das Soundtheme “Gentle Rhodes” besteht bis jetzt in der Version 1.0 nur aus einem Startup- und einem Shutdown-Sound. Wie der Name sagt ist ein Rhodes Mk. II aus meinem Clavia Nordstage dominant. Vielleicht gefällt es dem einen oder anderen:

GentleRhodes

Gentle Rhodes Version 1.0

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.

Eine Garage für Linux

am 19. August 2006 über Linux, Linux-Audio, Musik

Die große Firma mit dem Apfel bietet mit Garageband ein Audioprogramm für Einsteiger an. Das erklärte Ziel dieser Aktion ist es, auch Anfänger für Musik am PC zu begeistern. Wer sich schonmal damit versucht hat, wird sicher schnell frustriert sein: Audioverarbeitung hab im Gegensatz zur Bildbearbeitung eine extrem steile Lernkurve. Man kann eigentlich nicht einfach damit anfangen ohne einen blassen Schimmer zu haben, was man eigentlich tut. Darum bin ich ein Gegner von Software, die dem Benutzer einredet, er könne etwas von dem er keine Ahnung hat.

Unter Linux blieb einem sowas bis jetzt erspart. Die Referenzsoftware Ardour/Jamin und Rosegarden sind nicht gerade für intuitive Bedienung bekannt. Es gibt aber ein neues Programm für Gnome (wie könnte es anders sein), das den Anspruch von GarageBand in die Linuxwelt trägt. Jokosher überzeugt derzeit eher durch nettes Eyecandy statt durch Funktionalität. Kein LADSPA, kein DSSI, kein JACK, kein MIDI. Es ist unfair, schon in der Version 0.0.1 diese Ansprüche zu stellen, aber es ist nichts in diese Richtung geplant. Dafür kann man “Instrumente” hinzufügen (wohlgemerkt keine “Spuren”). Worin sich dann die “Instrumente” rein technisch unterscheiden: Richtig! Nur am Icon :-)

Jokosher
Mit Jokosher können auch Anfänger versuchen, Musik am PC zu machen.

mpg123 lebt!

am 3. August 2006 über Linux, Linux-Audio, Musik

6 Jahre nach der letzten Änderung im Code wird mpg123 wieder weiterentwickelt. So steht zumindest auf der Linux-Audio-Developer-Mailingliste. Warum man den Dinosaurier wiederbeleben möchte? Kein Player ist so schlank und einfach wie das 171kB große Programm. Bei Stabilität und Ressourcenverbrauch steht mpg123 weit vor MPlayer und GUI-Tools wie XMMS und AmaroK. Besonders die Kreativen unter den Linuxern werden sich freuen: Es soll eine JACK-Ausgabe implementiert werden. Damit kann man dann ganz einfach - in welchem Kontext auch immer - MP3s in einem komplexen Setup abspielen. Und das ohne den anderen ressourcenfressenden Anwendungen in die Quere zu kommen.

Normale Musik

am 28. Juli 2006 über Linux, Linux-Audio, Musik

Melodie/Harmonik, Rhythmus und Dynamik sind nach Lehrbuch die Bestandteile von Musik. Die Musikindustrie hat aber irgendwie den letzten Punkt vergessen. Als Dynamik bezeichnet man die zeitliche Veränderung der Tonstärke. Und eigentlich ist dieser Punkt genauso wichtig wie alles andere auch. Die Toningenieure für populäre Musik haben das aber schon seit den 80ern irgendwie verlernt. Während man bei einer LP wegen des geringen Rauschabstandes lautstärkemäßig durchaus einheizen musste, ist das bei der Audio-CD mit einem Dynamikumfang von 96dB eigentlich nicht mehr nötig. Und trotzdem liegen die Pegel von nahezu jedem Album ständig in den oberen 10%.

Pegel im Vollausschlag
Pegel in den oberen 10 Prozent

Das rief dann die Ober-Wichtig-Menschen von der EU auf den Plan, die eine Richtlinie erließen um die Maximallautstärke von MP3-Playern zu beschränken. Das wurde inzwischen selbst bei alten Geräten durch Firmware”upgrades” rigoros durchgesetzt. Was, wenn man aber richtige Musik hören möchte? Klassik zum Beispiel. Bei Beethovenes Neunter ist der Solo-Bass eben deutlich leiser als der 300-Mann-Chor. Selbiges gilt auch für Rock. “Child in Time” hatte selbst beim LP-Mix eine unglaublich impulsive Lautstärkeentwicklung. Solche Tracks sind mit der Lautstärkendeckelung des MP3-Players einfach zu leise.

Ein Versuch zur Verbesserung dieses Zustandes ist das Normalisieren. Dabei werden zumindest die Pegel innerhalb eines Tracks angepasst. Das Tool normalize kann da ziemlich viel schrauben - mit manueller Konfiguration kann sogar der Treshold gesetzt werden. Für zu leise Tracks in der MP3-Sammlung lohnt sich das Tool allemal. Und für eine Mix-CD, bei der alle Tracks gefälligst gleich laut sein sollen ist es unabdingbar. Die Funktionen sind gut dokumentiert und Pakete gibt es auch für fast jede Distro. Wer die Konsole nicht mag kann sich normalize auch als XMMS-Plugin installieren.

Kompressor
Ein Kompressor verstärkt das Signal nicht linear

Auch wenn normalize nicht nach dem höchsten Pegel sondern nach dem Durchschnittswert normalisiert (also nach der Standardabweichung) - innerhalb eines Tracks bleiben die Pegel immer in der richtigen Relation. Daran was ändern kann nur ein Kompressor. Der bildet die Ausgabe dynamisch ab - je nach Eingabepegel. Zuerst werden die lauten Pegel abgedämpft, dann wird das ganze Signal verstärkt. Der ursprüngliche Sinn des Ganzen ist eigentlich ein spezielles Instrument beim Solo dominanter zu machen. Bei ganz hartnäckigen Pegel-Problemen in der MP3-Sammlung tut aber auch ein Kompressor gute Dienste. Audacity kann etwa über LADSPA einen Kompressor anwenden. Ein (oder auch zwei) Kompressoren sollten in jedem LADSPA-Paket der Distrubution mit drin sein.


Creative Commons-Lizenzvertrag
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.
M. Herhoffer