PureData Extended auf dem Raspberry Pi
Für den Prototypen eines Klangobjektes brauche ich unter anderem eine Elektronik, welche bis zu 12 lange Samples gleichzeitig abspielen kann und dabei diese zudem per externem Midi Controller verändern kann (z.B. Filter, Lautstärke). Da ich keinen PC verwenden wollte und auch nicht einen Sampler wie beim Windspiel “Modern Chimes” fragte ich mich, ob nicht eventuell ein Raspberry PI, von dem ich zwei Stück rumliegen habe, dafür geeignet sein könnte.
In Berichten im Netz wird in diesem Zusammenhang oft die schlechte Audio-Ausgabe und die geringe Leistung des PI bemängelt. Auch ist mein Modell bereits in die Jahre gekommen, es gibt ja inzwischen den Raspberry 2 (ArmV7 mit 900MHz, 4 Core) und meiner ist noch der Raspberry 1B (ArmV6 mit 700Mhz, 1 Core). Aber er läuft mit Linux und meine Anwendung ist nicht sehr leistungsfordernd. Zudem kostet er nur 35 EUR
Ich habe also mit dem kostenfreien Pure Data auf dem PC ein einfaches Testpatch mit zwei Samples geschrieben welches meine Anwendung roh simuliert (uff, musste mich da wieder reinarbeiten, weil ich ja inzwischen mit MAX7 arbeite, dies aber auf dem Raspberry nicht läuft) .
Benötigte Hardware
Raspberry PI Model1B, SD Speicherkarte 16GB, Netzteil 2A, Tastatur, Maus, USB-Hub mit extra Netzteil 2A, USB-Audio Interface, evtl. USB Midi Interface
Nachtrag 2018: Inzwischen habe ich diese Installation auch mit dem Raspberry PI3 Model B durchgeführt.
Um das Audio Problem zu umgehen verwende ich ein externes USB Interface, ich hatte noch ein freies Roland UA-25 Audio Interface, dieses geht einwandfrei mit dem Raspberry (Midi noch nicht):
ERSTER FEHLVERSUCH:
Als Erstes habe ich genau nach Anleitung die Speicherkarte mit dem Betriebssystem vorbereitet, wie vorgeschlagen Raspian Wheezy. Im Windows PC downgeloaded, mit 7zip entpackt und mit Win Disk Imager auf die SD Karte geschrieben.
Dann den PI an meinem Fernseher über HDMI und ans Internet über Lan Kabel angeschlossen. Einen USB Hub angeschlossen und daran Keyboard und Audio Interface, in die zweite on board Buchse die Maus.
Mit der SD Karte hochgefahren, Deutsch eingestellt und Start auf Desktop (noch, später wird er natürlich headless).
Dann im Terminal mühsam pd installiert, nach Anleitung:
sudo nano /etc/apt/sources.list
dort neue Zeile eingetragen:
deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
ctrl+o, Enter (=Speichern). ctrl+x (=um aus Nano rauszukommen)
sudo apt-get update (dauert etwas)
wget https://puredata.info/downloads/pd-extended-0-43-3-on-raspberry-pi-raspbian-wheezy-armhf/releases/1.0/Pd-0.43.3-extended-20121004.deb
sudo dpkg -i Pd-0.43.3-extended-20121004.deb (da kommen einige Fehlermeldungen wegen nicht vorhandenen Bibliotheken, ignorieren)
sudo apt-get -f install (hier werden die Bibliotheken nachinstalliert)
sudo chmod 4755 /usr/bin/pd-extended
So, jetzt ist Pure Data (pd) im Menü anwählbar.
Die Beispieldateien musste ich suchen, die sind in /usr/lib/pd-extended/doc
Die Dateien laden und es kommt auch Sound über HDMI, aber das Anwendungsfenster lässt sich nicht mehr schliessen und klemmt bei mir in der oberen linken Ecke.
Man kann den Prozess killen, aber das ist keine Lösung und ich weiss nicht was ich dagegen machen könnte.
Dieser Versuch hat geklappt:
Also habe ich wieder einmal mit dem Problem von Grund auf beschäftigt.
Meine Recherchen haben ergeben, dass es eine neue Version der PD Software gibt, die aber in keiner Anleitung auftaucht, nämlich Version 0.43.4
Diese ist nicht bei puredata, sondern auf sourceforge gehostet:
http://sourceforge.net/projects/pure-data/files/pd-extended/0.43.4/pd-extended_0.43.4~extended1-1~raspbian_wheezy_armhf.deb
Ich nehme nun das alte, etwas schwer zu findende Raspbian Jessie in der vollen Endversion
Nachtrag 2018: Ich habe es mit dem Jessie Nachfolger Stretch probiert, das hat nicht geklappt wegen fehlender Bibliotheken, die sich bei mir nicht nachinstallieren liessen.
Also wieder Speicherkarte wie oben vorbereitet, nun mit Raspian Jessie
dann Raspberry PI hochgefahren, Deutsch und Desktop wie oben.
Nun die /etc/apt/sources.list nicht verändert, da steht die Zeile nämlich schon ausreichend ähnlich drin!
sudo apt-get update (dauert etwas)
(bitte beachten, wenn man folgende Befehle kopiert ist alles ok, aber wenn sie abgeschrieben werden bitte darauf achten dass mein Schriftsatz statt TILDE einen LANGES MINUS anzeigt, also vor extended und vor raspbian ist ein TILDE)
wget http://sourceforge.net/projects/pure-data/files/pd-extended/0.43.4/pd-extended_0.43.4~extended1-1~raspbian_wheezy_armhf.deb
(hier auch TILDE vor extended und vor raspbian)
sudo dpkg -i pd-extended_0.43.4~extended1-1~raspbian_wheezy_armhf.deb (da kommen wieder einige Fehlermeldungen wegen nicht vorhandenen Bibliotheken, ignorieren)
sudo apt-get -f install (hier werden die Bibliotheken nachinstalliert)
Es kam einmal vor, dass es nicht ging, dann habe ich einfach nochmal dpkg und install (die letzten beiden Schritte) wiederholt.
(sicherheitshalber noch ein upgrade machen:)
sudo apt-get upgrade (dauert)
Der folgende changemod verbessert angeblich die Audiowiedergabe, kann ich nicht beurteilen aber ich habe ihn angewendet und er scheint jedenfalls nicht zu schaden:
sudo chmod 4755 /usr/bin/pd-extended
Nachtrag 2018: ein Problem hatte ich auf dem PI3: Das angelegte Icon von Pd-extended hat nicht geöffnet. Ich habe ausgetestet, dass es mit einer anderen Verknüpfung funktioniert, man muss den link ind der Icon .desktop Datei auf
/usr/lib/pd-extended/bin/pd
zeigen, dann startet das Programm richtig.
PD geht nun hervorragend, mein Roland UA-25 Audio Interface wird ohne jeden Treiber erkannt und liefert besten Sound.
Nun kann ich mein PD Patch erweitern und sehen, ob das System auch noch unter Vollast läuft, wenn nicht kann ich ja die CPU noch leicht übertakten.
Also es müsste eigentlich gehen….
Das Midi Interface vom Roland UA-25 taucht nicht in PD auf, das muss ich auch noch zum Laufen bringen, entweder über ein externes USB-MIDI Interface oder evtl. über Software Midi.
To be continued
Nachtrag 2018: Auf dem Raspberry PI3 ist natürlich viel mehr Power vorhanden, ich habe wieder die Anomalie, dass Fenster gerne links oben öffnen und sich nicht mehr schliessen lassen, da nicht erreichbar mit dem Cursor. Es sieht so aus, wenn geöffnete Fenster vom Patch in Windows oder auf dem MAC beim Speichern an einer bestimmten Stelle stehen, oder zuletzt dort hin geschoben werden, scheinen diese Koordinaten auf dem Raspberry anders ausgewertet zu werden. Das teste ich in Kürze genau.