Titel Klassischer Musik: lange Angaben zur Besetzung ausschneiden und in Subtitle oder Comment einfügen

In Titeln zu Werken Klassischen Musik gibt es häufig überlange Strings zu Besetzungsangaben. Ich frage mich, ob es möglich wäre, diese aus dem Track-Titel auszuschneiden und z.B. in das SUBTITLE-Feld einzufügen ?

Octet (Parthia No. 2) for 2 oboes, 2 clarinets, 2 horns, 2 bassoons and bass
Quintet for oboe, clarinet, horn, bassoon and piano in E flat major, Op 43
Septet, for clarinet, bassoon, horn, 2 violins, cello and bass

Also:
Title = Octet (Parthia No. 2)
Subtitle = for 2 oboes, 2 clarinets, 2 horns, 2 bassoons and bass

Die Aufgabenstellung könnte ausformuliert so lauten:
Finde [ for * and bass] oder [ for * and piano]
schneide diesen String (diese Variable) aus
füge diesen String in das Feld Subtitle ein.

Lässt sich eine solche Aufgabenstellung mit den "Hausmitteln" von mp3tag darstellen?

  1. Frage: ich arbeite bei Änderungen im Titelfeld gerne mit $replace; Kann man in $replace reguläre Ausdrücke wie (.+) etc. einbauen ?

Danke & Gruß, Lerob

zu 1:
Probier doch mal eine Aktion vom Typ "Tag-Felder importieren"
Quelle: %title%
Format String: %title% for %subtitle%

zu 2: das Äquivalent zur Funktion "Ersetzen mit regulärem Ausdruck" ist $regexp()
In der kann man auch (.+) einbauen.

Danke für Deine Rückmeldung, ohrenkino;
Die Aktion: "Tag-Felder importieren" mit dem Format String %title% for %subtitle% hilft leider nicht wirklich weiter. Ich habe mein Fall-Beispiel leider zu verkürzt dargestellt. Darum konntest Du Dir natürlich kein zutreffendes Bild von der Ausgangslage machen. Sorry.

Ausgangsmaterial Title: Serenade for 7 wind instruments in A major, Op. 14- Andante con espressione - Allegretto comodo
soll werden zu:
Title: Serenade A-dur, op.14: III. Andante con espressione - Allegretto comodo
Subtitle: for 7 wind instruments

Ausgangsmaterial Title: Nonet for strings & winds in E flat major, Op. 38- Adagio - Allegro
soll werden zu:
Title: Nonett Es-dur, op.38: I. Adagio - Allegro
Subtitle: for strings & winds

Ausgangsmaterial Title: Quintet for oboe, clarinet, horn, bassoon & piano in E flat major, Op 43- Allegro giocoso
soll werden zu:
Title: Klavierquintett Es-dur, op.43: IV. Allegro giocoso
Subtitle: for oboe, clarinet, horn, bassoon & piano

Der Focus soll(te) bei meiner Anfrage darauf liegen, dass alles, was Besetzung ist (z.B. for oboe, clarinet, horn, Basson & piano) in das Subtitle-Feld einzufügen ist. Und der Rest, also die Informationen davor UND danach im Titelfeld verbleiben sollen (zur weiteren Umformung).

Ich habe die vergangenen 2 Tage eine eigene Methode ausprobiert, die aber etwas "unsexy" und umständlich ist:

  1. Ich kopiere den gesamten Inhalt des Feldes Title mit dem Kommando/Formatstring "$meta(title)" in das Zielfeld "SUBTITLE"
  2. Ich schneide im Subtitle-Feld mit dem Scriptbefehl "$cutLeft(%title%,$strstr(%title%, for ) )" alles ab, was links vor dem Wort "for" steht.
    Für die Aufgabe, alle Info nach der Besetzung im Subtitle-Feld abzuschneiden, habe ich eine Unzahl von $cutRight() Befehlen geschrieben.
  3. Um wiederum aus dem originalen Titel-Feld die Instrumental-Besetzungen zu eliminieren, gibt es bei mir viele Replace-Aktionen und mehrere Kommandos "Ersetzen mit regulärem Ausdruck".
    [$regexp() korrekt und erfolgreich anzuwenden, da hatte ich so meine Schwierigkeiten. Dazu unten noch Fragen]

Mir persönlich fehlen auf den Hilfe-Seiten von mp3tag zu den Script-Befehlen die Anschauungsbeispiele. (Das soll den großartigen Verdienst und die großartige Arbeit von Florian in keinster Weise schmälern). Aber dann könnte ich besser und selbstständiger die eine oder andere Transferleistung für meine Aufgabestellungen bewerkstelligen.

"Tag-Felder importieren" schneidet bei mir mit dem Format String -> "%title% for %subtitle%" ALLES rechts ab. Format String -> "%title% for %subtitle% in %title% schneidet ALLES links nach der Beseztung ab. Also, keine geeigneten Optionen.

Wie könnte man meine Aufgabenstellung cleverer lösen? Idee ?
Wo und wie kann ich mich schnell und praxisnah schlau machen, ob und wie ich mit If-Kommandos meine Aufgaben lösen könnte? Gibt es andere Lösungsalternativen? Ideen?

Ich danke Dir, ohrenkino, natürlich auch für Deinen 2ten Hinweis, dass ich $regexpr() ähnlich wie $replace für eine ganze Aufreihung von x-möglichen Suchen/Ersetzen-Kommandos verwenden kann, in denen reguläre Ausdrücke zur Anwendung kommen können. Auch dies konnte ich so aus dem Hilfetext von mp3tag nicht erschließen.

Nun, bei der Umsetzung und Anwendung habe ich als Neuling natürlich mit einer Vielzahl von Problemen zu kämpfen. Eines davon ist die UTF-Codierung. Es handelt sich doch beim Schriftsatz innerhalb der mp3tag-Aktionen um den Codec UTF? UTF-8 oder was anderes?

Um die vielen Aktionen und Befehlszeilen einer meiner Aktionsgruppe besser lesen oder mit einem Macro über die Befehlszeilen hinweg abändern zu können, habe ich diese Zeilen bedauerlicherweise nach Microsoft-Word kopiert, dort überarbeitet und anschließend wieder in das Aktionsfenster von mp3tag zurückkopiert. Ich konnte mir lange Zeit so manches Fehlergebnis mit meinen $regexp()-Kommandos nicht erklären. Gegenproben mit "Ersetzen mit regulärem Ausdruck" funktionierten.
Letztendlich kam ich zu der Erkenntnis, dass Maskierungen, z.B. des Kommas, mit dem Hoch-Komma, in Word geschrieben und nach mp3tag kopiert, nicht funktionieren. Erst als ich alle Hochkommas in mp3tag manuell ersetzte, bekam ich die Aktion erfolgreich zum Laufen. Also, mp3tag mag keinen ANSI-Code?!

Daher frage ich, mit welcher Kodierung muss ich in Word geschriebene Aktionen abspeichern, damit ich sie erfolgreich in mp3tag verwenden kann?
Warum ich Word als Editor verwende? Weil ich mit der VBA-Macrosprach von Word gut zurechtkomme, um Massenänderungen durchzuführen.

Ich danke für die Geduld und Zeit, die nötig war, meine Nachricht überhaupt zu lesen und jedem, der mir mit einem Tip weiterhelfen kann und mag. Gruß, Lerob

Tja, GIGO.
Davon ab: du kannst sehr wohl mit der Aktion "Tag-Felder importieren" die Daten so aufspalten, dass man sie weiterverwenden kann.
Mit
Quelle: %title%
Ziel: %title% for %subtitle% Op. %myopus%
bekommst du meiner Ansicht nach alles nach "Op." in ein benutzerdefiniertes Feld MYOPUS.
Das hängst du an TITLE an mit einer Aktion von Typ "Tag-Feld formatieren" oder mit Convert>Tag-Tag für TITLE
Format string: %title% Op. %myopus%
Anschließend löscht du das Feld MYOPUS.

Es hat sich gezeigt, dass die Hilfe wohl selten konsultiert wird (Ausnahmen bestätigen die Regel) und die Anwendungsfälle eher hier im Forum zu finden sind.

Wie bist du denn auf die Gleichsetzung von Aktion "Ersetzen" mit $replace() gekommen?

Du kannst den Ausdruck eines Formatstrings in Konverter>Tag-Tag testen, da gibt es eine Vorschau.
Die Bearbeitung von Aktionen in einem anderen Editor als dem, den MP3tag mitliefert, wird nicht empfohlen und nicht unterstützt.