Newsgroup: it.comp.macintosh
Titolo: iTunes e ordine canzoni

Ciao a tutti. Ho molti album le cui canzoni sono ordinate secondo il 
nome file, del tipo
01 - canzone.mp3
02 - canzone.mp3
ecc ecc
Importandole in iTunes toglie il numero davanti e mi tocca riordinarle 
andando sulle proprietà di ogni singola canzone: un lavoro eterno.
Ok che le canzoni le ho comunque tutte, ma è possibile settare iTunes in 
modo che le importi secondo l'ordine originale?
grazie
riddick

).
Alex

 andando sulle proprietą di ogni singola canzone: un lavoro eterno.
Se le ordini per data di aggiunta?
-- 
Popi, dall'iBook 14" G3@900 MHz
Per avere il mio vero indirizzo di posta, eliminate *BILL GATES*! :-)

 
Allora, ho provato con la GUI....a meno che non abbia capito nulla, 
serve a convertire l'enconding del tag degli mp3.
Ma a me serve che lo modifichi seguendo l'ordine dei nomi file
riddick

 02 - canzone.mp3
Metti lo script qui sotto (da creare usando Script Editor) dentro
"~/Library/iTunes/Scripts":
tell application "iTunes"
set lista to {}
repeat with theTrack in (selection of window 1)
set lista to (lista & database ID of theTrack)
end repeat
repeat with i in lista
set traccia to (every track of library playlist 1 whose database ID is
(i as integer))
set nome to (the name of the first item of traccia) as string
set nuovonome to text 6 thru -1 of nome
set numero to ((character 1 of nome) & (character 2 of nome)) as integer
set the name of (the first item of traccia) to nuovonome
set the track number of (the first item of traccia) to numero
end repeat
end tell
Ti toglie il numero di traccia dal nome e te lo aggiunge nel tag.
-- 
"I have a very simple life, I have my family and I have Apple and Pixar.
And I don't do much else." S. J.

 wrote:
   ...

