Zum Inhalt springen
MusicStation – Start

Versionsverlauf

Ein MusicStation-Projekt führt einen Versionsverlauf: benannte Momentaufnahmen der Sitzung, die Sie ansehen, vergleichen und zu denen Sie zurückkehren können. Der Verlauf gehört zu genau einer Projektdatei - die Engine legt ihn in einem Verzeichnis neben dieser Datei ab (<name>.mshproj.history/) -, zwei Projekte haben also zwei Verläufe, und eine Version des einen ist nie eine Version des anderen. Beim Speichern mit eingeschalteter Voreinstellung Momentaufnahme beim Speichern und beim Wiederherstellen einer älteren Version entstehen von selbst Einträge in diesem Verlauf; alles andere tun Sie hier.

Gezeigt wird der Verlauf vom Bereich Verlauf, den Projekt ▸ Versionsverlauf und das Menü Panels einblenden. Die mitgelieferten Arbeitsbereiche Aufnahme und Mix docken den Bereich in ihrer rechten Spalte an, jeder andere Arbeitsbereich zeigt ihn, wenn Sie ihn aufrufen. Dieses Kapitel beschreibt den Bereich und die drei Dialoge, die er öffnet. Nichts davon liegt auf dem Audiopfad: Auflisten, Vergleichen und Momentaufnahmen lassen den Transport unberührt, und die eine Aktion, die die Sitzung ändert - Wiederherstellen -, tut genau das, was Öffnen… mit einer Datei tut, mitsamt dem unten beschriebenen Sicherheitsnetz.

Der Bereich

Der Inhalt des Bereichs Verlauf ist die Zeitleiste der Versionen des aktuellen Projekts. Über der Liste steht seine Kopfzeile: der Titel Versionsverlauf, die Schaltfläche Momentaufnahme, die Schaltfläche Vergleichen und - nach einem fehlgeschlagenen Befehl der Projekt-Oberfläche - der übersetzte Satz, für den die Antwort der Engine steht; eine abgelehnte Aktion bleibt also nie stumm.

Die Liste führt je Version eine Zeile auf, die neueste zuerst, in der Reihenfolge, die die Engine gemeldet hat - die Oberfläche sortiert nie um und fasst nichts zusammen, und zwei Versionen, die in derselben Sekunde entstanden sind, behalten ebenfalls ihre Reihenfolge. Eine Zeile zeigt:

  • die Beschriftung der Version: den von Ihnen vergebenen Namen, unverändert und nie übersetzt, oder die übersetzte Beschriftung einer Kennung, die die Engine für ihre eigenen Einträge verwendet - Momentaufnahme beim Speichern für die Momentaufnahme eines Speichervorgangs und Vor dem Wiederherstellen für die Kopie, die ein Wiederherstellen vom ersetzten Stand angelegt hat;
  • Datum und Uhrzeit der Version, geschrieben in der Sprache und Zeitzone Ihres Rechners;
  • die Notiz, die Sie dazu abgelegt haben, in einer zweiten Zeile, solange sie nicht leer ist;
  • die Markierung automatisch, wenn die Engine den Eintrag selbst angelegt hat, und die Markierung aktuell in der Akzentfarbe an der Zeile, die dem Stand entspricht, den Sie gerade sehen.

Die Markierung aktuell ist genau und keine Vermutung: Eine Zeile trägt sie, solange die Sitzung dem Dokument genau dieser Version entspricht - nach dem Speichern, Öffnen, Anlegen oder Wiederherstellen, das sie geschrieben hat, und nie, solange das Projekt in der Kopfzeile als nicht gespeichert markiert ist. Ändern Sie einen Clip, ist keine Zeile mehr markiert, bis Sie wieder speichern oder eine Momentaufnahme anlegen; die zuletzt markierte Zeile behält Platz, Namen und Notiz.

