Für Programmversion 0.4.1

1. Präambel

Session Management führt zur Vereinfachung von Arbeitsabläufen, Übersicht und Kontrolle über Programme und Daten und eine gehörige Portion positive Bequemlichkeit :)

Kein Programm existiert für sich alleine, denn kein Programm kann alles leisten, was für heutige Musikproduktion nötig ist.

Direkt ersichtlich ist das in einer JACK Umgebung, die prinzipiell modular ist: Verschiedene Programme erfüllen verschiedene Zwecke und "sprechen" miteinander, indem sie sich Daten schicken. Ein Sequencer schickt Midi an einen Sampler oder Synthesizer, der mit einem Plugin-Host für Effekte verbunden ist usw.

Selbst die monolithischsten All-In-One DAWs müssen, oder möchten, irgendwann mit der Außenwelt kommunizieren. z.B. um sich mit einem Screenrecorder oder Streamingprogramm zu verbinden, einen Wordprozessor mit Aufnahmereihenfolge oder Liedtexten zu starten, um Musik zu visualisieren oder (um ehrlich zu bleiben) eine Funktion zu nutzen, die es in diesem Programm eben nicht gibt.

Einen Großteil der Arbeit erledigt bereits das JACK-Subsystem. Alle Programme können ihre Musik in Echtzeit teilen, verfügen über synchronisierte Timelines und spielen im gleichen Tempo.

Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra geschriebene Starter-Scriptdateien) und Agordejo im speziellen nehmen Ihnen diese Arbeit ab, oder vereinfachen sie zumindest stark.

Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session Manager Agordejo starten.

1.1. Anwendungsbeispiel

  • Agordejo starten (Startmenü, Terminal etc.)

  • Den Knopf auf der linken Seite drücken: "Schnellstart Neu"

  • Nun bekommt man eine Auswahl an Programmen:

  • Ein Doppelklick mit der Maus startet ein Programm

  • Das Programm erscheint in der anderen Spalte und zeigt an, dass es läuft.

  • Die GUI des Programms erscheint evtl. erst wenn man auf den neuen Eintrag doppelklickt.

  • Die Programme "jackpatch" und "nsm-data" wurden schon automatisch hinzugefügt

  • Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Agordejo gespeichert.

  • Der Name der Session ist bisher einfach ein Datum. Im Menü kann man richtigen Namen eingeben. Etwa "Mein Lied"

  • Ist man soweit fertig kommt man durch den Menüeintrag "Speichern und Schließen" wieder in die Sessionauswahl zurück

  • Nun könnte Agordejo geschlossen werden.

  • Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (~/.local/share/nms/Mein Lied)

  • Die Session kann weitergeführt werden: Nach dem Doppelklick auf den Namen starten alle Programme automatisch und verbinden ihre JACK-Ports untereinander.

2. Vollständige Erklärung

2.1. Session Auswählen

Sessions stellen sich als Tabelle dar, die Sie durch den Klick auf eine Spaltenüberschrift ordnen können. So wird hier gezeigt wie die Session heißt und wann das letzte mal gespeichert wurde, wohl die beiden wichtigsten Informationen. Dann wird gezeigt wie viele Programme/Clients die Session verwaltet und ob sie Symbolische Links enthält. Letzteres steht wahrscheinlich auf "Ja", wenn Sie einen Sampler o.ä. benutzen, der große Audiodateien geladen hat. Diese werden zunächst nur in die Session gelinkt, und nicht kopiert, um Speicherplatz zu sparen. Der angezeigte Speicherverbrauch ist nicht der tatsächliche Verbrauch, sondern beinhaltet die Größen der Symlinks. Erst wenn Sie die Session archivieren oder die Links durch reale Dateien ersetzen stimmt die angezeigte Zahl.

Schließlich wird auch das Verzeichnis angegeben, in dem die Dateien tatsächlich gespeichert sind.

Sessions stellen den Verzeichnisbaum dar. Eine Session ist immer ein "Blatt" und kann keine Subsessions enthalten. Sie können beim Anlegen oder Umbenennen die Sessions auch im Baum anordnen indem Sie die gewohnte Schrägstrichschreibweise benutzen: song123Neues Album/Song 123 oder Versuche/asdfRomantische Pop-Balladen/Mein Herz wird weiter schlagen. Wie Sie ihre Sessions organisieren, und wie viele Unterverzeichnisse Sie anlegen, steht Ihnen frei. Es ist allerdings nicht erlaubt den Namen mit / anfangen zu lassen oder die speziellen Zeichen .. zu benutzen. Die Baumansicht kann durch eine Checkbox an der linken Seite deaktiviert werden, um etwa besser sortieren zu können. Das ist nur eine Ansicht, ihre Daten bleiben unangetastet.

Jede Session verfügt über ein Kontextmenü (z.B. rechte Maustaste) mit weiteren Optionen: Sie können eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr. Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht gerade geöffnet ist). Dazu muss Agordejo nicht neugestartet werden, es reagiert selbst auf die Änderungen.

Klicken Sie auf "Neue Session" um diese anzulegen. Im Gegensatz zur schnellen Ansicht müssen Sie hier den Namen direkt eingeben. Wie oben erwäht können Sie dazu den Verzeichnisbaum benutzen. Darüberhinaus wird angeboten verschiedene (fast schon obligatorische) Programme direkt mitzustarten. Im Normalfall sollte man alle Vorschläge akzeptieren. Es gibt jederzeit die Möglichkeit diese wieder zu entfernen.

Ein Doppelklick auf eine existierende Session (oder der Knopf "Lade Ausgewählte") machen genau das.

2.2. In einer Session

Die Ansicht ist in drei Bereiche eingeteilt: Programmstarter, Programme in der laufenden Session und die Session-Notizen. Dazu gibt es ein dynamisches Menü.

Auf der linken Seite sehen die den Programmstarter. Ein Doppelklick startet eine Programminstanz in der Session. Sie können ein Programm auch mehrmals starten. Welche Programme zur Verfügung stehen entnehmen Sie bitte dem Kapitel "Programm-Datenbank".

2.2.1. Laufende Programm

Gestartete Programme befinden sich auf der rechten Seite. Ein Doppelklick schaltet die Sichtbarkeit um, sofern das Programm unterstüzt sein Fenster zu verstecken. Falls nicht passiert nichts.

Pro Programm gibt es folgende Informationen:

  • Der Name (evtl. mit Icon)

  • Ein "Label", das Programme frei benutzen können (z.B. zeigt Fluajho hier das geladene .sf2 an)

  • Den Programmstatus (auf Englisch, da es sich um definierte Schlüsselworte handelt).

  • Stopped / Gestoppt, läuft nicht

  • Ready / Läuft und Bereit

  • Launch / Startet. Wenn das Programm hier stehen bleibt, aber funktioniert, handelt es sich um eins, dass nicht speziell den Sessionmodus unterstützt. Agordejo kann nicht wissen, ob es bereits läuft oder nicht. Alles ist in Ordnung! :)

  • Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade

  • Sichtbarkeit (Ein Kreuz für sichtbar, Leer für unsichtbar)

  • Änderungen - Gibt es momentan ungespeicherte Änderungen?

  • ID - Ein eindeutiges Kürzel mit dem man auch mehrere Instanzen des gleichen Programmes auseinander halten kann

Alle weiteren Funktionen sind durch das Menü oder Kontextmenü zugänglich. Ein Klick auf ein Programm wählt es aus, und das Clientmenü in der Menüleiste gilt nun dafür. Alternativ kann mit Rechtsklick auf den Eintrag das Kontextmenü geöffnet werden, das identisch ist.

Neben den selbsterklärenden Funktionen gibt es noch:

  • Umbenennen gibt dem Programm einen selbstgewählten Namen, besonders um seinen Zweck deutlich zu machen und es besser von anderen zu unterscheiden. Diese Funktion steht nur zur Verfügung, wenn nsm-data in der Session läuft.

  • Speichern weist nur dieses Programm an abzuspeichern

  • Entfernen nimmt das Programm aus der Session. Dabei werden jedoch keine Dateien gelöscht. Zur Zeit muss leider noch von Hand im Dateimanager "aufgeräumt" werden.

Befindet sich der Client "nsm-data" in der Session (das ist Voreinstellung) steht im unteren Bereich ein großes Textfeld für Notizen zur Verfügung. Es ist dasselbe wie in der schnellen Ansicht. Schreiben Sie was Sie möchten: TODO-Listen, Liedtexte, Credits und Quellen von externen Samples etc.

2.2.2. Das Session Menü

Im Gegensatz zur schnellen Ansicht stehen hier weitere Menüs zur Verfügung, die auch über die üblichen Tastaturkürzel zu erreichen sind (Strg+S für Speichern etc.).

  • Speichern weist alle Programme an zu speichern, die Session läuft weiter

  • Speichern und Schließen beendet die Session, vorher speichern alle Programme noch einmal ab

  • Abbrechen beendet die Session, ohne dass die Programme abspeichern

  • Speichern Unter speichert die Session unter einem anderen Namen und schließt die laufende ohne abzuspeichern. Ab nun arbeitet man in der neuen Session.

  • Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht.

  • Es werden alle installierten Programme vorgeschlagen. Agordejo überprüft diese nicht auf Sinnhaftigkeit für eine Musik-Session, oder auch nur auf Lauffähigkeit. Sie finden hier ls wie auch agordejo selbst.

3. Programm-Datenbank

Agordejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt, teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Agordejo-Starter nur das angeboten wird, was Sie auch tatsächlich installiert haben.

Beim ersten Start wird daher die Programmdatenbank erstellt. Je nach System kann dies einige Augenblicke bis einige Minuten dauern.

Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich während Agordejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle neuen Programme zur Verfügung.

Wenn Sie ein installiertes Programm nicht in unserer Liste sehen, aber von dem Sie sicher sind, dass es Session Management unterstützt melden Sie es bitte an info@laborejo.org oder unter https://laborejo.org/bugs .

Darüberhinaus können Sie (in der vollen Ansicht) Programme hinzufügen, die nicht in der Datenbank sind. Siehe dort.

3.1. Für Fortgeschrittene

Die eiserne Regel ist, dass nur Programme im $PATH in die Datenbank aufgenommen werden. Absolute Pfade sind unzulässig, selbst wenn man den Programmnamen selbst durch das Menü eingibt. Allerdings möchte man manchmal Software nur ausprobieren, oder ist selbst Entwickler und möchte ohne systemweite Installation testen.

In den Einstellungen im Steuerungsmenü gibt es einen Tab "Programm-PATH", wo Sie eigene Suchpfade hinzufügen können. Ein absoluter Pfad pro Zeile, keine Wildcards, Trailing Slash spielt keine Rolle.

Zum Beispiel: /home/myuser/sources/newsequencer/bin/

Diese Suchpfade werden nicht in der Session gespeichert sondern lokal in ihrem ~/.config Verzeichnis.

4. Tray

Agordejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das Trayicon zeigt oder versteckt Agordejo.

Schließt man Agordejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das Programm und die Session nicht beendet, sondern in den Tray minimiert.

Ein Rechtsklick auf das Icon bietet Schnellzugriff auf häufige Funktionen:

Sie können hier die zuletzt benutzen Sessions direkt starten.

Läuft bereits eine Session können Sie speichern, abbrechen etc.

Agordejo kann hier auch komplett beendet werden.

5. Programmparameter

Als fortgeschrittener Benutzer können Sie Agordejo im Terminal starten und dort einige Parameter angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.

Eine Auswahl:

  • --session neuesAlbum/meinLied startet direkt die angegebene Session.

  • --continue startet die zuletzt benutzte Session

  • --hide startet Agordejo als Trayicon.

  • --url osc.udp://myhost.localdomain:14294/ verbindet sich zu diesem Server, falls vorhanden, oder startet den internen Session-Server unter dieser Adresse. Dies ist eine sehr technische Option und wird wahrscheinlich nicht benötigt.

  • --session-root /home/benutzer/produktion2020 setzt das Wurzelverzeichnis. Nur Sessions in diesem Verzeichnis werden angezeigt, alles wird dort gespeichert.