Eh, questo e` appunto il tipo di cose che si fa in due minuti con uno
scriptino Python di poche righe eseguito in modo testo da terminale.
Facciamo un esempio.  Anzitutto, scarico:
http://eyed3.nicfit.net/releases/eyeD3-0.6.3.tar.gz
e Safari me lo spacchetta in ~/downloads/eyeD3-0.6.3 -- ora apro il
terminale, vado in quel directory, e istallo eyeD3:
kallisti:~/downloads/eyeD3-0.6.3 alex$ ./configure
  [output snippato]
kallisti:~/downloads/eyeD3-0.6.3 alex$ make
  [output snippato]
kallisti:~/downloads/eyeD3-0.6.3 alex$ sudo make install
  [output snippato]
OK, adesso ho eyeD3 istallato e posso scrivere gli scriptini suddetti.
Diciamo ad esempio che ho un directory con qualche MP3 liberamente
scaricabile del gruppo Rève du Faun:
kallisti:~/downloads/revedufaun alex$ ls -l
total 21040
-rw-r--r--  1 alex  alex  2377438 30 Dec 09:20 dampton_worm.mp3
-rw-r--r--  1 alex  alex  4076442 30 Dec 09:20 four_green_fields.mp3
-rw-r--r--  1 alex  alex  2028442 30 Dec 09:20 lord_toad.mp3
-rw-r--r--  1 alex  alex  2280472 30 Dec 09:20 twa_corbies.mp3
Adesso voglio esaminare alcuni tag di base: album, numero di traccia,
titolo.  A questo scopo scrivo un piccolissimo scriptino exa.py usando
qualsiasi editor di testo e mettendolo in questo stesso directory, in
pratica...:
kallisti:~/downloads/revedufaun alex$ cat exa.py
import eyeD3, glob, sys
tag = eyeD3.Tag()
for f in glob.glob('*.mp3'):
    tag.link(f)
    print "%s: alb %s tk %s, %r" % (
            f, tag.getAlbum(), tag.getTrackNum(), tag.getTitle(), )
Questo itera su tutti gli mp3 del directory e per ciascuno mi mostra
nome file, album, numero di traccia, titolo.  Dunque, lo eseguo:
kallisti:~/downloads/revedufaun alex$ python exa.py 
dampton_worm.mp3: alb Demo tk (2, None), u'Dampton Worm'
four_green_fields.mp3: alb dampton_worm.mp3 tk (3, None), u'Four Green
Fields'
lord_toad.mp3: alb dampton_worm.mp3 tk (4, None), u"Lord Toad's Retreat"
twa_corbies.mp3: alb dampton_worm.mp3 tk (1, None), u'Twa
Corbies-Elizabeth'
Urk -- i nomi degli album sono tutti cannati (eccetto il primo).  OK, in
questo caso devo semplicemente sistemare tutti i nomi album.  Non
occorre neppure in questo caso che faccia uno script, perche` eyeD3 che
ho appena istallato ha uno script che 'ste cose (tipo, settare tutti i
nomi album allo stesso valore) le fa benissimo, quindi...:
kallisti:~/downloads/revedufaun alex$ eyeD3 -A RDF_demo *.mp3
   [snippo l'output]
e adesso esamino di nuovo i risultati:
kallisti:~/downloads/revedufaun alex$ python exa.py 
dampton_worm.mp3: alb RDF_demo tk (2, None), u'Dampton Worm'
four_green_fields.mp3: alb RDF_demo tk (3, None), u'Four Green Fields'
lord_toad.mp3: alb RDF_demo tk (4, None), u"Lord Toad's Retreat"
twa_corbies.mp3: alb RDF_demo tk (1, None), u'Twa Corbies-Elizabeth'
e mi soddisfano.  Ma diciamo per esempio che questo non mi basta: voglio
falsificare i titoli delle canzoni preponendovi in numero di traccia.
OK, e` solo questione di fare un altro scripticello, tipo...:
kallisti:~/downloads/revedufaun alex$ cat tracktotitle.py 
import eyeD3, glob, sys
tag = eyeD3.Tag()
for f in glob.glob('*.mp3'):
    tag.link(f)
    n, x = tag.getTrackNum()
    t = tag.getTitle()
    tag.setTitle('T%2.2d %s' % (n, t))
    tag.update()
lo eseguo...:
kallisti:~/downloads/revedufaun alex$ python tracktotitle.py 
ed esamino di nuovo i risultati:
kallisti:~/downloads/revedufaun alex$ python exa.py 
dampton_worm.mp3: alb RDF_demo tk (2, None), u'T02 Dampton Worm'
four_green_fields.mp3: alb RDF_demo tk (3, None), u'T03 Four Green
Fields'
lord_toad.mp3: alb RDF_demo tk (4, None), u"T04 Lord Toad's Retreat"
twa_corbies.mp3: alb RDF_demo tk (1, None), u'T01 Twa Corbies-Elizabeth'
...che sono appunto come desiderati.
Mi pare di capire che le modifiche che vuoi fare tu ai tag dipendano dal
filename (che sarebbe la variabile 'f' nel mio esempietto), ma la logica
non e` diversissima, dovrai solo estrarre il track-number (o quel che
e`) da f invece che via getTrackNum (che e` quel che faccio io perche`
nel mio caso i track number sono corretti nel tag e non codificati nei
filename) e comunque fare un setTitle (se vuoi settare il titolo del
brano, setAlbum per l'album, setComment se vuoi mettere un commento, ecc
ecc).
Non saprei come fare una GUI che dia la stessa flessibilita` di questi
microscopici scriptini, considerando tutte le possibili minuscole
modifiche a quel che uno potrebbe voler fare (prendere dati da vari tag
o dal filename, o magari anche altrove tipo un numero progressivo o che
so io; combinare i dati risultanti in stringhe in vari modi; mettere
quelle stringhe in vari tag...) -- e questo del tutto a parte il fatto
che fare una GUI potrebbe richiedere dieci volte piu` codice rispetto
alla decina o meno di righe che sono tipiche di questi scriptini.
Alex

 string del nome e lasciare il nome alle parole da 3 a -1 ?
Per il numero traccia forse sě, per il nome no: metti che la traccia si
chiami
"01 - ciao come va"
col tuo metodo il nome diventerebbe
"ciaocomeva". Tra l'altro non so perché, ma bisognerebbe mettere words 2
thru -1: evidentemente non considera "-" come una parola.


 microscopici scriptini
MP3 Rage. Fa questo e molto di più. Purtroppo non funge con gli aac.
-- 
Ve lo meritate Gil Amelio!

, non mi e`
chiaro ad esempio come dirgli cose tipo "prendi la prima parola del
filename e inseriscila davanti al tag del titolo" via GUI (immagino che
via script si faccia comodamente e senza nessuna fatica, ma e` appunto
quello il punto -- come ottenere da GUI la stessa flessibilita` che ti
puo` invece offrire senza fatica uno script?)...
Alex

 
Ok, l'ho visionato brevemente e l'ho acquistato, è ottimo.
Ora: sai darmi qualche consiglio? Te ad esempio come fai per mettere nel 
tag il numero di traccia in base all'ordine con il quale è nella 
cartella? (e quindi per nome)
del tipo
asha.mp3
bisha.mp3
cisha.mp3
zisha.mp3
devono poi avere nel tag i numeri di traccia 01, 02, 03...04 ecc.
E poi come si può fare per togliere il numerino dal nomefile? Tipo
01 - ofjdfofdf.mp3
02 - idfjidfjdf.mp3
03 - ifsifjsidf.mp3
vorrei che avessero nel tag il numero di traccia e il nome cambiato. E' 
possibile?
grazie
riddick

 {num, nome}
Queste me le devi spiegare...


 filename e inseriscila davanti al tag del titolo" via GUI
Devi usare la funzione "Convert Names to Tags", utilizzando le regular
expression. La sintassi è analoga a quella usata da te in uno script. Ad
esempio, se hai il file
Tiromancino - Illusioni parallele - 06. Verso nord.mp3
imposti
search expression: (.+)\s*-\s*(.+)\s*-\s*(\d+).\s*(.+).mp3
replace expression: %a=1 %l=2 %r=3 %t=4
dove %a=artista, %l=album, %r=numero traccia, %t=titolo traccia
e le informazioni vengono messe nel tag. A rinominare il file ci pensa
poi iTunes quando lo apri.


 possibile?
Per questo basta lo script che ti ho dato piů sotto. Se aspetti un po'
te ne do una versione migliorata seguendo le indicazioni di Sembro...
-- 
Ci sono solo 10 tipi di persone al mondo: chi capisce il binario e chi
no.

 Queste me le devi spiegare...
Forse ho capito: ripristini la situazione iniziale.


 una versione migliorata seguendo le indicazioni di Sembro...
tell application "iTunes"
set lista to {}
repeat with theTrack in (selection of window 1)
set lista to (lista & database ID of theTrack)
end repeat
repeat with i in lista
set traccia to ¬
(every track of library playlist 1 whose database ID is (i as integer))
set nome to (the name of the first item of traccia) as string
set _off to the offset of (word 2 of nome) in nome
set nuovonome to text _off thru -1 of nome
set numero to (word 1 of nome) as integer
set the name of (the first item of traccia) to nuovonome
set the track number of (the first item of traccia) to numero
end repeat
end tell
-- 


 [...]
Puoi usare questo script in una qualsiasi di queste situazioni:
05 - pippo pluto paperino.mp3
05- pippo pluto paperino.mp3
05 -pippo pluto paperino.mp3
05-pippo pluto paperino.mp3
05 pippo pluto paperino.mp3
5 - pippo pluto paperino.mp3
5- pippo pluto paperino.mp3
5 -pippo pluto paperino.mp3
5-pippo pluto paperino.mp3
5 pippo pluto paperino.mp3





 Questo direttamente mi sa che non si può fare.
Ho detto una fesseria: devi usare la funzione "Track Numberer". Puoi
decidere se numerarle in base al nome o in base alla data di creazione.


 05 - pippo pluto paperino.mp3
Stai ascoltando Latte e i suoi derivati? :-D
-- 
Ma a cuinassi no riscisini l'aina e l'omu
che da li documenti escisini fratili in primu.

 Stai ascoltando Latte e i suoi derivati? :-D
No. Perché, esiste davvero...? :-)
-- 
fabriXio

 No. Perché, esiste davvero...? :-)
Non con quel titolo, ma "NeuroDisney" ha un ritornello molto simile.
