Como algunos que me conocen saben, soy seguidor de la scene desde hace muchísimos años. Quizá últimamente no tengo tiempo de estar al día, pero me sigue gustando escuchar la música que sale de ese mundillo. Para los que lo conocen, el sitio http://modarchive.org es un buen punto donde descargar “mods” de todas las épocas.
Tengo una buena colección de mods pero está un poco gastada de tanto escucharla, así que ante la inmensidad de modarchive, busqué la manera de reproducir los archivos de esa página de una forma continua sin tener que descargarlos uno por uno, por eso me puse manos a la obra para hacer un script que hiciese el trabajo sucio por mi.
Al principio era algo muy sencillo pero poco a poco ha ido creciendo y ahora creo que ya puedo enseñarlo. No esperéis nada espectacular, ya que está hecho en bash usando las herramientas de procesamiento sed, grep, cut, etc.
Para reproducir los ficheros utilizo el programa de consola “mikmod” para que todo quede ahí, en la consola, pero cualquiera es libre de modificar el script para lo haga con lo que mas le guste.
Actualización:
Para reproducir los archivos uso audacious, que permite encolarlos conforme son descargados. El único requisito es tener el programa iniciado antes de lanzar el script.
Si atendemos a la ayuda incluida es bastante sencillo:
usage: ./modarchive.sh [options] Modarchive Jukebox can be used with one of the following options: -h : Show this help message -s <section> Play from selected section: Can be one of this uploads This is a list of the recent member upload activity featured These modules have been nominated by the crew for either outstanding quality, technique or creativity (or combination of). favourites These modules have been nominated by the members via their favourites. downloads The top 1000 most downloaded modules, recorded since circa 2002. topscore This chart lists the most revered modules on the archive. new Same than uploads but using search engine random Ramdom module from entire archive -a <artist> Search in artist database -m <module> Search in module database (Title and Filename) -n <number> Number of tracks to play -r Shuffle playlist Hint: Use + symbol instead blankspaces in search strings.
El script necesita que le digamos de qué sección descargar, una vez seleccionada descargará un fichero y los encolará en audacious. El script se ejecutará hasta recuperar todos los elementos de la búsqueda o hasta llegar al número de ficheros especificado con la opción -n. Si se escoge la seción “random” y no se especifica un número de ficheros el programa se ejecutará indefinidamente, o bien hasta que pulsemos Ctrl-C o se nos llene el disco duro 
Y por fin el script. Gracias a David que me ha dado un espacio en el repositorio subversion público de Arco. Lo puedes descargar de aquí
https://arco.esi.uclm.es/svn/public/prj/modarchive/modarchive.sh
Tan solo tienes que darle atributos de ejecución.
Comentarios
Qué pasada...
... esto sí que es un buen background musical.
brue
My 2 cent's
Bueno, mis dos céntimos, ya que al menos lo has liberado como software libre.
He portado el script bash de fsancho a python. Creo que requiere al menos python 2.7 ya que utiliza el módulo optparse.
Se puede descargar de:
http://www.shakaran.net/blog/wp-content/modarchive/modarchive.py
Os lo pongo al final de mi comentario también.
Ejemplo de ejecución:
python modarchive.py -s random -d
Resto de ejemplos en la ayuda (intentando mantener las opciones originales):
python modarchive.py -h
Supongo que es mejorable, no esta muy pythonico y tendrá algun bug (no he probado todas las acciones), pero es lo que he podido hacer en una horilla libre de la siesta.
Saludos
Today is a good day. Would you be tomorrow?
Jo!
Así da gusto.
Mi idea inicial era hacerlo en python pero llevo tanto tiempo diciendo que voy a aprender Python que ya ni me acuerdo. Y al final bash me resuelve siempre la papeleta de una u otra forma.
Lo bueno de que funcione en python es que no se dependería de ningún programa externo. Simplemente habría que utilizar los bindings de Gstreamer y lanzar desde ahí la reproducción, ya que Gstreamer utiliza modplug para reproducir los mod.
De todas formas, si os fijáis le he hecho unos cuantos cambios al código. Ahora ya no uso mikmod, he pasado a audacious, aunque cambiar a mikmod es relativamente simple, con poner
PLAYER=/usr/bin/mikmod
PLAYEROPTS="-i -hqmixer --surrond -X -noloops"
y eliminar la comprobación de que el player esté ejecutandose.
Ahora tarda mas al arrancar ya que recupera la búsqueda completa y de ahí crea una playlist, así nos evitamos que en una misma sesión se repitan pistas. Pero en cuanto se descarga el primer fichero ya se puede dar al play del audacious y empezar a escuchar, que el resto se van añadiendo a la cola conforme se descargan.
lo he ...
... editado para que se vea como código.
brue
gracias
gracias
probe con <*code><*/code> pero no lo resaltaba, ¿cual era la etiqueta correcta?
Today is a good day. Would you be tomorrow?
Listados de código en CRySoL
Listados de código en CRySoL
No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.
Wuoa!
...pero que guay!
------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------
Bah!
Adulador. Si en realidad lo he puesto para que empecéis a meterle mas cosas o traducirlo a mas lenguajes.
Pues anda...
...si quieres q sea más fácil ponerle tontunitas... github o algo así porque editarlo desde crysol se me hace "pesaíto"...
------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------
Subversion
Estoy en arduas negociaciones con David
para que me abra una ramita en el SVN de Arco. Si no, pues github y a correr, pero como nunca me he dado de alta ahí, me da pereza para una cosilla tan nimia.
Pues chico...
....yo tengo una cuenta y tengo subidas 4 tontunas, pero hay un montón de proyectos muy interesantes y hacerles seguimiento es realmente fácil... es una especie de facebook para programadores... joer, este comentario casi parece SPAM!
------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------
Ya está en el subversion
Gracias David.
Tu concepto de tontuna y el mío están muy alejados