Zrythm-Entwickler Alexandros Theodotou im Interview

Aus LinuxUser 06/2022

Zrythm-Entwickler Alexandros Theodotou im Interview

© quils / 123RF.com

Nachgefragt

Alexandros Theodotou arbeitet seit Ende 2018 an der Open-Source-DAW Zrythm, die sich der ersten offiziellen Version nähert. Im Interview erklärt uns der Entwickler seine Ziele und Motivation.

Es gibt verschiedene Motivationen, freie Software zu programmieren. Die meisten professionellen Entwicklerinnen und Entwickler arbeiten einfach für Unternehmen, die Software als Lösung für ihre Kunden anbieten und anpassen. Viele schätzen auch die Freiheit einer Kultur, in der nur die Qualität des Codes zählt und niemand nach Universitätsabschlüssen und Titeln fragt.

Alexandros Theodotou gehört wie viele andere in der Szene der freien Audiosoftware in beide Kategorien: Er arbeitete früher für Unternehmen, die Weblösungen auf Basis freier Software anbieten, und hat den Ehrgeiz, Audiosoftware unter Open-Source-Lizenzen in professioneller Qualität zu programmieren. Er hegt schlicht den in der Ingenieurskultur klassischen Wunsch, etwas zu bauen, das funktioniert und ganz nebenbei die eigenen Anforderungen bestmöglich erfüllt. Im Interview erzählt er davon.

LinuxUser: Erzählen Sie etwas über sich: Kommen Sie aus der Musikproduktion, und wenn ja, aus welchem Genre? Benutzen Sie Zrythm, um Ihre Musik oder die von anderen zu produzieren?

Alexandros Theodotou: Ich habe einen Abschluss in Computerwissenschaften und habe für einige Firmen als Entwickler für Webtechnologien gearbeitet. Zurzeit bin ich selbstständiger Übersetzer und konzentriere mich ansonsten auf die Arbeit an Zrythm. Ich habe seit meiner Schulzeit hin und wieder am Computer Musik gemacht – nur als Hobby, professionelle Erfahrung habe ich nicht wirklich. Alles, was ich über Musikproduktion weiß, habe ich im Selbststudium gelernt. Meist mache ich elektronische Musik in der EDM-Richtung.

Allerdings habe ich keine Musik mehr gemacht, seitdem ich vor ein paar Jahren zu GNU/Linux gewechselt bin, weil ich einfach zu sehr von den dafür verfügbaren DAWs frustriert war. Also konzentriere ich mich jetzt darauf, Zrythm Beta und dann die erste offizielle Version herauszubringen. Zrythm taugt im Moment noch nicht wirklich für ernsthafte Arbeit, aber das ändert sich demnächst mit der Beta-Version, die das Projektformat stabilisieren wird. Ich möchte Zrythm verwenden, um meine eigene Musik zu produzieren.

LU: Zrythm ist Cross-Platform. Arbeiten Sie selbst auf Linux, und wenn ja, mit welcher Distribution? Testen Sie die Builds auf allen drei großen Plattformen?

AT: Ich verwende Parabola GNU/Linux. Es ist im Grunde ein Arch Linux mit dem Linux-Libre-Kernel, zudem wurden unfreie Pakete entweder entfernt oder gepatcht. Ich benutze auch GNU GuixSD für einen großen Teil der Entwicklung von Zrythm. Ich teste manchmal auf verschiedenen Distributionen in Qemu. Außerdem habe ich alte Windows- und Mac-Maschinen, auf denen ich die Builds gelegentlich ausprobiere. Meistens verlasse ich mich aber auf Fehlerberichte der Benutzer, um Probleme zu finden, damit ich mich auf die Entwicklung konzentrieren kann.

LU: Sie schreiben Zrythm in**C mit GTK**4. Auf einer Skala von**0 (schlecht) bis**9 (perfekt) — welche Note würden Sie dieser Methode für die Entwicklung von Audiosoftware für mehrere Plattformen geben?

AT: Ich würde C jedem empfehlen. Die Sprache gibt dem Entwickler die Möglichkeit, mit dem Speicher ganz nach seinen Erfordernissen umzugehen. C lässt sich sehr einfach schreiben und verstehen, und fast jedes Entwicklungswerkzeug kommt damit gut zurecht. GTK 4 ist ein vielseitiges Toolkit, das ich für die Entwicklung von Desktop-Applikationen nur empfehlen kann. Die gute Dokumentation macht es einfach, fast jedes Widget zu implementieren. Es ist aber nicht wirklich einfach, Plugin-Oberflächen einzubinden.

Wenn Sie also eine DAW schreiben, müssen Sie selbst herausfinden, wie das am besten klappt, oder auf eine Bibliothek wie Juce oder Carla zurückgreifen, die diese Arbeit für Sie erledigt. (Anm.**d. Red.: Zrythm verwendet Carla und stellt Plugins auf dem Desktop als Carla-Instanzen dar.) GTK funktioniert plattformübergreifend, aber es kann sein, dass man auf Windows und MacOS noch einige Kleinigkeiten findet, die mehr Arbeit machen, da die meisten GTK-Entwickler GNU/Linux einsetzen. Alles in allem: Wenn ich von vorn anfangen müsste, würde ich immer noch C und GTK 4 verwenden. Ich gebe diesem Setup eine Punktzahl von 7.

LU: Es fällt auf, dass Zrythm mehr oder weniger alle Audio-Engines unterstützt, die es in Linux gibt — Alsa zwar nicht im Realtime-Modus, aber dafür sogar SDL. Ist die Abstraktion dieser Engines inzwischen so ausgereift, dass es keinen bedeutenden Aufwand mehr für Sie als Entwickler verursacht, alle zu implementieren?

AT: Ich glaube nicht, dass ich den Abstraktionscode der Anwendung über die Jahre viel verändert habe. Man kann sagen, dass die Abstraktion ziemlich ausgereift ist. Neue Audio-Engines lassen sich relativ einfach hinzufügen, ohne dass man viel über die Interna von Zrythm wissen muss. Man kann eine Audio-Engine innerhalb von ein paar Tagen bis maximal in einer Woche implementieren. Die Alsa-Engine-Implementierung ist schon seit Langem kaputt, und ich habe nicht vor, sie in nächster Zeit zu reparieren. Wenn jemand Interesse hat, kann er es gern tun, aber ich denke, es ist Zeitverschwendung. Jack und Pulseaudio decken alle Bedürfnisse ab, sodass es keinen Grund gibt, so etwas Systemnahes wie Alsa zu benutzen.

LU: Wir haben Zrythm auf Ubuntu Studio mit praktisch unveränderten Einstellungen und dem werksseitigen Low-Latency-Kernel getestet. Zrythm bietet Jack RtAudio und Jack an, beide funktionierten einwandfrei, aber das Verbinden von Jack-Quellen mit Eingängen funktioniert nur mit Jack (ohne RtAudio). Welche Engine würden Sie aus Ihrer Entwicklungsperspektive empfehlen, und warum?

AT: Sie sollten Dinge wie Audio- und MIDI-Geräte eigentlich nicht manuell mit Zrythm verbinden: Die DAW verwaltet ihre Geräteverbindungen selbst. Die einzige Ausnahme: Wenn Sie etwas von einer anderen Anwendung aufnehmen wollen, würden Sie das Signal an den Eingang der Spur für die Aufnahme leiten (siehe Kasten “Verkabelung gehackt”). Das sollte aber nur eine temporäre Verbindung sein, tatsächlich speichert Zrythm solche Verbindungen nicht im Projekt. Jack ist überall die empfohlene Audio-Engine, auch unter Windows und MacOS. Sie arbeitet auch transparent mit Pipewire zusammen.

LU: Wie sieht die Roadmap für Zrythm aus? Wann hoffen Sie, die erste Beta des Projekts fertig zu haben?

AT: Alle für die Beta-Version vorgesehenen Funktionen waren Mitte April bereits implementiert. Ich bin jetzt dabei, ein paar verbleibende Fehler zu beheben und sollte die Beta-Version bald veröffentlichen können. Ich denke es sollte Mitte Mai soweit sein, wenn mir nicht andere Dinge dazwischenkommen. Die Roadmap [1] finden Sie auch im Issue Tracker [2]. Die als “beta” getaggten Dinge sind für die anstehende Beta-Version eingeplant. Mit “v1” markierte Themen fasse ich für die stabile Version 1 ins Auge. Daneben gibt es noch einige Einträge für spätere Versionen.

LU: Haben Sie vielen Dank für diese aufschlussreichen Einblicke in die Entwicklung! (cla)

Verkabelung gehackt

Alexandros Theodotou rät davon ab, Audio- und Midi-Verbindungen zum Jack-System außerhalb von Zrythm (etwa mit Carla) anzulegen. Nutzer sollten vermeiden irgendetwas Externes zu verwenden, um Geräte an Zrythm anzuschließen. Er betont jedoch, man könne jede beliebige Jack-Patchbay einschließlich Carla einsetzen, um Signale von anderen Anwendungen für die Aufnahme zu verbinden. Die Carla-Bibliothek kommt nur intern zum Einsatz, um Plugins zu laden.

Im Test stellt sich allerdings heraus, dass das zwar für Midi-Geräte tadellos funktioniert, für die Eingänge von Audiospuren hingegen gar nicht. Alle möglichen Versuche und Kombinationen von Einstellungen schlugen fehl; Zrythm wollte von den Audiosignalen unseres Sound-Interfaces nichts hören.

Ein Blick in Carlas Patchbay zeigte dann allerdings, dass das Programm die Jack-Ports an sich korrekt aufgebaut hatte. So war es kein Problem mehr, sie zu verkabeln (Abbildung 1). Auf diese Weise gelegte Verbindungen speichert Zrythm allerdings nicht im Projekt, sodass Sie sie bei jedem Neustart neu aufbauen müssen.

Abbildung 1: Außer Hardware-Ports, wie hier von einem Soundcraft-USB-Interface, lassen sich in Carla auch laufende Jack-Anwendungen wie Guitarix oder CALF Limiter mit den Spureingängen von Zrythm verbinden.

Abbildung 1: Außer Hardware-Ports, wie hier von einem Soundcraft-USB-Interface, lassen sich in Carla auch laufende Jack-Anwendungen wie Guitarix oder CALF Limiter mit den Spureingängen von Zrythm verbinden.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2022 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
Nach oben