Estoy buscando sugerencias de pseudocódigo para ordenar mis archivos mp3 de una manera que evite la repetición de títulos y artistas . Escucho cantantes: Frank Sinatra, Tony Bennett, Ella Fitzgerald, etc., cantando viejos estándares. Cada artista graba muchas de las mismas canciones: Fly Me To The Moon, The Way You Look Tonight, Stardust, etc. Mi objetivo es organizar las canciones (u ordenar la lista de reproducción) con el máximo espacio entre artistas y títulos de canciones. Entonces, si tengo 2000 canciones y 20 son de Ella, me gustaría escucharla solo una vez de cada 100 canciones. Si 10 artistas cantan Fly Me To The Moon, me gustaría escucharlo una vez cada 200 canciones. Por supuesto, quiero combinar estos dos requisitos para crear mi "baraja definitiva".
Sé que esta es una pregunta bastante abierta. Todavía no he comenzado a programarlo, así que solo estoy buscando sugerencias de un buen enfoque. De hecho, tengo algunos otros requisitos con respecto al espaciado uniforme de otros atributos de la canción, pero no voy a entrar en eso aquí.
Como punto de partida, estoy modificando el código que encontré aquí para manipular archivos mp3 y leer etiquetas ID3.
Escribí una pequeña aplicación que satisface mi necesidad usando la respuesta de parsifal a continuación. También escribí una pregunta de seguimiento aquí . ¡Gracias por todas las buenas respuestas!
while (length(songs) > 0) { x := rand(); addElem(shuffle, songs[x]); remElem(songs, x); }
pero usted dice que quiere un "shuffle definitivo". No sé lo que realmente quieres con eso, incluso leyendo la pregunta ...