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 Synthesizern, sowie Soft-Synths aus dem Rechner zu verarbeiten. Hier ein Erfahrungsbericht.
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).
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:
Anbei ein paar allgemeine Tipps zur streßfreien Verwendung von Linux in (meinem) Audioumfeld.
scaling_governor
s in den performance-Mode vermindert die Anzahl der XRuns deutlich. Das kleine Shellskript set_cpuperformance.sh setzt diesen Modus für jeden Prozessorkern.dpkg-reconfigure -p high jackd2
erlaubt Mitgliedern der Gruppe audio diesen Modus zu verwenden.Pulseaudio führt bei zeitkritischen Anwendungen im Verbund (Rosegarden,Ardour,Fluidsynth,X-Air-Edit und Hardware-Sythesizern ) immer zu XRuns. Daher deaktiviere ich pulseaudio, wie folgt:
cp /etc/pulse/client.conf $HOME/.config/pulse/client.conf
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.
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
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
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.
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 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 8,71ms
/usr/bin/jackd -v -dalsa -dhw:X18XR18,0 -r44100 -p128 -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
schnippedilrichman: Lenovo T430, Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz, 4GB RAM, 170G SSD, Onboard Graphikkarte, Gnome Classic, Bildschirmschoner aus, jackdbus deaktiviert - Laptop als Gitarrenverstärker (guitarix, Audiointerface Behringer U-Phoria UMC204HD)
rocholl@schnippedilrichman:~$ cat .jackdrc # qjackctl Latenz 2.67ms
/usr/bin/jackd -dalsa -dhw:U192k -r48000 -p64 -n2
mrcrabs: Lenovo ThinkPad Yoga 370, Intel(R) Core(TM) i5-7300U CPU @ 2.60GHz, 8GB RAM, 500G SSD, Onboard Graphikkarte, Cinnamon
rocholl@mrcrabs:~$ cat .jackdrc # gjackctl Latenz 4.35ms
/usr/bin/jackd -dalsa -dhw:X18XR18 -r44100 -p64 -n3 -Xseq
lithium: Lenovo ThinkStation P340, Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz, 32GM RAM, 500 GB SSD, Onboard Graphikkarte, Debian 11 GNOME3
rocholl@lithium:~$ cat .jackdrc # gjackctl Latenz 1.45ms
/usr/bin/jackd -dalsa -dhw:U192k -r88200 -p64 -n2 -Xseq
oxygen: Lenovo ThinkPad T480, Intel(R) Core(TM) i5-8350U CPU @ 1.70GHzm 8GB RAM, 256GB SSD, Debian 11, Gnome 3
rocholl@oxygen:~$ cat .jackdrc # 8.71ms
/usr/bin/jackd -dalsa -dhw:U192k -r88200 -p256 -n3 -Xseq
Mit diesem kleinen Setup lässt sich nun nach ein paar Jahren Konfigurationsarbeit, im Kellerstudio und auch Live, arbeiten. Es gibt keine Ausreden mehr :-). Jetzt wird also Musik gemacht.
Onboard-Soundkarten besitzen normalerweise einen schlechte Audio-Qualität. Benutzt man nur eine externe Soundkarte, so kann man die interne getrost deaktivieren.
In der Praxis hat sich auch gezeigt, dass die Verwendung von 2 Soundkarten zur Verwirrung führt. Ardour 6 kann beispielsweise mit 2 Soundkarten umgehen und ich habe noch nicht rausgekriegt, wie ich deren Verwendung im Detail konfugurieren kann.
Blacklistet man den Treiber der internen Soundkarte, so ist diese nach dem Reboot nicht mehr verfügbar.
Vor dem Reboot:
rocholl@schnippedilrichman:~# cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xd2530000 irq 36
1 [U192k ]: USB-Audio - UMC202HD 192k
BEHRINGER UMC202HD 192k at usb-0000:00:1d.0-1.5.2, high speed
Deaktivieren der Soundkarte:
root@schnippedilrichman:~# cat /etc/modprobe.d/blacklist.conf
# disable my PCI intel sound card
blacklist snd_hda_intel
Nach dem Reboot :
rocholl@schnippedilrichman:~$ cat /proc/asound/cards
1 [U192k ]: USB-Audio - UMC202HD 192k
BEHRINGER UMC202HD 192k at usb-0000:00:1d.0-1.5.2, high speed
Ardour 6.2 hat viele Verbesserungen unter der Haube. Es empfiehlt sich direkt diese Version zu verwenden. Debian unstable hat diese Version bereits paketiert. Falls die eigene Distrubution kein Ardour 6.2 dabei hat, kann Ardour als Binary von der Homepage heruntergeladen werden.
Es ist jedoch auch einfach möglich sich Ardour einfach selbst zu kompilieren.
Unter Ubuntustudio sind einige Pakete nachzuinstallieren.
apt install libboost-dev libasound2-dev libpulse-dev libglibmm-2.4-dev libsndfile1-dev libcurl4-gnutls-dev libarchive-dev liblo-dev \
libtag1-dev librubberband-dev libfftw3-dev libaubio-dev libxml2-dev liblrdf0-dev libsamplerate0-dev lv2-dev libserd-dev libsord-dev \
libsratom-dev liblilv-dev libgtkmm-2.4-dev libsuil-dev libjack-jackd2-dev libudev-dev libwebsockets-dev libcppunit-dev \
libreadline-dev libusb-dev vamp-plugin-sd chrpath libclang-dev libsoundtouch-dev libdbus1.0-cil-dev
Dann braucht man nur noch der Installationsanleitung unter https://ardour.org/building_linux.html zu folgen.
Anbei ein paar Links, die mir bei der Konfiguration geholfen haben: