Sto cercando suggerimenti pseudocodici per ordinare i miei file mp3 in modo da evitare la ripetizione di titoli e artisti . Ascolto crooner: Frank Sinatra, Tony Bennett, Ella Fitzgerald ecc. Che cantano vecchi standard. Ogni artista registra molte delle stesse canzoni: Fly Me To The Moon, The Way You Look Tonight, Stardust ecc. Il mio obiettivo è quello di organizzare le canzoni (o ordinare la playlist) con il massimo spazio tra artisti e titoli delle canzoni. Quindi, se ho 2000 canzoni e 20 sono di Ella, mi piacerebbe ascoltarla solo una volta ogni 100 canzoni. Se 10 artisti cantano Fly Me To The Moon, mi piacerebbe ascoltarlo una volta ogni 200 canzoni. Ovviamente voglio combinare questi due requisiti per creare il mio "shuffle finale".
So che questa è una domanda abbastanza aperta. Non ho ancora iniziato a programmarlo, quindi sto solo cercando suggerimenti su un buon approccio da adottare. In realtà ho altri requisiti per quanto riguarda la spaziatura uniforme degli altri attributi della canzone, ma non entrerò qui.
Come punto di partenza sto modificando il codice che ho trovato qui per manipolare i file mp3 e leggere i tag ID3.
Ho scritto una piccola app che soddisfa le mie necessità usando la risposta di parsifal di seguito. Ho anche scritto una domanda di follow-up qui . Grazie per tutte le belle risposte!
while (length(songs) > 0) { x := rand(); addElem(shuffle, songs[x]); remElem(songs, x); }
ma dici di volere uno "shuffle finale". Non so cosa tu voglia davvero, anche leggendo la domanda ...