Jede Zeile trägt ihre eigenen Aktionen: Ein Druck auf die Zeile wählt sie für einen Vergleich aus, und die drei Schaltflächen darunter öffnen ein Umbenennen, ein Löschen oder ein Wiederherstellen genau dieser Version. Die Liste selbst ist Datenmaterial zum Lesen; die Oberfläche erfindet nie einen Eintrag, entfernt nie einen und sortiert nie um.

Statt der Liste zeigt der Bereich einen Satz, wenn es nichts aufzuführen gibt:

  • Es besteht keine Verbindung zur Engine., solange die Oberfläche nicht mit der Engine verbunden ist - die Versionsliste ist Zustand der Engine wie jeder andere Wert und wird deshalb nicht zwischengespeichert;
  • Es ist kein Projekt geöffnet. Speichern oder öffnen Sie ein Projekt, damit sein Verlauf geführt wird., solange die Sitzung noch keine Datei hat. Jeder Befehl dieses Kapitels braucht ein Projekt: Ohne einen Pfad zum Speichern kann die Engine keinen Verlauf führen;
  • Für dieses Projekt gibt es noch keine Versionen., solange die Datei existiert, aber noch keinen Eintrag hat - ein völlig normaler Zustand für ein Projekt, das nie mit eingeschalteter Voreinstellung gespeichert und nie als Momentaufnahme abgelegt wurde.

Die Engine führt höchstens 200 Versionen je Projekt. Überschreitet eine neue Version diese Grenze, räumt sie ältere Einträge von selbst weg - und zwar zuerst ihre eigenen automatischen Momentaufnahmen, vor den Versionen, die Sie angelegt und benannt haben; eine lange Reihe von Speichervorgängen frisst Ihre Prüfpunkte also nicht auf. Das Aufräumen braucht keine Aktion und hat kein Bedienelement: Die Liste wächst einfach nie über die Grenze hinaus.

Schreibende Aktionen sind gesperrt, solange die Oberfläche nicht verbunden ist, solange die Sitzung kein Projekt hat und solange ein Anwenden - ein Öffnen… oder ein Wiederherstellen - nicht abgeschlossen ist: Die Schaltflächen sind sichtbar, wirken aber nicht, weil die Engine diese Befehle während eines halb angewendeten Dokuments ablehnt. Das Lesen ist davon nicht betroffen: Die Liste wird aktualisiert, wenn der Bereich erscheint und wenn sich Verbindung oder Projekt ändern, und ein Speichern oder Öffnen führt sie ebenfalls neu auf.

Momentaufnahme

Momentaufnahme in der Kopfzeile des Bereichs legt den Stand, den Sie gerade sehen, als benannte Version des Projekts ab. Sie öffnet den Dialog Momentaufnahme anlegen mit zwei Feldern:

  • Name - die Beschriftung der Version, 1 bis 120 Zeichen. Sie ist Anwenderdaten und wird in jeder Sprache genau so gezeigt, wie Sie sie eingegeben haben.
  • Notiz - worum es in dieser Version geht, 0 bis 2000 Zeichen. Sie erscheint als zweite Zeile der Zeile in der Liste und wird ebenfalls nie übersetzt.

Anlegen legt die Version ab; die Schaltfläche bleibt gesperrt, solange einer der beiden Werte ungültig ist - in der Praxis, bis das Namensfeld gefüllt ist, denn das Namensfeld selbst endet an seiner Grenze und nur eine eingefügte Notiz kann zu lang werden. Auch die Eingabetaste im Namensfeld schickt das Formular ab. Der Entwurf wird beim Tippen geprüft: Bitte geben Sie einen Namen ein. bei einem leeren Feld, Der Name darf höchstens 120 Zeichen lang sein. und Die Notiz darf höchstens 2000 Zeichen lang sein., solange der jeweilige Text zu lang ist - das Feld selbst endet an seiner Grenze, die Notiz ist also die, die sie durch Einfügen erreichen kann. Ein Entwurf, der nicht abgeschickt werden kann, ändert nichts.

