Después de postear Stepmania, un juego de los conocidos como DDR (Dance Dance Revolution) me queda por enseñaros, entre otros, Ultrastar-ng, un clon gratuito del juego de PS2: Singstar.
[youtube=http://www.youtube.com/watch?v=a3EXnv8wBm8]
Muchos pueden que conozcan Ultrastar, de echo un amigo mío me lo comento para que lo pusiera en este blog, pero buscando un poco de información y hojeando su código fuente observo que Ultrastar es un clon libre de Singstar desarrollado utilizando Delphi sobre Microsoft Windows, lo que hacía imposible su uso en GNU/Linux y bastante complicado portarlo. Mirando un poco mejor, llegué hasta la web de UltraStar-ng, que más que un port podría considerarse una reescritura desde cero en C++ para GNU/Linux del programa original. Todavía está en fase alpha y claramente hay bastantes cosas que hacer para poder llegar a la calidad de la versión de Windows del UltraStar, pero para usarlo como karaoke normalito, nos basta y sobra. Para intentar aumentar el número de usuarios de UltraStar-ng (y quién sabe si el de desarrolladores ), voy a publicar una breve guía de cómo compilarlo y cargar canciones en GNU/Linux.
Como obtener el código de UltraStar-ng
Yoda-JM, el desarrollador de UltraStar-ng, todavía no ha generado un paquete con su software, pese a que para Gentoo existe un overlay de portage y para Debian hay un paquete, pero tanto uno como para el otro no hay mantenedores de paquetes por lo que lo mejor que obtengamos el código del programa conectándonos vía CVS y bajándonos el proyecto, para ello, abrimos un terminal:
cvs -d:pserver:anonymous@ultrastar-ng.cvs.sourceforge.net:/cvsroot/ultrastar-ng login
y después
cvs -z3 -d:pserver:anonymous@ultrastar-ng.cvs.sourceforge.net:/cvsroot/ultrastar-ng co -P UltraStar-ng
Al hacer esto, se nos debería crear un directorio “UltraStar-ng” con varios subdirectorios donde encontraremos el código fuente del programa, ficheros de configuración de canciones, y demás.
Como es obvio, necesitaremos tener el paquete “cvs” instalado para realizar esto.
Para compilar UltraStar-ng, deberemos entrar en el directorio que contiene el código fuente del programa y ejecutar el comando “make”. Sin embargo, es muy probable que no dispongamos de todas las librerías de desarrollo necesarias para compilarlo correctamente, por lo que recomiendo instalar los siguientes paquetes:
- libsdl1.2-dev
- libsdl-mixer1.2-dev
- libsdl-ttf2.0-dev
- libsdl-image1.2-dev
- libsdl-gfx1.2-dev
- libcairo-dev
- libsmpeg-dev
- fftw3-dev
- librsvg2-dev
Una vez completada la instalación de todas las librerías de desarrollo, ejecutamos “make” como hemos comentado previamente y el proyecto se compilará sin mayores complicaciones.
Cómo cargar correctamente las canciones en UltraStar-ng
Las canciones de UltraStar son compatibles con UltraStar-ng, pero hay que tener ciertas precauciones:
- Microsoft Windows es un Sistema Operativo que no tiene en cuenta la diferencia entre mayúsculas y minúsculas en los nombres de ficheros. GNU/Linux no funciona así, por lo que si una canción se llama “Bob Marley – No woman no cry” y dentro está el fichero “Bob Marley – No woman no Cry.mp3” (observad la última C mayúscula en “Cry”), podemos tener problemas. Hay que revisar esto correctamente para que las canciones funcionen bien.
- Los ficheros MP3 con las canciones tienen que estar muestreado a 48 KHz. El propio UltraStar-ng trae un script, convert.sh, para convertir los MP3 con otro ratio de muestreo a 48 KHz:
./convert.sh songs/Bob Marley - No Woman No Cry/Bob Marley - No Woman No Cry.mp3
- El fichero con la carátula de la canción, tiene que estar en PNG, en lugar de JPG u otro formato como se acostumbra en UltraStar. La convertimos usando “convert”, de ImageMagick o cualquier otro programa (GIMP, etc.):
convert Bob Marley - No Woman No Cry.jpg Bob Marley - No Woman No Cry.png
- El fichero TXT que contiene la letra y las notas de la canción, tiene que estar en formato UTF-8 y sin saltos de línea de DOS (los típicos \r\n), así que lo tenemos que convertir, lo podemos hacer asi:
iconv --from-code=ISO-8859-1 --to-code=UTF-8 Bob Marley - No Woman No Cry.txt temporal tr -d 'r' temporal > Bob Marley - No Woman No Cry.txt rm temporal
Y ya está. Todo esto se podría automatizar en un script y compatibilizar las canciones de UltraStar con UltraStar-ng de forma semi-automática 🙂
UltraStar-ng en acción
Una vez hecho todo esto, ejecutamos el programa con ./ultrastar-ng y vemos la pantalla de bienvenida:
Si pulsamos la tecla “S”, pasaremos al menú de selección de canciones:
Una vez elegida la canción, pulsamos ENTER y comenzará la canción:
Como vemos, en la pantalla tendremos la letra de la próxima frase que hay que cantar, la marca de qué nota estamos cantando y qué notas y durante cuánta duración habría que cantar para poder hacerlo bien:
Cómo conseguir canciones para UltraStar
Una buena manera de conseguir canciones, es empezar por DDRSpain, que tiene descargas directas a numerosos packs de canciones organizadas temáticamente, tutoriales y demás.
Recordad los pasos que hay que seguir para adaptar estas canciones para UltraStar-ng 😉
Mini-Howto de txipi, mil gracias!
8 Comments
txipi
11 April 2007 at 7:44 pmHola,
estaría bien que copiaras las imágenes de mi artículo en tu servidor en lugar de enlazarlas al mío, porque me restas ancho de banda (es lo que se conoce como hotlinking) ;-P
malevolent
18 April 2007 at 11:26 amOstia!, perdona tío, ni había visto tu comentario ni me fijé el dia que hice este post. Lo arreglo.
Ah, y gracias personalmente por el how-to 😉
MaGaO
18 July 2007 at 4:51 pmQuizá quieras convertir el tr -d ‘r’ en tr -d ‘\\r’ (o ‘\r’, el caso es que se vea el backslash).
MaGaO
18 July 2007 at 4:52 pmVale, es tr -d ‘\r’ (esto de no tener previsualización es una lata a veces)
etolini
9 March 2008 at 2:56 pmya ha salido el ultrastar deluxe (ultrastarDX)
malevolent
10 March 2008 at 10:30 amgracias por el aporte, lo probamos y algun dia lo presentaré.
Singstar en el ordenador. Ultrastar « Queridos Camaradas
7 April 2008 at 2:20 am[…] Linux se llama ultrastar-ng y para posibles fallos aqui y sobre todo aqui (no puedes ser jpg, tienen que estar codificados en […]
Ultrastar Deluxe « Tux Juegos
16 May 2008 at 3:34 pm[…] ya meses presenté un juego clon del juego SingStar de PlayStation2, se llamaba UltraStar-ng. Hoy os presento una versión que no tiene nada que envidiar al juego comercial de PS2: Ultrastar […]