DIY: Zynthian V4 Upgrade Raspberry Pi 4 und ZynthianOS

12. März 2021

Ernstzunehmendes Power-Upgrade

Das Zynthian Upgrade auf Raspberry Pi 4 und das aktuelle ZynthianOS musste einfach einen neuen Workshop bekommen, nachdem der ursprüngliche Workshop vom Januar 2020 doch recht erfolgreich war.

Dieser Workshop beleuchtet die technische Seite des Zynthian Upgrade auf Raspberry Pi 4 und gibt einige Hilfestellungen; es ist also ein Artikel, den nicht jeder vergnüglich finden wird. Wer also eher an dem Ergebnis interessiert ist, sollte dann weiter unten nachlesen ab „Beurteilung des Performance-Gewinns durch die neue Hardware“.

Die Aufgabe: Raspberry Pi 4

Nun, seit einiger Zeit gibt es den Raspberry Pi 4, der nicht nur mehr Rechenleistung bereitstellt, sondern auch mit RAM-Optionen bis zu 8 GB zu haben ist. Gerade für die Anwendung als Soundfont-Player, der alle Daten direkt ins RAM liest, da nicht gestreamt werden kann, ist das natürlich ein unwiderstehliches Upgrade.

Die Zynthian Upgrade auf Raspberry Pi 4 besteht aus vier Teilen:

  • Sicherung der Daten und Konfiguration vom alten System, dem V3 Kit
  • Austausch der Hardware und Anpassung des Gehäuses für das V3 Kit
  • Installation des aktuellen ZynthianOS und Installation der Sicherungen
  • Beurteilung des Performance-Gewinns durch die neue Hardware

Zynthian V3 – ein Jahr lang ein treuer Begleiter

Bevor wir damit Schritt-für-Schritt beginnen, möchte ich kurz meine Erfahrungen mit dem Zynthian V3 im letzten Jahr schildern. Zunächst mal hat er mir zuverlässig auf jeder Probe astreinen Klang beschert und lief immer zuverlässig (bis auf die im ersten Teil beschriebenen Unzulänglichkeiten). Allerdings hatte ich anfangs etwas Probleme mit der Leistungsfähigkeit (weshalb mich das Upgrade besonders freut): Mein Software-Setup besteht aus zwei FluidSynth Soundfont-Playern mit mittelgroßen Soundfonts (E-Piano 80 MB und verschiedene Flügel ca. 150 MB) und einem ZynAddSubFX-Synth + TAL-Reverb und -Chorus. Die Pianos spiele ich über eine Doepfer PK88-Tastatur, den Synth über ein Novation Launchpad-X. Das Launchpad übernimmt auch die Aufgabe des MIDI-Controllers, um Effekte für das E-Piano zu bedienen.

Wenn ich nun Passagen mit vielen gehaltenen Noten gespielt hatte und gleichzeitig auch noch Flächen über den Synth gespielt habe, kam es zu sogenannten X-Runs, d. h. einfachen Audio-Aussetzern, da die Hardware anscheinend nicht mehr mitkam. ABER nach einiger Zeit jedoch, ging mir ein Licht auf, dass es auch daran liegen könnte, dass das Launchpad X dem Raspberry Pi 3 etwas zu viel Strom abverlangen könnte – schließlich sind da ja bis zu 64 RGB-LEDs am Werk. Also kaufte ich mir ein USB-Y-Kabel für die USB-Versorgung, so dass das Launchpad X sein eigenes Netzteil bekam. Ab diesem Zeitpunkt hatte ich keine Probleme mehr mit den X-Runs – die Wahl der Stromversorgung ist also extrem wichtig für eine reibungslose Funktion. Dennoch gab es einige ZynAddSubFX-Programme, die den Zynthian überfordert haben.

Wie man sieht, zeigt das folgende Bild, dass bei etwas mehr Effekten in der MOD-UI es durchaus schnell zu Problemen kommen kann – experimentelleren Setups bleibt so die die Tür verschlossen.

Der Pi3 kommt hier schon ins Schwitzen

Der Pi3 kommt hier schon ins Schwitzen. Es laufen jedoch noch 3 Synths und 2 FX im Hintergrund.

Grundsätzlich brauche ich Live zwar nicht übermäßig viel Effekte – ein Verzerrer, ein Ringmodulator in der MOD-UI reichen mir, da ich auch noch externe Effekte benutze – aber manchmal möchte man doch mal ein wenig „abdrehen“ und z. B. mehrere Delays koppeln oder ähnliches.

Sicherung der Daten und Konfiguration vom alten System

Benutzt man dieselbe SD-Karte, empfiehlt es sich, davon zunächst ein Image zu erstellen. Für Mac- und Linux-User kann das über die Konsole und dem „dd“-Befehl erreicht werden:

sudo dd if=/dev/sdX of=~/image-of-usb.img

In diesem Fall ziehe ich aber Win32DiskImager vor.

Falls irgendetwas schiefläuft, hat man so immer noch ein Sicherheitsnetz. In meinem Fall möchte ich sowohl die SD-Karte wechseln (von 16 GB auf 32 GB) als auch das neuste ZynthianOs nutzen.

Damit das Zynthian Upgrade auf Raspberry Pi 4 möglichst reibungslos verläuft, habe ich zunächst erstmal die Sicherungsfunktionen in der Web-Konfiguration bemüht. Dabei ist vor allem darauf zu achten, welche Dinge man sichert.

Eine Sicherung der Soundfonts über die Web-Konfiguration ist zwar grundsätzlich möglich, aber ab einer gewissen Anzahl und damit Größe streckt der Browser dabei seine Fühler. Deswegen habe ich mit folgenden Einträgen die Soundfonts von der Sicherung zunächst ausgeschlossen.

/zynthian/zynthian-my-data/soundfonts/sf2

Um die Soundfonts zu sichern, bin ich dann über das Terminal und eine SSH-Verbindung (Secure Shell) gegangen. Mac- und Linux-User haben das bereits eingebaut, auch Windows 10 sollte es mittlerweile besitzen (hier sollte man fündig werden).

Wenn nicht, kann man für Windows PuTTy installieren.

Wie gesagt, man MUSS das nicht machen, die Soundfonts hat man ja sicher auf einer Festplatte und kann die nachher einfach wieder über die Web-Konfiguration aufspielen – ich hielt es hier aber für sinnvoller. Mit dem folgenden Kommando kopiert man alle Soundfonts in einen Ordner seiner Wahl. Man ist dabei nicht auf dem Zynthian eingeloggt.

scp -r root@zynthian.local:/zynthian/zynthian-my-data/soundfonts ~/

Hier landen die Dateien auf der lokalen Festplatte

Hier landen die Dateien auf der lokalen Festplatte

Ein Wort der Vorsicht und ein Spoiler

Bei einem Backup sollte man immer möglichst penibel vorgehen – nichts ist ärgerlicher als Daten oder Setups, in unserem Fall Sounds, zu verlieren. Da der Workshop als Anleitung gedacht ist, möchte ich hier gleich eine Beobachtung teilen, die mir bei dem Upgrade aufgefallen ist: Das neue ZynthianOS organisiert die Layer anders als noch die Version von 2019. Als erstes Layer steht nun immer die MOD-UI. Leider das wird beim Rückspielen der Sicherungen offenbar nicht beachtet, denn das zuvor erste Layer (bei mit das Rhodes) verschwindet einfach. Man sollte also vor dem Backup irgendwie noch ein Dummy-Layer an die erste Stelle quetschen, falls möglich. Auf jeden Fall helfen Screenshots oder Fotos der eigenen Layer-Konfigurationen.

Folgende Zeilen habe ich in der Web-Konfiguration genutzt, um meine User-Daten zu sichern:

${ZYNTHIAN_MY_DATA_DIR}
${ZYNTHIAN_MY_PLUGINS_DIR}
${ZYNTHIAN_SW_DIR}/mod-ui/dados/favorites.json
/root/.local/share/Modartt

Austausch der Hardware und Anpassung des Gehäuses für das V3 Kit

Kommen wir damit zur Hardware und einer für mich unbegreiflichen Entscheidung der Macher des Raspberry Pi: Alle Iterationen des beliebten Ein-Platinen-Computers hatten bis jetzt dieselbe Anordnung der Hardware-Anschlüsse. Das ist auch sinnvoll, denn so sind die unzähligen RPi-Cases alle untereinander kompatibel. Beim Raspberry Pi 4 wurde das nun geändert!!! Geht es um die HDMI-Anschlüsse, kann man das noch in etwa nachvollziehen, denn es gibt nun zwei davon in der Micro-Ausführung. Bei der Anordnung der USB- und Netzwerkbuchsen ist das aber unbegreiflich und, wie ich finde unverzeihlich. Fazit ist einfach: Alle bisherigen Cases sind nicht mehr kompatibel und passen ohne Änderungen nicht mit dem Raspberry Pi 4 zusammen. Das Zynthian-V3-Gehäuse ist da keine Ausnahme.

Ok, genug geheult und den Satz Metallfeilen ausgepackt. Mit ein wenig Geduld und den passenden Feilen kann man das Gehäuse anpassen, sodass ein Raspberry Pi 4 wieder passt. Zunächst einmal die seitlichen Anschlüsse: USB und Netzwerk. Die Öffnung, die vorher den Netzwerkanschluss beherbergte, muss entsprechend vergrößert werden, damit der USB-Anschluss hindurch passt. Das heißt also immer wieder: feilen, schauen, einpassen, nachfeilen und noch mal nachschauen.

Wichtig ist es, das Gehäuse auf einer weichen Oberfläche zu platzieren, da es sonst zerkratzt und vor allem ruhig und gelassen zu bleiben, wenn man ungeduldig wird – ansonsten kommen unansehnliche Ergebnisse heraus. Diese Aktion hat etwa 20 Minuten gedauert. Das Ziel ist, dass die USB-Anschlüsse durch die vergrößerte Öffnung passen, ohne dass sie das Gehäuse berühren – digitale und analoge Masse sollen getrennt voneinander bleiben.

Auch der USB-C-Eingang für die Stromversorgung und die Öffnung für den HDMI-Eingang müssen erweitert werden – hierzu braucht man natürlich kleinere Feilen, die grobe Kelle tut‘s da nicht.

Apropos USB-C. Wenn man den neuen Raspberry Pi 4 bestellt, sollte man unbedingt daran denken, ein USB-C-Kabel mitzubestellen, wenn man keines zu Hause herumfliegen hat – ich hatte es bei der Bestellung vergessen.

Nun gut, ich bin mit dem Ergebnis leidlich zufrieden. Wer möchte, kann die blanken Stellen mit einem schwarzen Permanentmarker oder etwas Lack kaschieren.

Installation des aktuellen ZynthianOS und Installation der Sicherungen

Von der offiziellen Zynthian-Wiki ziehe ich mir das aktuellste ZynthianOS, zum Zeitpunkt des Upgrades war das „2020-09-05-zynthianos-buster-lite-armhf-1.0.0“. Auf der Seite erfährt man auch alles über die Installation, deswegen hier nur in Kürze: Benötigt wird mindestens eine 16 GB SD-Karte, je schneller, desto besser. Ich habe mir eine 32 GB HC I (10) gegönnt, damit ich mehr Platz für Soundfonts habe.

Nach dem Entpacken kann man das Image nun auf dem Mac mit Balena Etcher auf die Karte spielen, Windows-Nutzer können hier wieder auf Win32Disk-Imager zurückgreifen. Das Ganze dauert ca. 20 Minuten. Für einen ersten Test stecke nun die Teile des Zynthian zusammen und achte darauf, dass es keine Kurzschlüsse gibt. So erspare ich mir Ärger, würde etwas nicht funktionieren und ich hätte alles schon wieder zusammengeschraubt.

Zynthian Upgrade auf Raspberry Pi 4 - Test sicher OK

Alles gut gegangen – jetzt kann es weitergehen

Um die Chips ein wenig zu kühlen, habe ich mir noch einen Satz Passivkühler zum Aufkleben geholt – leider waren die ursprünglich für den Pi3 gedacht, sodass mir jetzt ein Kühler fehlt. Besser als nichts ist es allemal.

Wie es aussieht, ist alles glatt gegangen und ich kann diesen Teil des Zynthian Upgrade auf Raspberry Pi 4 abschließen. Also Gehäuse wieder zusammengeschraubt und weiter im Text.

Erster Schritt: Soundfonts zurückspielen. Mit folgendem Kommando über das Terminal kopiere ich alle Soundfonts zurück auf den Zynthian.

scp -r ~/soundfonts root@zynthian.local:/zynthian/zynthian-my-data

Nach dem Aufruf der Web-Konfiguration kann ich deren Installation auch sofort nachprüfen. Allerdings wird es beim ersten Verbinden nach dem Zynthian Upgrade auf Raspberry Pi 4 ein Problem geben. Der SSH-Login wird ja immer noch über root@zynthian vorgenommen – die Hardware ist aber nun eine andere. Deswegen warnt der Rechner vor einer Spoofing-Attacke und verweigert zunächst eine Verbindung.

Achtung Spoofer entdeckt: die neue Hardware im Zynthian verlangt ein neues Sicherheitszertifikat

Achtung, Spoofer entdeckt: Die neue Hardware im Zynthian verlangt ein neues Sicherheitszertifikat

Da man sich ja sicher sein kann, selber der „Spoofer“ zu sein, ist es erforderlich, den Rechner davon in Kenntnis zu setzen. Am einfachsten geht das, indem man den „alten“ Zynhtian aus der Known Hosts Konfiguration schmeißt. Dazu gibt man bei MacOs und Linux im Terminal

pico /Users/DEINUSERNAME/.ssh/known_hosts

(Möchte man den Standard-Texteditor nutzen geht auch:)

open -e /Users/DEINUSERNAME/.ssh/known_hosts

ein.

Das öffnet einen Editor. Jetzt sucht man einen Eintrag, der mit „zynthian.local“ beginnt und löscht diesen komplett aus der Datei. Danach abspeichern und nun funktioniert auch die SSH-Verbindung wieder. Wenn man sich sicher ist, dass man SSH nur für Zynthian nutzt, kann man die Datei auch einfach löschen.

Windows-Nutzer sollten diese Datei unter

%USERPROFILE%\ssh or %USERPROFILE%\.ssh

finden.

Zweiter Schritt: Layer-Snapshots und Gerätekonfigurationen zurückspielen. Nun suche ich im Backup-Abschnitt einfach die zuvor gemachten Sicherungen und spiele sie über die Restore-Option zurück – fertig. Nun leider nur im Prinzip, denn wie schon vorher erwähnt, ist die Layer-Struktur geändert worden, was verhindert, dass die Layer-Snapshots korrekt übernommen werden.

Hier werden die Backups wieder zurückgespielt

Na gut, es war ja nicht die Welt und außerdem habe ich noch Screenshots von den MOD-UI- und den Layer-Setups gemacht. Interessanterweise sind die MOD-UI-Setups alle übernommen worden und auch die MIDI-Zuweisungen sind erhalten geblieben – das erspart eine Menge Arbeit. Ebenso sind die Gerätekonfigurationen übernommen worden. Festzuhalten bleibt: Die Übernahme der Backups ist nicht perfekt, aber immerhin ein Ausgangspunkt.

Beurteilung des Performance-Gewinns durch die neue Hardware

Zunächst fällt mir auf, dass die Oberfläche responsiver wirkt, es geht einfach alles etwas flotter. Dann aber zum eigentlichen Test: Wie schlägt sich der Zynthian Upgrade auf Raspberry Pi 4 in der Praxis? Da es in der MOD-UI dafür extra einen CPU- und RAM-Meter gibt, habe ich hier Test-Setup zusammengestellt und auf beiden Versionen laufen lassen.

Der Pi4 wirkt bei der selben Aufgabe wie oben der Pi3 recht entspannt

Der Pi4 wirkt bei derselben Aufgabe wie oben der Pi3 recht entspannt

Und ja – das Ergebnis kann sich sehen lassen! Anstatt einer CPU-Auslastung von 100 % und einer Speicherbelegung von 52 %, glänzt das Zynthian Upgrade auf Raspberry Pi 4 hier mit einer CPU-Auslastung von 31 % und einer Speicherbelegung von schlappen 7 %! Nicht zu vergessen, dass im Hintergrund noch zwei FluidSynth-Instanzen und ein ZynAddSubFx und Reverb sowie ein Chorus laufen.

Einige weitere Tests und Beobachtungen

Zunächst einmal konnte ich einen unglaublichen Zuwachs an LV2-Plug-ins feststellen. Inzwischen sind es 972 Plug-ins, vorher waren es „nur“ 556 an der Zahl. Um Konkret auf eine Frage von User Bluebell einzugehen: Ja – es ist sowohl das LV-2-Reverb Klangfalter, als auch das Dragonfly-Reverb in den Varianten Early, Hall, Plate, Room nun mit dabei. An dieser Stelle, vielen Dank übrigens für den Tipp, die klingen wirklich gut!

Zynthian Upgrade auf Raspberry Pi 4 - Pi4 test sicher

Vorsicht beim „freifliegenden“ Test – der Pi4 darf nicht mit dem Gehäuse in Kontakt kommen

Was mich persönlich richtig gefreut hat ist, dass mit dem LV2-Plug-in „ZamGrains“ nun auch ein Granular-FX mit dabei ist – das ist immer gut zu gebrauchen, wenn man mal so richtig am Rad drehen möchte! Generell hab ich mich richtig ausgetobt, aber den Zynthian mit der MOD-UI nie in die Knie zwingen können, jedenfalls nicht bei einer praxistauglichen Anzahl an Plug-ins – irgendwann kann man jedes System überlasten.

Als nächstes ist eine Runde Synth-Plug-ins dran. Dazu lade ich das etwas anspruchsvollere OB-XD-Plug-in, eine vom Oberheim OB-X inspirierter Soft-Synth. Problemlos kann ich die maximale Stimmzahl von acht Stimmen nutzen – aber da muss noch mehr gehen. Also packe ich noch einmal einen OB-XD drauf und layere ihn mit dem anderen … und noch einen. Jetzt sind also 24 Stimmen am Start und nicht der geringste Hinweis auf X-Runs, selbst bei extensiver Nutzung des Sustain-Pedals!

Danach mache ich noch einen Versuch und nutze vier verschiedene LV2-Synths, alle in einer Layer-Konfiguration. Auch hier keine X-Runs. Ein letzter Test. In meiner Bühnen-Konfiguration habe ich zwei FluidSynth Soundfont-Player und einen ZynAddSubFX. Beim Raspberry Pi 3 war es noch so, dass das ZynAddSubFX-Preset „inna bell“ den Zynthian schon bei drei Noten gleichzeitig überlastet hat. Es wurden zwar keine X-Runs angezeigt, die Audiounterbrechungen waren aber mehr als deutlich. Nach dem Zynthian Upgrade auf Raspberry Pi 4 nicht mehr. Sogar zehnstimmige Akkorde ringen dem Zynthian nur ein müdes Lächeln ab.

Eine Sache bleibt noch zu erwähnen: Nach dem Zynthian Upgrade auf Raspberry Pi 4 besitzt der Zynthian nun auch eine USB-MIDI-Host-Verbindung. Man kann ihn also ganz regulär per USB-MIDI von der aus DAW steuern. Ebenso können schon länger Class-Compliant-Audiokarten angeschlossen werden.

Allgemeine Stabilität

Ich will nicht lügen – auch mit dem neuen OS und dem Raspberry Pi 4 ist das Zynthian-Projekt noch kein professionelles Produkt; dafür ist die ganze Angelegenheit einfach noch zu wackelig. Vor allem, wenn man Layer-Konfigurationen löschen möchte, in denen die MOD-UI beteiligt ist, kommt es öfter zu Hängern und man muss einen Power-Cycle einlegen. Nach einer Weile gewöhnt man sich an das, was geht und das, was nicht geht und arbeitet „drumherum“. Aber das kann für jeden anders aussehen. Mein Setup ist ein wenig speziell, da ich ein FluidSynth-Layer in die MOD-UI schicke, und die anderen beiden daran vorbei. Hat man aber erst mal eine Konfiguration gefunden, ist diese auch stabil. Wie gesagt – ich hatte in dem Jahr keinen einzigen Ausfall, hatte allerdings auch nichts an der Konfiguration geändert.

Fazit

Das Upgrade lohnt sich auf jeden Fall – und am besten sollte man den Raspberry Pi4 mit 8 GB RAM dafür heranziehen. Auch mit der 4 GB Version wird man glücklich werden, alles darunter ist dann kaum noch ein RAM- aber immerhin noch ein CPU-Gewinn. Durch die veränderte Anordnung der Anschlüsse ist für das Zynthian Upgrade auf Raspberry Pi 4 auch ein wenig Handarbeit gefragt – der Aufwand hält sich aber in Grenzen. Mit ein paar Abstrichen ist auch die Migration der Layer-Snapshots und der anderen Einstellungen schnell gemacht. Jeder, der einen Zynthian sein Eigen nennt, sollte unbedingt dieses Upgrade in Erwägung ziehen.

Forum
  1. Profilbild
    bluebell  AHU

    Ob vielleicht in der RasPI-Community mal jemand ein DSP-Modul entwickelt, das z.B. die FFT und inverse FFT übernehmen könnte? Dann würden Plugins einiges an Rechenarbeit auslagern können.

Kommentar erstellen

Die AMAZONA.de-Kommentarfunktion ist Ihr Forum um sich persönlich zu den Inhalten der Artikel auszutauschen. Sich daraus ergebende Diskussionen sollten höflich und sachlich geführt werden. Haben Sie eigene Erfahrungen mit einem Produkt gemacht, stellen Sie diese bitte über die Funktion Leser-Story erstellen ein. Für persönliche Nachrichten verwenden Sie bitte die Nachrichtenfunktion im Profil.