Abbrechen, Escape und ein Klick auf die abgedunkelte Fläche rund um den Dialog schließen ihn, ohne etwas abzulegen. Eine abgelegte Momentaufnahme erscheint sofort oben in der Liste. Sie trägt die Markierung aktuell, solange das Projekt in der Kopfzeile nicht als nicht gespeichert markiert ist: Der Stand, den sie enthält, ist der Stand, den Sie sehen, aber eine Momentaufnahme schreibt die Projektdatei nicht, eine Sitzung mit ungespeicherten Änderungen trägt die Markierung also erst nach dem Speichern. Ihr Name darf der Name einer anderen Version sein - zwei Zeilen können dieselbe Beschriftung tragen, Datum, Notiz und Markierungen unterscheiden sie -, und sie ist eine benannte Version und keine automatische, deshalb wird sie nie vor Ihren automatischen Momentaufnahmen weggeräumt.

Eine Momentaufnahme ist der sichere Weg, einen Punkt zu markieren, zu dem Sie vielleicht zurückwollen. Von selbst legt die Engine keine an: Der automatische Eintrag Momentaufnahme beim Speichern entsteht nur, solange die Voreinstellung Momentaufnahme beim Speichern eingeschaltet ist und Sie speichern. Er steht für einen Speichervorgang, der wirklich stattgefunden hat: Ein Speichern, das die Engine ablehnt, schreibt nichts und legt auch keine Momentaufnahme an (siehe Speichern) - die Liste bleibt dann, wie sie war.

Umbenennen

Umbenennen unter der Zeile einer Version öffnet den Dialog Version umbenennen mit beiden Feldern so gefüllt, wie die Version sie trägt. Korrigieren Sie Name und Notiz - dieselben Grenzen und dieselben Hinweise wie bei Momentaufnahme - und drücken Sie Umbenennen oder die Eingabetaste im Namensfeld, um sie zu schreiben. Die Zeile, der Vergleich einer späteren Gegenüberstellung und die Frage eines Löschens oder Wiederherstellens nennen die Version von da an mit dem neuen Text.

Eine automatische Version umzubenennen ist erlaubt und ersetzt ihre übersetzte Kennung durch Ihren Text: Die Zeile ist weiterhin als automatisch markiert, ihre Beschriftung ist aber von da an der Name, den Sie eingegeben haben. Die Kennung zu ersetzen ändert nicht, was die Version enthält - eine umbenannte Speicher-Momentaufnahme bleibt das Dokument, das dieser Speichervorgang geschrieben hat. Abbrechen, Escape und ein Klick außerhalb des Dialogs lassen die Version so, wie sie war.

Ein fehlgeschlagenes Umbenennen wird in der Kopfzeile des Bereichs gemeldet und ändert nichts; eine inzwischen gelöschte Version wird dort als nicht mehr vorhanden beantwortet.

Löschen

Löschen unter der Zeile einer Version entfernt diese Version. Es fragt vorher nach: Der Dialog Version löschen nennt die Zeile - „{name}“ löschen? Das lässt sich nicht rückgängig machen. - und bietet Löschen und Abbrechen. Nur Löschen entfernt die Version samt dem Dokument, das die Engine für sie abgelegt hat. Abbrechen, Escape und ein Klick außerhalb des Dialogs verwerfen die Frage.

Das Löschen lässt sich nicht rückgängig machen, und Löschen ist nicht dasselbe wie Zurückgehen: Die Sitzung, die Sie sehen, wird überhaupt nicht berührt. Die einzige sichtbare Folge über die Zeile hinaus ist die Markierung aktuell - eine Version, die sie trug, ist weg, also ist keine Zeile mehr markiert, bis die Sitzung wieder einem anderen abgelegten Dokument entspricht. Die Engine räumt ihre eigenen Einträge weg, wenn die Liste über ihre Grenze wächst; Löschen ist also für die Einträge gedacht, die Sie jetzt aus dem Weg haben wollen.

Wiederherstellen

Wiederherstellen unter der Zeile einer Version macht das Dokument dieser Version wieder zur Sitzung, und zwar ohne Verlust: Der Stand, den Sie sehen, geht nicht verloren. Es fragt vorher nach - der Dialog Version wiederherstellen sagt „{name}“ wiederherstellen? Der aktuelle Stand wird als neue Version gesichert, es geht also nichts verloren. - und bietet Wiederherstellen und Abbrechen.

