Ho una libreria di iTunes piuttosto grande (~ 300 GB) che è principalmente musica classica. Mi piace molto il formato Work and Movement, ma purtroppo non è pratico aggiornare manualmente i miei metadati nel formato Work and Movement. Quasi tutti i tag dei brani esistenti sono nel seguente formato:
Telemann - Concerto in E minor: I. Andante
II. Allegro
III. Largo
IV. Allegro
etc.
Uno script che potrebbe automatizzare l'aggiornamento del sistema di codifica sarebbe il seguente.
- Su tutti i brani selezionati, copia il tag Song sul tag Movement
- Elimina il numero romano, il periodo e lo spazio dalla parte anteriore del tag Movimento. Oppure, nel formato in cui è incluso l'intero nome del lavoro nel tag Song, eliminalo.
Qualsiasi aiuto o suggerimento per l'implementazione di questo script sarebbe molto utile. Ho esaminato e utilizzato script di lavoro e movimento di Doug , ma non coprono il processo di abbinamento che sarebbe necessario per cancellare i numeri romani dall'inizio.
Modifica
È diventato evidente che molti dei tag non sono nel formato sopra, ma in un formato come il seguente:
Serenade for strings in C major, Op. 48 - I. Allegro
Serenade for strings in C major, Op. 48 - II. Adagio
Serenade for strings in C major, Op. 48 - III. Allegro moderato
etc.
OR nello stesso formato di cui sopra tranne che per l'uso di numeri arabi al posto dei numeri romani.
Lo script dovrebbe portare i tag "Movimento" con i seguenti output:
Allegro
Adagio
Allegro moderato
L'idea è che otterrei la prima parte di questo ("Serenade per le stringhe in Do maggiore, Op. 48") e la copio nel tag "work", che ho già implementato, quindi ottengo il testo rimanente, rimuovere i numeri di movimento e assegnarlo al tag Movimento. Qualsiasi aiuto sull'implementazione di un sistema che lo farebbe sarebbe apprezzato.
Ecco lo script nella sua forma attuale. È basato sullo script Doug's Name to Work.
tell application "iTunes"
set sel to selection of front browser window
if sel is {} then
try
display dialog "Nothing is selected…" buttons {"Quit"} with icon 0
end try
return
end if
set c to (count of sel)
set songName to (get name of item 1 of sel)
set userOptions to display dialog "Edit for Work name and then click OK." default answer songName --prompt for work name
repeat with i from 1 to c --set the movement numbers
set thisTrack to item i of sel
try
set work of thisTrack to text returned of userOptions
set movement number of thisTrack to i
set movement count of thisTrack to c
set movement of thisTrack to my delRomNum(name of thisTrack) -- copy movement text from song name and delete roman numerals
end try
end repeat
end tell
on delRomNum(t) -- the perl command search and delete any roman numeral (must be a word followed by the period and a space character)
do shell script "/usr/bin/perl -pe 's/\b[IVXLCDM]+\b. //g' <<< " & quoted form of t
end delRomNum