Ho un oggetto Applescript che riporta il nome del brano attualmente in riproduzione, l'album, il numero del brano e il numero totale di brani dell'album. Se l'album proviene da un singolo CD o se il brano proviene dal CD 1 di un album multi-CD, tutto funziona e ottengo il seguente:
Song 2 of 30
Tuttavia, se l'album proviene da un set multi-CD, il numero del brano non è corretto per i brani da CD 2, CD 3, ecc. Ecco un esempio: L'Elisir d'Amore ha due CD e, in iTunes, è inserito come tale (ad esempio, CD 1 di 2 e CD 2 di 2). Lo script riporta correttamente che ci sono 30 canzoni (16 su CD 1 e 14 su CD 2). Durante la riproduzione di un brano dal CD 1, tutto è accurato. Quando si riproduce un brano dal CD 2, il numero del brano ricomincia da 1, quindi l'ultima canzone appare come
Song 14 of 30
perché è la quattordicesima canzone su CD 2. C'è un modo per far sì che la sceneggiatura riproduca la Canzone 30 di 30 per l'ultima canzone su CD 2 senza un certo sforzo di capire il numero di CD, quindi di contare i brani in CD 1 e poi aggiungendo al numero di traccia della canzone nel CD 2? Questo kludge diventa piuttosto brutto per gli album che coprono fino a 14 CD.
Ecco il bit di codice semplificato:
tell application "iTunes"
-- code to check that there is a current song
set z_album to album of current track as string
set z_num to count of (every track whose album is z_album)
set z_song to name of current track as string
set z_trk to track number of current track
log z_song & " (" & z_trk & " of " & z_num & ")"
end tell