Avances en UltraStar-ng

Con un titular parecido a los que ponen en Microsiervos, retomamos el tema de UltraStar-ng, el port para GNU/Linux de UltraStar, un clon del conocido SingStar de PlayStation. El motivo no es otro que el comentario dejado por el autor en la anterior noticia indicando que había colgado ya la versión 0.1.0 en SourceForge y que había mejorado el interfaz gráfico durante el juego. Buenas notiicas para los amantes de hacer el payaso delante de los amigos versionando a sus artistas favoritos :-). Veamos cómo poner esta nueva versión en funcionamiento…

 

Como obtener el código de UltraStar-ng

El proceso se ha simplificado bastante, ya no hace falta usar subversion o cvs para bajárselo del repositorio de código, solamente ir a la zona de descargas del proyecto y bajarnos el tarball:

wget -c http://switch.dl.sourceforge.net/sourceforge/ultrastar-ng/UltraStar-ng-0.1.0.tar.gz

Cómo compilar UltraStar-ng

La versión actual (0.1.0) utiliza automake y autoconf para preparar la compilación, un método mucho más estándar. Para evitar problemas con las librerías de desarrollo, instalo los paquetes que instalé para compilar la versión anterior:

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

Procedo con la configuración de la compilación:

./configure
[...]
configure: error: "I'm sure you wish audio in this game"

Hummm, el error no es muy explicativo porque aparece después de comprobar la librería SMPEG y comprobar que sí estaba presente. Echo un vistazo al script configure y veo lo siguiente:

case $audio_layer in
        xine*)
                AUDIO_FLAGS=`xine-config --cflags`
                AUDIO_LIBS=`xine-config --libs`
                ac_includes_default=$(cat <<-USNG_EOF
                $ac_includes_default
                /* video headers */
                #define USE_LIBXINE 1
                #include
                USNG_EOF)
                ;;
        gstreamer*)
                AUDIO_FLAGS=`pkg-config --cflags gstreamer-0.10`
                AUDIO_LIBS=`pkg-config --libs gstreamer-0.10`
                ac_includes_default=$(cat <<-USNG_EOF
                $ac_includes_default
                /* video headers */
                #define USE_GSTREAMER 1
                #include
                USNG_EOF)
                ;;
        no*)
                { { echo "$as_me:$LINENO: error: \"I'm sure you wish audio in this game\"" >&5
echo "$as_me: error: \"I'm sure you wish audio in this game\"" >&2;}
   { (exit 1); exit 1; }; }
                ;;
esac

Bien, parece que lo que nos están queriendo decir es que necesitamos compilar UltraStar-ng contra alguna librería de audio. Tenemos dos opciones, gstreamer o xine:

apt-get install libgstreamer0.10-dev
apt-get install libxine-dev

Volvemos a lanzar el script configure y obtenemos lo siguiente:

Ultrastar-ng is now configured to your system with the following
user-defined options.

Option | Flag         | Chosen implementation
----------------------------------------------
audio  | --with-audio | gstreamer
video  | --with-video | smpeg
svg    | --with-svg   | librsvg

Perfecto, ahora ya solamente queda ejecutar:

make
make install

Y ya tendremos nuestro programa compilado e instalado.

Cómo cargar correctamente las canciones en UltraStar-ng

Este paso es exáctamente igual que en la anterior versión, así que os lo copio sin más:

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 0.1.0 en acción

Una vez instalado, tendremos un ejecutable llamado ultrastarng en el sistema, que podremos lanzar indicando la ruta al directorio con las canciones (típicamente el directorio “songs”):

ultrastarng ~/songs

En este caso tenemos en nuestro directorio $HOME un subdirectorio con las canciones.

En esta versión el interfaz inicial es muy similar:

utrastarng01.jpg

utrastarng02.jpg

Pero lo que ha mejorado bastante es el propio juego en sí, que ya incluye una barra de tiempo, puntuación, icono del jugador y la imagen de fondo en la canción:

utrastarng03.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 ;-).

Espero que el equipo de desarrollo de UltraStar-ng siga trabajando y el programa alcance un nivel parecido al original 😉