Die Kombination von --continue und --hide ergibt einen Modus, den viele Leute vom Session Management erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden. Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Agordejo-Starter auch eine "Agordejo Continue"-Verknüpfung für genau diesen Modus.

6. Verschiedenes / Erklärungen / FAQ

Session Speichern und Beenden reagiert langsam: Agordejo ist kein Einzelprogramm wie ein Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen Programme sich beenden und aus der Session verschwinden. Es ist alles in Ordnung.

Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session: Unterstützt das Programm Session Management? Wenn nicht, kann Agordejo nichts tun. Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (info@laborejo.org) und wir können zusammen an der Unterstützung arbeiten.

Die Programme hängen beim Beenden: Das tut uns leid. Eigentlich sind die Programme selbst schuld, aber auch wir sind daran interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten.

Agordejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.: Wahrscheinlich ist Agordejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat. Notfallplan ist es ~/.config/LaborejoSoftwareSuite/agordejo zu löschen. Dabei werden KEINE Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim nächsten Start wird Agordejo sich verhalten wie beim allerersten.

JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?: Vermutlich sind bereits viele Programme der Session nicht mehr richtig lauffähig und reagieren nicht mehr. Am besten benutzen Sie die Session Abbrechen Funktion und starten alles neu. Wenn die Daten tatsächlich schon lange ungespeichert waren kann man auch ein Speichern/Beenden wagen. Dann kann es aber sein, dass man beim nächsten Start einige Jack connections von Hand neu ziehen muss. Wer extrem sicher gehen möchte kann vor dem Beenden der Session (mit unweigerlichen abstürzen) manuell im Dateimanager eine Kopie des Session-Verzeichnisses machen.

Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.: Das ist leider ein Problem, dass auch Agordejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr umständlich ist).

Was ist besser? Monolithische DAW oder Session Management?: Warum nicht beides? Es gibt keinen Konflikt. Session Management lohnt sich ab zwei teilnehmenden Programmen, und auf die kommt man so gut wie immer.

Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur weil Sie einen Session Manager benutzen. Agordejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau das machen. Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem im Session Management, denn kein Programm kann alles alleine, und der Zeitpunkt wird kommen, an dem Sie ein weiteres hinzufügen.

Session Management ist andere Hirarchieebene. So sind Sequencer oder DAWs selbst keine Plugins. Patroneo gehört nicht "in" Ardour und Ardour gehört nicht "in" Laborejo. Und schon in diesem Beispiel erfüllt jedes der Programme eine Rolle, die die anderen beiden nicht leisten können, da sie einer anderen Design-Philosophie folgen. Und mehr:

Manche Programme können keine Plugins hosten, manche können keine Audiodateien exportieren. Das sind deswegen keine schlechten Programme, sondern welche, die sich auf eine Aufgabe konzentrieren. Darüberhinaus gibt es eine Menge Software, die nicht direkt Musikproduktion ausübt, aber trotzdem inhaltlich dazu gehört: Open Broadcast Studio (OBS), Musikplayer, Schreib- und Grafikprogramme etc.

Agordejo beinhaltet Funktionalität, die nicht seine Aufgabe ist: Musikproduktion ist sehr komplex und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean", und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil woanders wieder hoch. Ein minimalistischer Session Manager provoziert Plugins (nicht LV2), Helper-Scripts, Workarounds und Hacks. z.B. Dateiverwaltung nicht mit einzuschließen provoziert Anwender-Fehler im Dateimanager (wie das Löschen der falschen Dateien). Wenn der SM weiß was zu tun ist, und er es tun kann, dann soll er es machen.

Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss man damit umgehen. Kann Agordejo die Arbeit vereinfachen und helfen den guten Zustand wieder herzustellen? Dann sollte das geschehen.

Session Management ist außerdem eine Chance auch komplexe technische Szenarios zu vereinfachen, z.B. Sessions über das Netzwerk zu verteilen.

7. Installation und Start

Agordejo ist exklusiv für Linux. Am besten installieren Sie Agordejo über deinen Paketmanager. Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre Linuxdistribution Agordejo bereitzustellen.

Falls nicht in den Paketquellen vorhanden kann man Agordejo auch selbst "bauen".

Abhängigkeiten*
  • Eine Liste der Abhängigkeit befindet sich in der README.md

  • Kompilieren und Installieren geht entweder mit einem Releasedownload oder mit der Git-Version:

  • Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle: *./configure --prefix=/usr

    • Das Standardprefix is /usr/local

  • make

  • sudo make install

Nun ist das Programm durch agordejo in ihrem Terminal oder Programmstarter vorhanden.

In der Datei README.md befinden sich weitere Möglichkeiten agordejo zu starten. Diese sind zum Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.

8. Helfen und Entwicklung

Sie können Agordejo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing, anderen Nutzern helfen und schließlich programmieren.

8.1. Testen und Programmfehler

Falls Sie einen Fehler im Programm entdecken (oder es zu langsam läuft) melden Sie diese bitte auf eine Art und Weise, die ihnen am besten passt.

Kontaktmöglichkeiten

9. Entwicklung

Falls Sie an der Entwicklung interessiert sind, melden Sie sich am besten direkt bei uns (s.o.) Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns eine git URL zukommen lassen.

9.1. Übersetzungen

Agordejo ist mit Hilfe der Qt-Toolchain sehr einfach zu übersetzen, ohne, dass man dafür Programmieren muss. Die einfachste Variante ist es einfach die Entwickler anzusprechen und sie werden die neue Sprache einrichten.

Hier ist dennoch die komplette Anleitung, um eine Übersetzung komplett alleine anzufertigen und in das Programm einzubinden.

So fügt man eine neue Sprache hinzu:

  • Öffnen Sie ein Terminal und navigieren zu qtgui/resources/translations

  • Bearbeiten Sie die Datei config.pro in einem Texteditor.

    • Hängem Sie in der letzten Zeile den Namen der neuen Sprache an, in der Form XY.ts, wobei XY der Sprachcode ist.

    • Achten Sie bitte darauf ein Leerzeichen zwischen den einzelnen Sprachen zu lassen

  • Führen Sie sh update.sh im selben Verzeichnis aus.

    • Das Programm hat nun eine neue .ts-Datei im Verzeichnis erstellt.

  • Starten Sie Qt Linguist mit linguist-qt5 (kann evtl. anders heißen) und öffnen von dort die neu generierte Datei.

  • Wählen Sie die "Target Language", also Zielsprache, aus und benutzen das Programm um eine Übersetzung anzufertigen.

  • Senden Sie uns bitte die .ts Datei, z.B. per E-Mail an info@laborejo.org (s.u bei Bugs und Programmfehler für mehr Kontaktmöglichkeiten)

Die Übersetzung können Sie auch selbst, zum Testen, einbinden. Dafür sind rudimentäre Python Kentnisse nötig.

  • Im Qt Linguist "Datei" Menü ist eine "Release" Option. Das erstellt eine .qm Datei im gleichen Verzeichnis wie die .ts Datei.* Bearbeiten Sie qtgui/resources/resources.qrc und kopieren die Zeile <file>translations/de.qm</file> . Dabei das Länderkürzel zum Neuen ändern.

  • Führen Sie sh buildresources.sh aus

  • Bearbeiten Sie engine/config.py: Die neue Sprache hinzufügen. z.B. {"German":"de.qm", "Esperanto:"eo.qm"}

    • Um den Sprachstring herauszufinden öffnen Sie den python3-Interpreter im Terminal und führen aus:

    • from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())

Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese Sprache eingstellt ist. Ansonsten starten Sie agordejo mit diesem Befehl, Sprachcode ändern, vom Terminal aus:

  • LANGUAGE=de_DE.UTF-8 ./agordejo -V