Wiederherstellen führt zwei Schritte aus, beide in der Engine:

  1. Sie legt den Stand vor dem Wiederherstellen als neue automatische Version ab, beschriftet mit Vor dem Wiederherstellen und abgeleitet von der Version, die Sie gewählt haben; der Weg zurück steht also schon in der Liste;
  2. Sie wendet das abgelegte Dokument nach genau der Regel an, nach der Öffnen… eine Datei anwendet - dieselbe Regel in beiden Kapiteln, nie zwei: Zuerst fragt die Engine die Größe jeder verschiedenen Quelldatei ab, die das Dokument referenziert, und sonst nichts (kein Sample wird gelesen, keine Datei gehasht). Danach wird jeder Slot des Rasters durch die Slots des Dokuments ersetzt. Ein Slot, den das Dokument nicht aufführt, wird geleert - ein klingender Clip stoppt, ohne Ausblendung. Ein Slot, dessen Datei unverändert ist - derselbe Pfad und dieselbe Größe, mit der die Engine sie zuletzt gelesen hat -, behält seinen Clip, und seine Datei wird nicht erneut gelesen. Ein Slot, dessen Datei sich in der Größe geändert hat, wird geleert und erneut mit den Grenzen eines Clip-Ladens dekodiert. Ein Slot, dessen Datei fehlt, lässt sich gar nicht lesen: Er wird geleert, als fehlgeschlagenes Laden gemeldet, und der Loader wird nie danach gefragt - der Rest des Projekts wird angewendet, die Antwort ist weiterhin eine Bestätigung, und das Projekt gilt danach als nicht gespeichert, weil die Sitzung sich dann von dem Dokument unterscheidet, das sie erhalten hat.

Weil immer nur die Größe abgefragt wird, zählt eine Quelldatei, die durch eine andere Datei exakt derselben Größe ersetzt wurde, als unverändert - das ist der Preis dafür, nicht bei jedem Anwenden jede Quelle zu lesen.

Die Aktion wird beantwortet, wenn das Anwenden abgeschlossen ist - bei einem Projekt mit geänderten Dateien kann das einen Augenblick dauern -, und die Antwort nennt die Version, die Schritt 1 angelegt hat. Bis dahin behält die Sitzung den Stand, den Sie sehen; solange das Anwenden läuft, lehnt die Engine die schreibenden Befehle des Projekts ab (der Bereich zeigt ihre Schaltflächen gesperrt), und das Vergleichen zweier Versionen funktioniert weiterhin. Danach trägt die wiederhergestellte Zeile die Markierung aktuell: Der Stand ist der, den die Version enthält, und Vor dem Wiederherstellen ist die Kopie dessen, was Sie verlassen haben.

Abbrechen, Escape und ein Klick außerhalb des Dialogs ändern überhaupt nichts - nicht einmal eine Version.

Vergleichen

Vergleichen zeigt, was sich zwischen zwei Versionen geändert hat. Beide Hälften der Aktion liegen im Bereich:

  • Auswählen - ein Druck auf die Zeile einer Version wählt sie aus (die Zeile ist eine eingerastete Schaltfläche: erneut drücken nimmt die Auswahl zurück). Der Bereich behält die letzten zwei Auswahlen, eine dritte Zeile ersetzt also die ältere der beiden; jede Auswahl wird mit der Beschriftung der Version, ihrem Datum, ob sie automatisch oder aktuell ist, und ihrer Notiz angesagt.
  • Vergleichen - die Schaltfläche Vergleichen in der Kopfzeile des Bereichs ist genau dann freigegeben, wenn zwei Zeilen ausgewählt sind und die Oberfläche mit der Engine verbunden ist; sie öffnet den Vergleich. Die ältere Auswahl ist die Seite Vorher, jede Zeile des Ergebnisses liest sich also als die Änderung, die die neuere Version gebracht hat. Zwei Versionen derselben Sekunde behalten die Reihenfolge der Engine, und diese Reihenfolge entscheidet, welche von beiden als die neuere gilt.

Das Vergleichen liest nur die beiden abgelegten Dokumente, funktioniert deshalb auch, während ein Anwenden läuft, und ändert nichts: weder die Sitzung noch die Versionsliste. Gelesen wird genau das, was eine Projektdatei enthält - die Clips mit ihren Quelldateien, das Tempo, die Start-Quantisierung und die Spurfarben -, und sonst nichts: Mixer-Werte und der Zustand von Plugins gehören noch zu keinem Projekt und werden deshalb nie verglichen (siehe Der Vergleich). Einen Vergleich, den die Engine ablehnt - etwa eine inzwischen gelöschte Zeile -, meldet die Kopfzeile des Bereichs mit ihrem übersetzten Grund, und die ausgewählten Zeilen bleiben ausgewählt. Die Auswahl ist Zustand der Oberfläche und wird nirgends gespeichert; eine Zeile, die nicht mehr in der Liste steht, fällt aus dem Paar heraus, statt als veraltete Version verglichen zu werden.

Der Vergleich

Der Dialog Versionen vergleichen zeigt die Änderung von der älteren zur neueren Version. Die Zeile oben nennt die beiden Seiten als {from} → {to}, und darunter steht jeder Unterschied in einer Tabelle, gruppiert nach dem, was er betrifft - Clips, Tempo, Quantisierung und Spurfarben. Jede Tabelle hat vier Spalten: Slot (die Rasteradresse, zu der eine Zeile gehört, leer bei den beiden dokumentweiten Arten), Eigenschaft, Vorher und Nachher.

Aufgeführt wird nur, was sich wirklich unterscheidet: Eine Eigenschaft, die in beiden Versionen gleich ist, erscheint nie, und ein Slot, der in der einen Version einen Clip trägt und in der anderen keinen, bekommt die einzelne Zeile Clip statt dreier Zeilen über diesen Clip. Die Namen der Eigenschaften, die diese Version kennt, sind Clip, Quelldatei, Dateigröße und Loop für Clips, Tempo für das Tempo, Quantisierung für die Start-Quantisierung und Spurfarbe für die Farbe einer Spur. Die beiden Seiten werden so gezeigt, wie die Oberfläche Werte überall liest - Zahlen in der Sprache der Oberfläche, Ja/Nein für das Loop-Kennzeichen, nicht gesetzt für einen Wert, den es auf dieser Seite nicht gibt, und eine Quelldatei als ihr Basisname, weil der vollständige Pfad nur auf dem Rechner etwas bedeutet, auf dem die Engine läuft. Eine Art oder eine Eigenschaft, die diese Version nicht kennt, behält ihren technischen Namen, statt zu verschwinden.

Ein Vergleich deckt genau das ab, was eine Projektdatei enthält: die Clips mit ihren Quelldateien (den Pfad und die Dateigröße), das Tempo, die Start-Quantisierung und die Spurfarben - die vier Tabellen oben und sonst nichts. Mixer-Werte und der Zustand von Plugins sind noch kein Bestandteil eines Projektdokuments, deshalb erscheinen sie nie in einem Vergleich, wie stark sie sich auch unterscheiden; sie kommen mit einer eigenen Projektformat-Version. Zwei Sitzungen, die sich nur in einem Mixer- oder Plugin-Wert unterscheiden, gelten im Vergleich also als gleich.

Zwei Versionen, die dasselbe Dokument enthalten, haben keine Unterschiede, und der Dialog sagt das: Die beiden Versionen unterscheiden sich nicht. Das ist die Antwort auf den Vergleich zweier Speichervorgänge, die nichts geändert haben - nur die Abtastrate des Geräts oder einen Wert zu ändern, den das Format absichtlich ignoriert, hinterlässt keinen Unterschied, und das ist so gewollt. Schließen, Escape und ein Klick auf die abgedunkelte Fläche legen den Vergleich weg; die Antwort wird nicht gespeichert, sie gehört zu den beiden Versionen, die Sie ausgewählt haben.

