SOUNDMASCHINE · 1.5.6 / Installationspaket 1
Ein Herzensprojekt von Lars / MandaLars

Die Software kommt OHNE SAMPLES. Keine privaten Projekte, Sample-Banken,
Demo-Audiodateien, Zugangsschlüssel oder persönlichen Sicherungen sind enthalten.
Die eingebauten Synthesizer erzeugen ihre Klänge selbst.

REFERENZSYSTEM
Raspberry Pi 5, Linux ARM64, Raspberry Pi OS / Debian Bookworm, Python 3.11+.
Audio: ALSA-kompatibles Interface mit 48 kHz Stereo. Browser am selben lokalen Netz.
Für die optionale PC-Launchparty: Python 3, Browser mit Web MIDI, eigenes Launchpad.
Dieses Paket ist kein Windows-VST und ersetzt keine Firmware.

1. VORBEREITEN (auf dem Pi)
Das Paket in einen eigenen Ordner entpacken. Nicht über eine bestehende Installation
kopieren. Im Terminal zu diesem Paketordner wechseln.

Benötigte Systempakete auf einem frischen Bookworm-System:
  sudo apt update
  sudo apt install python3 ffmpeg alsa-utils libasound2

Audioausgänge anzeigen:
  aplay -L

Wähle die tatsächliche Kennung deines Interfaces, beispielsweise
plughw:CARD=USB,DEV=0. USB ist nur ein Beispiel, nicht automatisch deine Kennung.

2. INSTALLIEREN
  python3 install.py --audio-device 'plughw:CARD=USB,DEV=0'

Ohne --audio-device zeigt der interaktive Installer die ALSA-Ausgänge an und fragt
nach deiner Auswahl. Standardziel ist ~/SOUNDMASCHINE, HTTP-Port ist 8092.
Für ein anderes Ziel oder einen freien anderen Port:
  python3 install.py --prefix ~/MeineSoundmaschine --port 8093 --audio-device 'plughw:CARD=USB,DEV=0'

Der Installer prüft die Paketdateien und den nativen Referenztest, legt getrennte
Programm- und Datenordner an und startet ausschließlich die Weboberfläche.
Öffne http://DEINE-PI-ADRESSE:8092/ im Browser. Musik beginnt erst mit deinem START.
DEINE-PI-ADRESSE durch die lokale Adresse deines Pi ersetzen.
Die Weboberfläche ist für das eigene lokale Netzwerk vorgesehen.
--local-only bindet sie nur an 127.0.0.1. --no-start-web installiert ohne Webstart.

Es wird kein Boot-Autostart eingerichtet. Nach einem Pi-Neustart:
  ~/SOUNDMASCHINE/soundmaschine start
Status ansehen:
  ~/SOUNDMASCHINE/soundmaschine status
Nur den eigenen Webdienst beenden (verweigert bei spielender Engine):
  ~/SOUNDMASCHINE/soundmaschine stop-web

3. AUDIO BEWUSST TESTEN
MASTER zuerst niedrig stellen. KICK / SYNTH auswählen. Selbst START drücken.
Direkt am Pi-Interface hören. Erst danach weitere Audio-Umleitungen ergänzen.
Die alte Engine oder eine andere Audioanwendung darf denselben Ausgang nicht
gleichzeitig belegen. Dieses Paket beendet keine solche Anwendung für dich.

4. EIGENE SAMPLES
Die Sampler-Slots und Kick können eigene Dateien über ihren Datei-Import laden.
Für eine durchsuchbare Sample-Forge-Bibliothek kopiere eigene Dateien auf den Pi
in einen eigenen Quellordner, zum Beispiel ~/MeineSamples. Originale bleiben erhalten.
Engine vorher selbst stoppen; ein Motion-Take im RAM geht beim Engine-Stopp verloren.

  python3 ~/SOUNDMASCHINE/current/import_samples.py --home ~/SOUNDMASCHINE --source ~/MeineSamples

Zusätzlich eine 64-Pad-Bank aus den ersten bis zu 64 eigenen Dateien erstellen:
  python3 ~/SOUNDMASCHINE/current/import_samples.py --home ~/SOUNDMASCHINE --source ~/MeineSamples --bank-name 'Meine erste Bank' --genre 'Eigene' --bpm 138

Bei weniger als 64 Dateien werden deine Dateien über die 64 Plätze wiederholt.
Es werden keine fremden Klänge ergänzt. Die Reihenfolge folgt der sortierten
Dateiliste. Für eine bestimmte Reihenfolge kannst du die eigenen Quelldateien
beispielsweise mit 01_, 02_ usw. benennen und eine Bank unter neuem Namen erstellen.
Die BELEGEN-Funktion der PC-App betrifft die vier Sampler-Spuren; ein Editor für
alle 64 Bankplätze ist in dieser Oberfläche noch nicht vorhanden.
Bestehende Banknamen werden nicht überschrieben.
--recursive schließt Unterordner ein. Ohne diesen Schalter nur der gewählte Ordner.
Die Pad-Kopien werden auf maximal 8 Sekunden / mono / 48 kHz / PCM16 begrenzt.
Sequencer-Sampler: maximal 30 Sekunden. Kick-Alternative: maximal 4 Sekunden.
Loops laufen als One-Shot, ohne automatische Tempoanpassung.
Ein Bankimport lädt nur die identifizierte Weboberfläche bei bereits ausgeschalteter
Engine neu. Musik startet anschließend nicht automatisch.

5. LAUNCHPARTY AM COMPUTER
Den Ordner pc aus dem Paket auf den Computer kopieren. Python 3 muss verfügbar sein.
Windows: Start-Launchparty.cmd doppelklicken; falls der Python-Launcher py fehlt,
im Ordner stattdessen 'python -X utf8 bridge.py' ausführen.
Linux/macOS: 'python3 bridge.py'. Für Web MIDI ist ein geeigneter Browser erforderlich.
Beim ersten Start die eigene Pi-Adresse mit Port eingeben, z. B. http://PI-ADRESSE:8092.
Sie wird in pc/connection.json gespeichert. Zum Ändern:
  python3 bridge.py --pi http://NEUE-PI-ADRESSE:8092

Dann http://127.0.0.1:8767/launchparty/?instrument=gw2&desktop=1 öffnen.
LAUNCHPAD VERBINDEN wählen und die tatsächlichen MIDI-Ports auswählen.
Die Brücke verwendet keine private 8088-/8089-Installation und lädt ihre Oberfläche
vollständig aus dem Paket. Sie startet keine Musik automatisch.
Nur eine Brücke darf Port 8767 belegen; eine bestehende Instanz wird nicht beendet.
Keine privaten Creator-Bibliotheken oder Firmware-Downloads werden mitgeliefert.
Die vorhandenen generierten Lichtmuster sind Steuerdaten, keine Audiosamples.

6. UPDATE / RÜCKWEG
Eigenes Projekt sichern. Die Engine selbst stoppen; Motion im RAM vorher bedenken.
Den neuen Paketordner separat entpacken und denselben --prefix verwenden.
Ohne neue --audio-device- oder --port-Angabe bleiben die Einstellungen erhalten.
Der Installer verweigert eine Aktivierung bei laufender Engine und verändert nur
seine eindeutig identifizierte Webinstanz. Ältere Programmstände bleiben unter
versions erhalten; aktuelle Nutzerdaten werden vor dem Wechsel gesichert.

Sicherungen auflisten:
  ~/SOUNDMASCHINE/soundmaschine backups
Zu einem ausgewählten Stand einschließlich gesicherter Daten zurückkehren:
  ~/SOUNDMASCHINE/soundmaschine rollback SICHERUNGSNAME

Vor der Rückkehr wird der aktuelle Datenstand erneut gesichert. Die Rückkehr
erfordert ebenfalls eine ausgeschaltete Engine. Keine Musik startet von selbst.
Eigene Originaldateien zusätzlich extern sichern. .gw2-Projekte enthalten eigene
Sampler-Dateien, aber weder die vollständige Bibliothek noch Motion-Takes im RAM.

7. QUELLCODE UND BUILD
app enthält die zum nativen Programm gehörenden Quellen und Header.
vendor enthält die festgelegten Ableton-Link-Quellen einschließlich ASIO.
Für einen lokalen Neuaufbau zusätzlich build-essential und libasound2-dev installieren.
  bash build-engine.sh
Ergebnis: app/engine.rebuilt. Das geprüfte Originalbinary bleibt unverändert.
Der Referenztest öffnet keine Audiohardware. Die ausgegebene Signal-Prüfsumme ist
eine technische Prüfung, kein Hörtest oder Beweis der gesamten Eingabelatenz.

8. HILFE UND BELEGE
Das Kunstbuch mit Bedienung und Werkstattteil liegt unter docs.
Prüfergebnisse für dieses konkrete Paket: VERIFICATION.json.
Bekannte Grenzen: keine vollständige Song-Timeline, kein automatisches Loop-
Timestretch, kein Motion-Projektspeicher, kein physisch gemessener Null-Latenz-Weg.
Die Pakettests werden separat vom laufenden Instrument mit ALSA-null durchgeführt.
Reale Audiointerfaces und physische MIDI-Verbindungen können andere Anforderungen haben.

Downloadbereich: https://mandalars.org/mandalars/downloads/
Programmcode: GPLv3; Lizenztext in LICENSE.txt, Drittanbieterhinweise in NOTICES.txt
und licenses. Der zugehörige Quellcode ist im selben Paket enthalten.
Ausgabe: öffentliche Vorabversion 1.5.6 / Installationspaket 1, 31.10.2026.
Die isolierten Tests sind bestanden. Eine Prüfung auf einem frisch eingerichteten
Pi mit physischer Audio-/MIDI-Hardware steht noch aus. Ein GitHub-Repository wird
für Installation und Nutzung nicht benötigt und ist mit diesem Paket nicht angelegt.