19 pensamientos en “Avances en UltraStar-ng

  1. Vincent

    By the way :
    – Audio library could be xine OR gstreamer (would put a much more explicit message)
    – resampling MP3 should be optionnal now (use of gstreamer or xine)
    – Cover could be both png or jpg now
    – problem should be solved

    Vincent

    Responder
  2. txipi

    Thanks Vincent for your comment (and for your work in UltraStar-NG)!! 😉

    Como véis, ya no hace falta modificar las canciones descargadas para la versión de Windows de UltraStar en cuanto al muestreo de los mp3 o las carátulas en jpg. Buenas noticias para quienes esperamos mucho de este programa 🙂

    Responder
  3. frikinki

    hola, acabo de instalar el juego, pero una vez que lo abro y doy a la "s" para elegir cancion se cierra. Quiza es porq no he hecho bien lo de las canciones.
    El directorio songs debe ir en algun sitio especifico o donde yo quiera?
    Las canciones de la version de windows ahora funcionan en linux sin mas?
    Si no funcionan, donde puedo conseguirlas para linux?

    PD: uso ubuntu

    Responder
  4. frikinki

    he ejecutado el juego desde la terminal, da el mismo fayo de antes pero cuando se cierra puedo leer que encuentra el directorio con las canciones, pero dice que no puede abrir los arcivos *.txt
    sabes q puede ser?

    Responder
  5. anna

    Hola,
    Me gustaría pedir si alguien puede ayudarme. Primero quiero decir que soy completamente ignorante en el tema de ordenadores. He instalado el UltraStar para mis hijos y solo puedo escuchar el tema Demo. He bajado alguna otra canción pero no funciona porque supongo que no lo estoy haciendo bien. No entiendo nada de lo que estais comentando de como hacerlo. Sería alguien tan amable de ayudarme como hacerlo, pero usando el idioma de los ignorantes? Os lo agradecería mucho. Anna

    Responder
  6. MarianoMateuci

    ANNA: las canciones debes ponerla en la carpeta "Songs" que se encuentra en el directorio del juego, asegurate que las canciones sean compatibles.
    FRIKINKI: yo tengo windows y una particion con ubuntu,pone las canciones en la carpeta "Songs" como le explicaba a anna y tiene que funcionarte bien, porque yo lo uso sin ningun problema..

    espero que mi ayuda les halla sido util, ante cualquier duda pueden agregarme a mi msn y los atendere sin ningun problema.. mariano_federer@hotmail.com

    Responder
  7. Anita

    hola. tengo el microfono incorporado en el ordenador, Y cuando canto no reconoce mi voz, va apareciendo como si yo cantara aunque no diga nada. he conectado un microfono y seguia pasando lo mismo.
    ALGUIEN ME PUEDE DECIR COMO TENGO QUE CONFIGURAR EL PROGRAMA PARA QUE FUNCIONE BIEN

    Responder
  8. Rubio

    Donde me puedo descargar el script convert.sh al que aludes? lo estoy probando y las canciones de dos minutos me pasan en 2 segundos, supongo que sera por la conversion.
    Gracias
    Saludos

    Responder
  9. aomenator

    This could help someone to adapt ultrastar to ultrastar-ng (0.14) songs:

    #!/bin/bash

    basedir="/usr/local/share/ultrastar-ng/songs"

    cd $basedir

    find . -type d ! -name ‘.’|while read directorio
    do
    cd "$directorio"
    txtfile=`find . -name "*txt"`
    awk -F ‘:’ ‘/MP3/{printf ("%s ",$2)}’ "$txtfile"|tr -d "
    " >/tmp/songname
    songname=`cat /tmp/songname|awk ‘{print substr($0,0,length($0)-4)}’`
    ssongname=`cat /tmp/songname|awk ‘{print substr($0,0,length($0)-4)}’|tr áéíóúÁÉÍÓÚñÑ aeiouAEIOUnN`

    # Eliminamos los acentos del nombre de la canción

    sed "s/$songname/$ssongname/" "$txtfile" > "$txtfile".2

    ext=`cat /tmp/songname|awk ‘{print substr($0,length($0)-3,4)}’`

    # Verificamos si ya estaba bien el nombre

    if [ -e "$ssongname$ext" ]
    then
    echo -n
    # Si estaba bien no hacemos nada
    else
    # Si no era correcto lo adaptamos

    if [ `ls *$ext|wc -l` -eq 1 ]
    then
    mv *$ext "$ssongname$ext"
    else
    echo Hay más de un fichero $ext
    fi
    fi
    rm "$txtfile"
    mv "$txtfile.2" "$ssongname.txt"
    cd ..
    if [ ! -e "$ssongname" ]
    then
    mv "$directorio" "$ssongname"
    fi
    done

    Responder
  10. Carlos

    Buenas tardes. Yo estoy intentando instalar Ultrastar-ng-0.1.4 en Ubuntu 6.06. En varias páginas he leído y en la mayoría dicen que para Ubuntu no habría ningún problema con la instalación, pero cuando ejecuto el comado ./configure me sale el siguiente código:

    cacelis@jc-corp:~/Documentos/Linux/Software/UltraStar-ng-0.1.4$ ./configure –with-a-lot-of-options
    Configure launch with the following arguments: /usr/local/share/config.site /usr/local/etc/config.site
    checking for a BSD-compatible install… /usr/bin/install -c
    checking whether build environment is sane… yes
    checking for a thread-safe mkdir -p… /bin/mkdir -p
    checking for gawk… gawk
    checking whether make sets $(MAKE)… yes
    checking for gcc… gcc
    checking for C compiler default output file name… a.out
    checking whether the C compiler works… yes
    checking whether we are cross compiling… no
    checking for suffix of executables…
    checking for suffix of object files… o
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking for style of include used by make… GNU
    checking dependency style of gcc… gcc3
    checking for g++… g++
    checking whether we are using the GNU C++ compiler… yes
    checking whether g++ accepts -g… yes
    checking dependency style of g++… gcc3
    checking for ranlib… ranlib
    checking for a BSD-compatible install… /usr/bin/install -c
    checking for help2man… ./configure: line 4086: error:: command not found
    no
    checking how to run the C preprocessor… gcc -E
    checking for grep that handles long lines and -e… /bin/grep
    checking for egrep… /bin/grep -E
    checking for ANSI C header files… yes
    checking for dirent.h that defines DIR… yes
    checking for library containing opendir… none required
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking how to run the C++ preprocessor… g++ -E
    checking algorithm usability… yes
    checking algorithm presence… yes
    checking for algorithm… yes
    checking vector usability… yes
    checking vector presence… yes
    checking for vector… yes
    checking iostream usability… yes
    checking iostream presence… yes
    checking for iostream… yes
    checking fcntl.h usability… yes
    checking fcntl.h presence… yes
    checking for fcntl.h… yes
    checking math.h usability… yes
    checking math.h presence… yes
    checking for math.h… yes
    checking for stdlib.h… (cached) yes
    checking stdio.h usability… yes
    checking stdio.h presence… yes
    checking for stdio.h… yes
    checking getopt.h usability… yes
    checking getopt.h presence… yes
    checking for getopt.h… yes
    checking dirent.h usability… yes
    checking dirent.h presence… yes
    checking for dirent.h… yes
    checking sys/ioctl.h usability… yes
    checking sys/ioctl.h presence… yes
    checking for sys/ioctl.h… yes
    checking for sys/types.h… (cached) yes
    checking for sys/stat.h… (cached) yes
    checking for pkg-config… /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0… yes
    checking for cairo… no
    configure: error: This game connot be build without cairo >= 1.2

    Muchas gracias de antemano, si me pueden colaborar con la instalación del programa.

    Responder
  11. momia_de_puebla

    Si quieres tener tus canciones en home o en algun otro lado tienes que ejecutar :
    ultrastarng -s directorio_de_tus canciones

    En ubuntu 7.10 tienes que poner las siguientes librerías:

    apt-get install libsdl1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev \
    libsdl-image1.2-dev libsdl-gfx1.2-dev libcairo2-dev libsmpeg-dev \
    fftw3-dev libasound2-dev librsvg2-dev

    Son las mismas que pone el autor del post pero cambiando libcairo-dev por libcairo2-dev esa es la librería que le falta a carlos

    Responder
  12. bolsin

    el fallo es este:
    Now playing: (0): /home/*****/Juanes – La Camisa Negra/Juanes – La Camisa Negra.mpg
    Now playing: (0): /home/*****/Juanes – La Camisa Negra/Juanes – La Camisa Negra.mp3

    y no suena ni se ve video ni letra ni nada

    Responder
  13. jorsh

    hola tengo un prblema y es ke el ultrastar me marca las notas solas komo si yo cantara eso me pasa incluso kon altavoz apagado.si alguien lo a solucionado o sabe komo??

    Responder
  14. galon

    hola sabes vi esta pagina y tambien tengo una duda

    como puedo configurar el ultra star para que en vez de
    copiar las canciones al pc las copie a un cd y pueda reconocer las
    canciones desde un cd creo que es mucho mas espacio que ahorrare
    ya que tengo un tarro con pentium III y 600mhz y 10gb de disco con 192mb ram
    porfa respondan se agradeceria mucho

    Responder

Deja un comentario

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