Ein Vergleich berührt die Sitzung nie: kein Clip wird geladen oder gestoppt, kein Tempo gesetzt, und es geht nichts an die Engine außer dem einen lesenden Befehl.

Schließen

Schließen ist das Bedienelement, das einen Dialog dieses Kapitels weglegt, und es ist in allen dasselbe: die Schaltfläche Schließen des Vergleichs, die Schaltfläche Abbrechen der beiden Rückfragen und des Formulars für Momentaufnahme und Umbenennen. Escape und ein Klick auf die abgedunkelte Fläche rund um den Dialog bewirken in jedem von ihnen dasselbe.

Das Schließen eines Dialogs ist kein Rückgängigmachen. Alles, was Sie darin bestätigt haben - eine abgelegte Momentaufnahme, ein Umbenennen, ein Löschen, ein Wiederherstellen -, hat die Engine in dem Augenblick erreicht, in dem Sie es bestätigt haben; nur eine Frage, die noch auf eine Antwort wartete (eine Rückfrage zu Löschen oder Wiederherstellen, ein Entwurf im Formular der Momentaufnahme), wird verworfen.

Arbeitsablauf: einen Prüfpunkt vor einer riskanten Änderung anlegen

  1. Blenden Sie den Bereich Verlauf ein - mit Projekt ▸ Versionsverlauf oder mit einem Eintrag des Menüs Panels.
  2. Drücken Sie Momentaufnahme, geben Sie einen Namen wie Vor dem Mix und eine Notiz ein, die Sie auch in einer Woche noch verstehen, und drücken Sie Anlegen.
  3. Arbeiten Sie weiter: Die Zeile bleibt in der Liste und ist als aktuell markiert, solange die Sitzung ihr entspricht und das Projekt nicht als nicht gespeichert markiert ist - die erste Änderung entfernt die Sitzung von ihr, und die Markierung erlischt.
  4. Wollen Sie zurück, drücken Sie Wiederherstellen unter dieser Zeile und bestätigen - der Stand, den Sie verlassen, bleibt als Vor dem Wiederherstellen in der Liste.
  5. Machen Sie es zur Gewohnheit, solange die Voreinstellung Momentaufnahme beim Speichern eingeschaltet ist: Jeder Speichervorgang, der durchgeht, legt seinen eigenen Eintrag Momentaufnahme beim Speichern an; Ihre benannten Prüfpunkte fallen in der Liste also auf. Ein Speichern, das die Engine ablehnt, legt keinen an (siehe Speichern).

Arbeitsablauf: herausfinden, was sich zwischen zwei Speichervorgängen geändert hat

  1. Speichern Sie das Projekt (siehe Speichern) - bei eingeschalteter Voreinstellung hinterlässt jeder Speichervorgang einen Eintrag im Versionsverlauf.
  2. Drücken Sie die Zeile der älteren der beiden Versionen und danach die der neueren; beide Zeilen sind markiert, und die ältere Auswahl ist die Seite Vorher.
  3. Drücken Sie Vergleichen. Der Vergleich führt jeden geänderten Clip, das Tempo, die Quantisierung und die Spurfarben auf.
  4. Drücken Sie Schließen, um zur Liste zurückzukehren. Die Auswahl bleibt, Sie können dasselbe Paar also mit einer dritten Zeile gegen eine weitere Version vergleichen.

Fernbedienung

Die Fernbedienung auf dem iPad kennt keinen Versionsverlauf: Sie führt Versionen weder auf noch legt, vergleicht oder stellt sie wieder her, und sie hat keine eigene Projekt-Oberfläche (siehe Fernbedienung für das iPad). Der Verlauf gehört zur Projektdatei auf dem Rechner der Engine, und ein auf dem Desktop ausgeführtes Wiederherstellen ist für die Fernbedienung einfach die Sitzung, die sie danach sieht - ihr Raster folgt der Domäne session wie nach jedem anderen Anwenden.