Musik-Produktion unter Linux / music as code

von Frank Rocholl am Freitag, 15. März 2019

Musikproduktion und Linux passt (neuerdings) ebenfalls gut zusammen. Ich nutze Software unter Linux für das MIDI-Recording, um Noten zu setzen, um Mehrspurmitschnitte von Konzerten zu machen und um Bildaufnahmen und Ton zusammen zu schneiden. Neben analogen Instrumenten, wie Gesang und Gitarre, sind auch MIDI-Daten vom E-Schlagzeug und externen Sythesizern, sowie Soft-Synths aus dem Rechner zu verarbeiten. Hier ein Erfahrungsbericht (nach etwas draft):

Folgende Software setze ich ein:

Daneben nutze ich ganz viel git, um der Daten auf den unterschiedlichen Rechnern Herr zu werden (Stichwort: music as code).

Anforderungen

Ein großes Thema in der Audioproduktion mit dem Computer sind Latenzen. Diese sind bei der Aufnahme möglichst gering zu halten. Beim reinen Abspielen stören sie jedoch nicht.

Meine Anforderung ist zusätzlich, dass eine Weiterbearbeitung der Daten in unterschiedlichen Umgebungen (Soundkarten, PCs, Laptops) erfolgen muss, denn jeder Rechner hat seine Stärken (Rechenleistung, Portabilität).

Die Anforderungen sind im Detail:

Tipps zur Konfiguration

Anbei ein paar allgemeine Tipps zur streßfreien Verwendung von Linux in (meinem) Audioumfeld.

In der Datei ist zu setzen:

autospawn = no

Nun kann der pulseaudio-Prozess "gekillt" werden, ohne dass sofort eine neuer startet. Anmerkung: Beim Schneiden von Videoaufnahmen mit Kdenlive ist pulseaudio wieder zu aktivieren. Sonst hört man keinen Ton.

Sind meine Aktionen zeitkritisch, so verwende ich Ubuntustdio. Die Bedienung des X-AIR-18 Inetrfaces ist nicht zeitkritisch. Daher erledige ich diese unter einem Standard Debian-Stable, oder Raspbian (Behringer bietet die X-AIr18-Software auch für die ARM-Architektur an. Auf einem Raspberry PI ist die Software hinreichend schnell.

Anpassung Debian 9

Will man nur Noten bearbeiten so ist Echtzeitverarbeitung nicht notwendig. Rosegarden benötigt jedoch lilypond für den Notendruck. Das ist in Debian Stretch nicht enthalten. Gemäß https://www.reddit.com/r/lilypond/comments/8ivxge/lilypond_in_debian_stretch/ kann man es jedoch einfach aus den Backports nachinstallieren:

grep backports /etc/apt/sources.list
  deb http://ftp.debian.org/debian stretch-backports main

apt-get update 
apt-get -t stretch-backports install lilypond

Installation Raspbian

Download der Software unter https://www.raspberrypi.org/downloads/raspbian/

unzip 2018-06-27-raspbian-stretch.zip

Unter /var/log/messages bestimmen welches Devicname der SD-Karte erhält, wenn sie eingesteckt wird. Wird ein externer Kartenleser verwendet, so lautet der Name häufig /dev/sdc oder ähnlich. Bei dem internen Kartenleser meines T420s-Laptops lautet der Name des devices /dev/mmcblk0

dd bs=4M if=2018-06-27-raspbian-stretch of=/dev/mmcblk0 conv=fsync

Konfiguration Raspbian

Unter Raspberry-Pi-Configuration kann man den

Eventuell ist ein Proxy zu setzen mittels:

root@hal9003:~# cat /etc/apt/apt.conf.d/90custom 
Acquire::http::Proxy "http://foo.bar.de:8080";

aptitude install obconf

Installation X-Air Software

Für die digitale Mischpult-Serie von Behringer gibt es Steuersoftware für Linux. Die Steuersoftware liegt für die Intelarchitektur 32bit und neuerdings auch in 64bit vor. Auch für den Raspberry-Pi gibt es eine Version.

Man kann die Software auf der Behringer Homepage downloaden.

Xruns und Latenzen/Konfiguration jackd

Je nach Anforderung, setze ich unterschiedliche Hardware ein.

holzwurm: Selbstbau PC, Intel(R) Atom(TM) CPU D510, 2GB RAM, 120G SSD, Onboard Grapikkarte - Lüfterfreier PC. Erlaubt Gesangsaufnahmen ohne Nebengeräusche und XRuns. Aufgrund der hohen Latenz sind die Gesangsspuren nach der Aufnahme zu verschieben.

rocholl@holzwurm:~$ cat .jackdrc  64ms
/usr/bin/jackd -dalsa -dhw:X18XR18 -r48000 -p1024 -n3 -Xseq

hackepeter: Lenovo T420s, Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 8GB RAM, 250G SSD, Onboard Graphikkarte - Laptop zum Abmischen auf Reisen oder Aufnahmen mit ardour bei Auftritten. Wenn Ardour und X-Air-Edit gleichzeitig gestartet sind sidn trotz hoher Latenz keine Aufnahmen ohne XRuns möglich. Daher wird dieser Rechner nur für Aufnahmen verwendet.

rocholl@hackepeter:~$ cat .jackdrc # qjackctl Latenz 64ms
/usr/bin/jackd -dalsa -dhw:X18XR18,0 -r48000 -p512 -n6 -Xseq

rapante: Lenovo C20, Intel(R) Xeon(R) CPU X5675 @ 3.07GHz, 24G RAM, 1T Hardisk, NVIDIA Corporation GF106GL - unportable aber eierlegende Wollmilchsau, In diesem Setup kann Ardour, X-Air-Edit Rosegarden und fluidsynth auf einer Hardware mit geringen Latenzen ohne XRuns betrieben werden. Rechner ist jedoch nicht portabel und hat einen (leisen) Lüfter.

rocholl@rapante:~$ cat .jackdrc # JAckd Latenz 16ms
/usr/bin/jackd -dalsa -dhw:X18XR18 -r48000 -p256 -n3 -Xseq

raspbian: Kleiner Raspberry PI 3B+ für X-Air-Edit interface im Kellerstudio. Vorteil: Leise und billig. Nachteil: Zu schwachbrüstig für Ardour und Co.

piepmatz: Lenovo X220: Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz, 4GB RAM, 300GB Harddisk, Onboard Grapikkarte - 2. PC für X-Air-Edit interface auf Konzerten

Mit diesem kleinen Setup lässt sich nun nach ein paar Jahren Konfigurationsarbeit, im Kellerstudio udn auch Live, arbeiten. Es gibt keine Ausreden mehr :-). Jetzt wird also Musik gemacht.

Links

Anbei ein paar Links, die mir bei der Konfiguration geholfen haben: