Ultraschall unter Manjaro Linux installieren

Hallo Zusammen,

hier das versprochene Tutorial, bzw. die Anleitung, wie man Reaper/Ultraschall unter Manjaro-Linux installiert bekommt.
Der Prozess ist relativ einfach und gleidert sich in nicht einmal 10 einzelschritte.
Alle Schritte werden auf der Konsole ausgeführt.

Also fangen wir mal an:

Schritt 1: Benötigte Packete installieren und das System Updaten
Den folgenden Befehl zweimal ausführen und die Abfrage bezüglich der Buildpackete einfach mit {ENTER} (Alle) bestätigen.

sudo pacman -Syyu base-devel cmake pandoc ninja libxrandr libxinerama libxcursor alsa-lib

Anschließend sollte das System einmal neu gestartet werden um sicher zu gehen, dass auch wirklich alles Up-To-Date ist und nicht zufällig eine Komponente die benötigt wird ausversehen nicht registriert wurde.

Nach dem Neustart wieder die Konsole öffnen

Schritt 2: Reaper runterladen und installieren
Die folgenden Befehle in die Konsole eingeben und ausführen:

cd ~
mkdir tmp
cd tmp
wget https://www.reaper.fm/files/6.x/reaper627_linux_x86_64.tar.xz
tar -xvf reaper627_linux_x86_64.tar.xz
cd reaper_linux_x86_64
sudo ./install-reaper.sh

Ich empfehle die Option i zu wählen und anschließend die Option mit der Reaper in /opt installiert wird.
Die Desktop-Integration kann ich auch nur empfehlen, da hierdurch Reaper im Application-Menu auftaucht und man nicht immer über die Konsole Reaper starten muss.

Nach der Installation wird zu erst einmal ein wenig aufgeräumt mit den beiden Befehlen

cd ~
rm -R tmp

dadurch wird das Verzeichnis welches wir für die Installationsdateien angelegt hatten gelöscht.

Jetzt sollte man Reaper einmalig starten, damit die Config-Datein alle angelegt werden. Sobald Reaper läuft kann man die Anwendung gleich wieder schließen, da die Config-Datein beim ersten Starten automatisch im Nutzer-Verzeichnis unter „.config/REAPER“ angelegt werden.
Reaper starten kann man entweder über das Application-Menu, oder über die Konsole mit dem Befehl

reaper

Nachdem man Reaper wieder beendet hat und zurück in seiner Konsole ist, geht es auch schon weiter mit dem nächsten Schritt.

Schritt 3: Ultraschall-Installer vorbereiten
Um den installer kompilieren zu können müssen wir uns zunächst den Quellcode von GitHub runterladen und anschließend 2 Dateien editieren, damit der CMAKE den den Quellcode auch kompilieren lässt.

Mit den folgenden Befehlen erstellt man ein eigenes Verzeichnis für den Quellcode und lädt diesen direkt runter.

cd ~
mkdir src
cd src
git clone https://github.com/Ultraschall/ultraschall-installer
cd ultraschall-installer/linux

in diesem Verzeichnis müssen wir nun die Datei build.sh editieren und die Abhängigkeitsprüfung auskommentieren.

nano build.sh

Anschließend müssen wir die Datei build.sh einmal ausführen

./build.sh

damit die notwendigen Komponenten heruntergeladen werden. Die Ausführung wird bei der OS-Prüfung mit einer Fehlermeldung abbrechen, welche uns sagt, dass unser Betriebssystem nicht unterstützt wird. Diese Prüfung werden wir nun editieren, damit unser Betriebssystem wie durch Zauberhand unterstützt wird.

Dafür editieren wir eine Datei namens CMakeList.txt mit dem Befehl

nano ~/src/ultraschall-installer/linux/build/ultraschall-plugin/CMakeLists.txt

In der Datei suchen wir uns die Zeile, welche „[U|u]buntu“ enthält und ändern einfach den gefragten Wert in „[L|l]inux“ um.

anschließend die Datei speichern und die build.sh datei von vorhin noch einmal ausführen mit dem Befehlen

cd ~/src/ultraschall-installer/linux/
./build.sh

Jetzt wird Ultraschall auch schon kompiliert. Die Warnungen die Auftauchen ignorieren wir ganz geschickt indem wir 5 Minuten einen Kaffe trinken gehen, damit wir die „Use befor deklare“ und die „Null as NULL-Reference“ warnungen nicht mitbekommen. Am Ende würden wir uns nur gedanken über die Code-Qualität machen

Jetzt wo Ultraschall kompilliert ist, können wir es auch bereits installieren. Hierfür müssen wir nur noch zwei befehle in die Konsole tipen und ausführen.

mit dem Befehl in das Verzeichnis wechseln

cd ~/src/ultraschall-installer/linux/build/R5.1.0-preview

und dort direkt mit

./install.sh

Anschließend kann man zur Kontrolle, ob auch wirklich alles installiert wurde reaper einmal starten und sich davon überzeugen, dass Reaper und Ultraschall vorhanden sind.
Ach ja, Studiolink wird auch gleich mit installiert und funktioniert. =)

Lieben Gruß

Stefan

9 „Gefällt mir“

Ich versuchte das ganze auf einem Raspberry Pi (Manajaro, Arm64) und es klappt auch schon bis zur Verwendung;

Hier bin ich auf folgende Probleme gestoßen:

  • Die mitgelieferte Reapack binary ist nicht für die ARM Variante; Abhilfe: Einfach Version von https://reapack.com/ laden und Datei aus $HOME/.config/REAPER/... löschen
  • Aber: js_ReaScriptAPI gibt es (noch) nicht fertig kompiliert für Arm; Dabei gibt es eine problematische Referenz auf eine nicht gefundene Bibliothek. Nach etwas herumstochern habe ich den Build so hinbekommen:
#!/bin/bash
gcc -DPNG_ARM_NEON_OPT=0 -c -fPIC -xc ./WDL/libpng/*.c && \
gcc -DPNG_ARM_NEON_OPT=0 -c -fPIC -xc ./WDL/jpeglib/*.c && \
gcc -DPNG_ARM_NEON_OPT=0 -c -fPIC -xc ./WDL/zlib/*.c && \
g++ -DPNG_ARM_NEON_OPT=0 -fPIC -shared -std=c++14 -Wall -DSWELL_PROVIDED_BY_APP -I"./WDL/swell/" -I"./WDL/jpeglib/" -I"./WDL/lice" -I"./WDL/libpng" -I"./WDL/zlib/" js_ReaScriptAPI.cpp "./WDL/swell/swell-modstub-generic.cpp" "./WDL/lice/lice_png_write.cpp" "./WDL/lice/lice_colorspace.cpp" "./WDL/lice/lice.cpp" *.o `pkg-config --cflags --libs gtk+-3.0` -o reaper_js_ReaScriptAPI64ARM.so

Reaper wirft leider immer noch Fehler:

swell: dlopen() failed: /home/phw/.config/REAPER/UserPlugins/reaper_js_ReaScriptAPI64ARM.so: undefined symbol: _Z13LICE_WriteJPGPKcP12LICE_IBitmapib
Error loading /home/phw/.config/REAPER/UserPlugins/reaper_js_ReaScriptAPI64ARM.so: (null)

lasse ich die -DPNG_ARM_NEON_OPT=0 anweisung weg, so kommt ein

swell: dlopen() failed: /home/phw/.config/REAPER/UserPlugins/reaper_js_ReaScriptAPI64ARM.so: undefined symbol: png_do_expand_palette_rgb8_neon
Error loading /home/phw/.config/REAPER/UserPlugins/reaper_js_ReaScriptAPI64ARM.so: (null)

Vielleicht habt ihr da noch einen Tipp - oder vielleicht helfen diese Schritte jemand anderem um weiter zu machen. Da kann doch nicht mehr viel fehlen…

1 „Gefällt mir“

Welche Bibliothek wird denn nicht gefunden?

Dir fehlen noch zwei Zeilen (vorletzte enthält auch LICE_WriteJPG):

Ich komme erst Morgen Abend zum Ausprobieren, aber ich werde dann berichten.

Vielleicht könnte noch mitgetestet werden, statt der 4.27 hier eine aktuelle REAPER-Version zu nehmen? In den letzten Monaten wurden noch viele Linux-Optimierungen in REAPER vorgenommen, und bisher habe ich (auf MacOS) keine Showstopper gefunden was unsere „alte“ Ultraschall-Version in Bezug auf Kompatibilität angeht.

Wer benutzt denn die 4.27 uter Linux?
Soweit ich weiss wurde erst mit Version 6.?? Linux offiziell unterstützt.
Ultraschall schreibt noch 6.27 von Reaper vor, aber ich kann das gerne einmal mit der aktuellsten Version prüfen. würde mich ja auch selber freuen, da die 6.27 doch ein wenig älter mitlerweile ist.

Sorry, meinte natürlich die 6.27

Wird morgen Abend gemacht, aber nicht auf dem Podcast-Notebook =)

1 „Gefällt mir“

Habe nun auch noch die Auftragsarbeit bekommen es mit LINUX MINT zu prüfen.
Sollte aber eigentlich kein Problem sein. Wenn dann wird MINT DE eher das Problem aufgrund des Debian 10 unterbaus, aber auch das sollte machbar sein.
Ich werde dann berichten wenn ich alle 4 Varianten durchprobiert habe.

2 „Gefällt mir“

Off Topic:
Kann man sich für diese Versuche nicht auch bezahlen lassen?
Jede Distribution die geprüft werden soll einfach 10€ in die Podcast-Kasse oder an eine Vereinigung die Podcastern zu gute kommt.

1 „Gefällt mir“

Baustelle js_ReaScriptAPI auf aarch64 auf Raspberry Pi 4 / Manjaro compilieren:

Ah sehr gut - damit geht es schonmal weiter - stößt aber auf Fehler in den Narrowing-Warnings, die zu Fehlern führen:

Compile-Anweisung:

g++ -c -fPIC -std=c++14 -DSWELL_PROVIDED_BY_APP "./WDL/swell/swell-modstub-generic.cpp" "./WDL/lice/lice_png.cpp" "./WDL/lice/lice_png_write.cpp" "./WDL/lice/lice_jpg.cpp" " ./WDL/lice/lice_jpg_write.cpp" "./WDL/lice/lice_colorspace.cpp" "./WDL/lice/lice.cpp"

kracht es:

In file included from ./WDL/lice/lice_png.cpp:10:
./WDL/lice/../wdltypes.h:203:69: error: narrowing conversion of ‘-1’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
  203 | typedef char wdl_assert_failed_unsigned_char[((char)-1) > 0 ? -1 : 1];
      |                                                                     ^
./WDL/lice/../wdltypes.h:203:61: error: size ‘-1’ of array ‘wdl_assert_failed_unsigned_char’ is negative
  203 | typedef char wdl_assert_failed_unsigned_char[((char)-1) > 0 ? -1 : 1];
      |                                              ~~~~~~~~~~~~~~~^~~~~~~~
In file included from ./WDL/lice/lice_jpg.cpp:11:
./WDL/lice/../wdltypes.h:203:69: error: narrowing conversion of ‘-1’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
  203 | typedef char wdl_assert_failed_unsigned_char[((char)-1) > 0 ? -1 : 1];
      |                                                                     ^
./WDL/lice/../wdltypes.h:203:61: error: size ‘-1’ of array ‘wdl_assert_failed_unsigned_char’ is negative
  203 | typedef char wdl_assert_failed_unsigned_char[((char)-1) > 0 ? -1 : 1];
      |                                              ~~~~~~~~~~~~~~~^~~~~~~~

Unterdrückt man -Wno-narrowing, kommt es zu Typdefinitions-Fehlern:

g++ -Wno-narrowing -c -fPIC -std=c++14 -DSWELL_PROVIDED_BY_APP "./WDL/swell/swell-modstub-generic.cpp" "./WDL/lice/lice_png.cpp" "./WDL/lice/lice_png_write.cpp" "./WDL/lice/lice_jpg.cpp" " ./WDL/lice/lice_jpg_write.cpp" "./WDL/lice/lice_colorspace.cpp" "./WDL/lice/lice.cpp"

scheppert:

In file included from ./WDL/lice/lice_png.cpp:10:
./WDL/lice/../wdltypes.h:203:61: error: size ‘-1’ of array ‘wdl_assert_failed_unsigned_char’ is negative
  203 | typedef char wdl_assert_failed_unsigned_char[((char)-1) > 0 ? -1 : 1];
      |                                              ~~~~~~~~~~~~~~~^~~~~~~~
In file included from ./WDL/lice/lice_jpg.cpp:11:
./WDL/lice/../wdltypes.h:203:61: error: size ‘-1’ of array ‘wdl_assert_failed_unsigned_char’ is negative
  203 | typedef char wdl_assert_failed_unsigned_char[((char)-1) > 0 ? -1 : 1];

Ich wünschte ich wüßte was das Problem mit Linux Mint DE 4 ist.
Ich bekomme einen ganzen haufen Fehlermeldungen:
Template with C linkage
Ich frage mich gerade, was anders ist als bei Ubuntu 20.04 oder Linux Mint 20.03?

Aber für heute ist schluss.
An den R-Pi mache ich mich erst wenn ich MintDE4 fertig habe.
Notfalls probiere ich es noch einmal mit Debian Buster und Bullseye. Wenn es mit Buster funktioniert, sollte es mit MintDE ja auch locker gehen.
Aber alles andere morgen.
Wenn einer Ideen hat, immer her damit.

So, jetzt mal eben eine Antwort an mich selber, da ich gestern/heute etwas zu dooff war.
Also fange ich mal vorne an.
LinuxMintDE4 basiert auf Debian 10(Buster). Unter Debian 10(Buster) bekomme ich die gleichen probleme, wie unter Linux Mint DE 4. Macht ja auch Sinn.
Unter Debian 11 (Bullseye) funktioniert es.
Ergo, ist ab Debian 11 das Bauen möglich. Ubuntu 20.04 funktioniert auch super.
Der größte unterschied sind die Versionen der Compiler. Unter Debian 10 ist es noch 8.0.X
Unter Debian 11 ist es 9.0.X bereits verfügbar.
Meine Vermutung, die ich noch nicht bestätigt habe ist, dass der Compiler das Problem ist, auch wenn der Quellcode durchaus die beanstandeten Probleme aufweisst.

man lernt halt nie aus. So habe ich nun auch gelernt, dass „extern C“ nicht gut bei compilern ankommt, wenn man es im C++ Kontext verwendet.
Man müsste nun durch die beanstandeten Datein gehen und den Code umstellen, in der Hoffnung das es noch funktioniert.

Ich gehe mal davon aus, dass sich niemand die Arbeit machen wird, also wäre eine gute Möglichkeit in die Readme für die Linux-Version von Ultraschall mal auf zu nehmen, das Ubuntu 20.04, Debian 11 oder Manjaro verwendet werden sollten zum Bauen des Codes.

Wäre nur mal ein Vorschlag.
Die notwendigen Zeilen für APT/PacMan habe ich bereits und könnte Sie bereit stellen.

2 „Gefällt mir“

So, ich habe mal Ubuntu 20.04 LTS und Manjaro mit Reaper 6.46 ausprobiert.
Was soll ich sagen, für mich funktionierte es.
Ich benötige allerdings auch nicht alle Features, aber die die ich verwende haben funktioniert.
Nach der nächsten Podcast-Aufnahme werde ich auch das Podcast-Notebook upgraden auf Reaper 6.46

Debian 11 und Linux Mint sollten auch laufen, habe es alles installiert, aber nicht meinen Workflow ausprobiert.
Debian 10 funktioniert nicht, aufgrund von Compiler-Errors.
Den RaspberryPi4 konnte ich nicht testen, da leider das Privatleben dazwischen kam.
Dafür habe ich nun ein virtuelles Labor eingerichtet um Manjaro, Ubuntu 20.04 LTS, Debian 11 und Linux Mint 20.3 schneller testen zu können.

Kleiner Tip an alle die es versuchen wollen mit einer VM:
VMs sind nicht für den Produktiven Einsatz beim Podcast-Aufnehmen geeignet aufgrund der Zusätzlichen Latenz durch den Virtualisierungs-Layer. Zusätzlich muss man bei VirtualBox (ja, ich habe noch nicht auf Qemu umgestellt) unbedingt USB 3.0 konfigurieren. Andernfalls wird das Audiointerface nicht unterstützt.

So, dass war es dann jetzt aber erstmal von mir wieder.
Wenn intresse besteht, kann ich gerne nochmal ein Tutorial/HowTo für Debian 11, Ubuntu 20.04 LTS und Linux Mint schreiben.

Lieben Gruß

Nervo

2 „Gefällt mir“

Über eine Anleitung wäre ich sehr dankbar! Ich würde gerne komplett mit Reaper auf Linux arbeiten. Habe die aktuelle Version von Linux Mint, bin aber immer noch ziemlicher Linux-Laie.

Reaper selbst habe ich installiert bekommen, aber selber kompiliert habe ich noch nie irgendwas. An Ultraschall habe ich mich noch nicht heran gewagt …

2 „Gefällt mir“

Super Anleitung!

Jetzt bin ich gespannt.

1 „Gefällt mir“

Ich verwende Ultraschall seit Mitte letzten Jahres unter Fedora und hab gerade eben eine Anleitung veröffentlicht, wie man Ultraschall unter Ubuntu 21.10 zum Laufen bekommt, ohne dass man den Installer erst kompilieren muss: Ultraschall unter Linux (Ubuntu 21.10) installieren

Ich hoffe, das lässt sich 1:1 auf Manjaro Linux übertragen. Sagt gerne Bescheid, ob das klappt.

2 „Gefällt mir“

Danke für die Anleitung! Glücklicherweise hat mich @Malik jetzt doch gedrängt mit Ultraschall 5 nochmal anzusehen und ich bin jetzt doch überzeugt :slight_smile:

Habe jetzt eine Episode komplett auf Manjaro geschnitten, beim Export laufe ich aber in zwei Issues, bei den ich gerne wüsste ob das nur bei mir so ist?

Beim Marker Export fliegt bei mir dieser Fehler:

ultraschall_marker_dashboard.lua:119: bad argument #2 to 'JS_LICE_CreateBitmap' (number has no integer representation)

US_CreateBitmap

Im Podcastexportassistent kann ich nix aufs Cover Image droppen, bekomme da zwar das Droptarget am Mauszeiger. Aber es landet dort nix. Habt ihr das auch? Kann ich das Cover auch anderweitig da rein bekommen?
US Cover

Ich habe es jetzt extra getestet. Bei mir funktionieren deine beiden Sachen ohne Probleme. D.h. der Exportassistent tut was er soll Was ist bei dir anders? Ich habe auch Manjaro, siehe Screenshot oben.

Anderes Problem: Dafür kann ich keine Shortcut-Liste anzeigen. Wenn ich das anklicke oder den shortcut verwende, dann passiert überhaupt nichts.

Ultraschall-Shortcuts-Liste

1 „Gefällt mir“