UltraStar-ng: port para GNU/Linux de UltraStar, el SingStar libre

Después de pasar un agradable dia de fiesta en casa de Txus, dándolo todo con el Eye-Toy y el SingStar de la PlayStation2, me acordé de UltraStar, el clon libre de SingStar. La mayor pega que conocía de UltraStar era que está 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 Debian y distribuciones similares (Ubuntu, por ejemplo). Id aclarando vuestras gargantas para ser la alegría de la huerta en estas próximas fiestas de navidad 😉

 

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, por lo que deberemos obtener el código del programa conectándonos vía CVS y bajándonos el proyecto:

cvs -d:pserver:anonymous@ultrastar-ng.cvs.sourceforge.net:/cvsroot/ultrastar-ng login

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.

Cómo compilar UltraStar-ng

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:

apt-get install 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 libasound2-dev librsvg2-dev

Como vemos, el proyecto está desarrollado usando la librería SDL, Cairo, Alsa, etc.

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:

ultrastar01.jpg

Si pulsamos la tecla “S”, pasaremos al menú de selección de canciones:

ultrastar02.jpg

Una vez elegida la canción, pulsamos ENTER y comenzará la canción:

ultrastar03.jpg

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:

ultrastar04.jpg

Cómo conseguir canciones para UltraStar

Una buena manera de conseguir canciones, es empezar por Ultrastar en Español, que tiene enlaces de ED2K y Torrents 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 ;-).

18 pensamientos en “UltraStar-ng: port para GNU/Linux de UltraStar, el SingStar libre

  1. palermi

    Buenisimo, no conoscia ni el singstar (y tengo una ps2), ni el ultrastar ni el ultrastar-ng, parece que esta muy bueno.

    Ahora no tengo tiempo (son casi las 4am) tengo que trabajar mañana, pero cuando pùeda lo instalo. Muchas gracias.

    Responder
  2. cortsenc

    Hace rato que intento hacer funcionar UltraStar con wine i me encontrado este articulo que me informa de un clon para GNU/Linux!!
    Carai, muy interessante. Intentaré seguir las instrucciones que indicas.

    Saludos!!

    Responder
  3. un nombre

    Muy buen tutorial. Solo añadir que en mi caso me ha hecho falta agregar tambien este paquete:

    apt-get install libxine-dev

    Responder
  4. Vincent

    Hi,

    I’m the original dev of the ultrastar-ng project. Thanks for this how to.
    The installation procedure has totally changed (using autoconf/automake) and the graphics has greatly improved.
    So you could rewrite a howto if you want or post another article.

    Thank you for your interest.

    Vincent

    Responder
  5. Pingback: El blog de neonigma » Archivo » UltraStar-ng: el SingStar libre

  6. Felipe

    intento configurar el ultrastar-xine para ubuntu siguiendo tus pasos y la consola me busca las canciones en /usr/share/games/ultrastar-ng//songs
    si así como lo lees con doble barra (//).

    Podrías decirme como puedo corregir esto?
    gráćias.
    Felipe.

    Responder
  7. fransberns

    Felipe, si ejecutas el comando ‘ultrastarng’ sin argumentos buscará las canciones en:
    /usr/share/games/ultrastar-ng/songs
    Debes especificar el directorio donde tienes las canciones:
    $ ultrastarng <directorio_con_canciones>

    Responder
  8. Teide3718

    Si ejecutas ultrastarng en un terminal veras que busca en varios directorios. Para mi fue más facil ubicar los temas en ~/.ultrastar/songs/

    Saludos.

    Responder
  9. Pingback: UltraStar, el clon de SingStar pero para PC y Queen | El Blog de Freddie Mercury

  10. GTO

    veran tengo alrededor de 16GB en canciones para el ultrastar pero transformarlas es una verdadera lata…. son mas de 2000 canciones pero me es imposible transformarla todas…. habra algun metodo para transformar de manera auntomatica? por q una por una… entenderan q no es posible debido a la cantidad de tiempo requerido…

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *