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 Argodejo 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 Argodejo starten.
=== Anwendungsbeispiel
* Argodejo starten (Startmenü, Terminal etc.)
* Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten
* Der große Knopf: "Starte Neue Session"
* Nun bekommt man eine Auswahl an Programmen:
* Ein einfacher Klick mit der Maus startet ein Programm
* Ein weiterer Klick versteckt (oder zeigt anschließend) dessen grafische Oberfläche
* Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten.
* Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Argodejo gespeichert.
* Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln
* Der Name der Session ist bisher einfach ein Datum. Durch Klick auf dieses kann man einen richtigen Namen eingeben. Etwa "Mein Lied"
* Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück
* Nun könnte Argodejo geschlossen werden.
* Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (`~/NSM Sessions/Mein Lied`)
* Die Session kann weitergeführt werden: Nach dem Klick auf den Namen starten alle Programme automatisch und verbinden ihre JACK-Ports untereinander.
Die "Schnelle Ansicht" ist ein guter Einstieg. Üblicherweise möchte man jedoch bald in die volle
Ansicht wechseln, und sei es nur um ein Programm zwei mal zu starten oder um zwischendurch manuell
zu speichern.
== Die Schnelle Ansicht
Die Schnelle Ansicht ist eine aufs Minimum reduzierte Umgebung. Sie, als Benutzer, sollen so wenig
Entscheidungen wie möglich zu treffen haben und so schnell wie möglich (mit den wenigstens Klicks)
eine alte Session starten oder eine neue erstellen können.
Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie
korrekt mit dem Session Management Argodejos zusammenarbeiten.
Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen
Session und Sie können jederzeit hin- und herschalten.
=== Session Auswählen
Hier gibt es nur zwei Möglichkeiten: Klicken Sie auf "Starte Neue Session" um dies zu tun, oder
wählen Sie eine der bestehenden Sessions aus um diese fortzuführen (sofern vorhanden).
=== In einer Session
Der Name kann geändert werden. Wir empfehlen ein Datum in der Form YYYY-MM-DD gefolgt von einem
aussagekräftigen Namen. Bitte beachten Sie, dass die Namensänderung erst wirksam wird (z.B. in Form
des Sessionvereichnisses auf der Platte) wenn Sie die Session schließen.
Als nächstes steht ein größeres Textfeld für Notizen zur Verfügung. Schreiben Sie was Sie möchten.
TODO-Listen, Liedtexte, Credits und Quellen von externen Samples etc.
Programme werden durch Icons symbolisiert. Ein Mausklick startet das Programm (das kann einen
Moment dauern, darauf haben wir keinen Einfluss). Der Status des Programmes wird durch ein Symbol
dargestellt: Das "Play"-Symbol für das laufende Programm, ein Auge bedeutet "Programmfenster
versteckt", das "Power On/Off"-Symbol bedeutet, dass Programm wurde beendet (oder Absturz).
Falls das Programm es unterstützt kann ein laufendes Programmfenster versteckt werden. z.B. ein
Synthesizer, einmal eingerichtet, muss nicht permanent zu sehen sein. Klicken Sie einfach erneut
auf das Programmicon. Entweder passiert nichts (das Programm unterstützt es nicht) oder es wird
versteckt. Ein weiterer Klick auf ein versteckes Fenster zeigt es wieder. Jedes Programm ist selbst
dafür verantwortlich ob es seinen Fensterzustand speichert. Manche Programme starten bereits
versteckt.
Es gibt *keine* Möglichkeit ein Programm in dieser Ansicht zu beenden. Wechseln Sie hierzu in die
volle Ansicht oder benutzen Sie die Schließenfunktion des Programmes selbst.
Es gibt auch *keine* Möglichkeit ein Programm mehrfach zu starten, z.B. für einen Synthesizer pro
Spur. Wechseln sie hierzu in die volle Ansicht. Wenn Sie Programme durch die volle Ansicht mehrfach
gestartet haben können Sie weiterhin die schnelle Ansicht benutzen um die Session zu verwalten,
allerdings ist nicht definiert auf welche Programminstanz sich ein Klick auf das Programmicon (z.B.
zum Verstecken) auswirkt. Mehrere Instanzen sind ein klares Zeichen dafür, dass Sie bereit für die
volle Ansicht sind.
Wie Sie irgendwann feststellen werden sind nicht *alle* verfügbaren Programme in der Liste, und es
gibt auch keine Möglichkeit Programme zu starten die zwar gut in einer Session funktionieren (z.B.
ein Stimmgerät), aber nicht explizit dafür geschrieben sind, z.B. ihren Status nicht zurückmelden.
Diese Programme sollten Sie besser in der vollen Ansicht verwalten.
Ist ein Programm leider abgestürzt können Sie es nur neu starten und auf dessen automatische
Speicherung hoffen. Viel Glück.
== Die Volle Ansicht
Einige Konzepte wurde bereits im Kapitel "Die Schnelle Ansicht" erklärt. Es wird vorrausgesetzt,
dass Sie dieses gelesen haben.
=== 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: `song123` -> `Neues Album/Song 123` oder
`Versuche/asdf` -> `Romantische 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 Argodejo nicht neugestartet werden, es reagiert selbst auf die
Änderungen.
Hier gibt es auch die Möglichkeit eine sogenannte "Lock"-Datei zu entfernen. Das ist eine Datei,
die angelegt wird sobald die Session startet und gelöscht wenn beendet. Damit weiß das Programm,
welche Session gerade läuft. Ist eine Lockdatei vorhanden, kann die Session nicht geöffnet werden!
Das sollte im normalen Betrieb nicht vorkommen. Falls aber ein Stromausfall o.ä. mitten in einer
Session passiert ist kann die Lockdatei übrig bleiben, obwohl offensichtlich keine Session geöffnet
ist. In diesem Fall entsperren Sie die Session hierdurch manuell.
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.
=== In einer Session
Die volle 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".
==== 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. Argodejo 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.
==== 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. Argodejo überprüft diese nicht auf Sinnhaftigkeit für eine Musik-Session, oder auch nur auf Lauffähigkeit. Sie finden hier `ls` wie auch `argodejo` selbst.
== Programm-Datenbank
Argodejos 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 Argodejo-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 Argodejo 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.
=== 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.
== Tray
Argodejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das
Trayicon zeigt oder versteckt Argodejo.
Schließt man Argodejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das
Programm und die Session nicht beendet, sondern in den Tray minimiert.
Ist das Argodejofenster versteckt und wird über das Traymenü geschlossen (s.u.) wird Argodejo beim
nächsten Start auch als Trayicon gestartet. Somit ist es möglich weiter zu arbeiten ohne sich mit
dem Programmfenster befassen zu müssen.
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.
Argodejo kann hier auch komplett beendet werden.
== Netzwerk-Sessions
Die Funktionalität Sessions im lokalen Netzwerk zu verteilen ist für eine spätere Programmversion
vorgesehen.
== Programmparameter
Als fortgeschrittener Benutzer können Sie Argodejo im Terminal starten und dort einige Parameter
angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.
* `--session-root /home/benutzer/produktion2020` setzt das Wurzelverzeichnis. Nur Sessions in diesem Verzeichnis werden angezeigt, alles wird dort gespeichert.
* `--session neuesAlbum/meinLied` startet direkt die angegebene Session.
* `--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.
* 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.