He avanzado bastante en la parte software de la Rockola. Consta de os partes: la primera es un menú, y la segunda es el front-end propiamente dicho.
En el menú se puede escoger la colección de música que se quiere escuchar (Rock, Pop, Salsa, etc.), y se puede filtrar por década (70s, 80s, etc) y por licencia (toda la música o sólo la de dominio público). En cada momento puedes ver el número de canciones que serán seleccionadas.
Además, hay diferentes opciones relacionadas con la máquina hardware que se está construyendo. Por ejemplo: Coin Acceptor habilita o deshabilita tener que poner las monedas para escuchar las canciones; Piped music habilita el hecho de que suene un hilo musical si hace rato que no hay música en la cola de la playlist; Efectos de luz habilita o deshabilita los leds que harán efectos con motivos decorativos; Enable Exit habilita o no que el usuario pueda volver al menú desd el front-end.
Una vez seleccionada una colección podemos ir a la Rockola, que lanza el front-end propiamente dicho. El front-end intenta ser fiel a los modelos clásics de Rockola. Se trata de ir rellenando las etiquetas de papel con las canciones. Cada etiqueta consta de un grupo y de dos canciones. La distribución de las etiquetas es de manera que los grupos queden bastante mezclados y que haya algunas etiquetas medio vacías con una sola canción. En cada pantalla caben 64 canciones, y se puede navegar por las diferentes pantallas.
El front-end gestiona los créditos de que se dispone (una moneda son dos créditos, que dan derecho a dos canciones). La manera de seleccionar una canción es bastante intuitiva. Se dispone de una pequeña pantalla con información de la canción seleccionada, y evidentmente se gestiona la playlist que controla las canciones que están a la espera de ser escuchadas. Tal como está avanzado ahora el proyecto ya se pueden escuchar las canciones. Funciona!
En definitiva, el software, formado por el menú y el front-end, está pensado para integrarse en una máquina con tan solo tres botones (izquierda, derecha y Enter), que ha de cumplir con el requisito de que sea fácil y claro de operar, sin mantenimiento.
Lo que de moment no resulta tan fácil es meter todos los ficheros MP3 en el sistema. Es bastante laborioso. Primero de todo hemos de disponer de unos ficheros mp3 que tengan los tags ID3 rellenados y con la información correcta. Si no es el caso, se ha de actualizar esta información. Se han de leer los tags de los ficheros mp3 y actualizar la base de datos. Se ha de decidir, para las canciones que se quiere incorporar, en qué colecciones saldrán. Se genera un fichero máster con todas las canciones de la base de datos y un fichero de configuración que lleva el recuento del número de canciones clasificado por colección y por década. Hay una serie de scripts que ayudan y automatizan todo el proceso, pero en definitiva si se quiere tener una base de datos de calidad el proceso no es fácil, aunque hay margen para mejorar y automatizar.
Un tema a destacar de estas dos piezas de software es que la geometría reside en ficheros de configuración, de manera que ha de ser fácilmente adaptable a diferentes formatos de monitor. Además, el código se ha compilado tanto en un portátil como en la Raspberry Pi (pues esta plataforma será el motor de la Rockola real que se está construyendo).
En resumen, la parte software ya va tomando forma y no tardaré mucho en hacer un video demostrativo. Paralelamente el mueble también va tomando forma, y espero no tardar demasiado en ver este proyecto de la Rockola finalizado.
Cuando tenga el software acabado publicaré un enlace para descargar el código fuente. De todas maneras este proyecto, programado en C++, se ha escrito de un tirón y de momento no quedará muy bien documentado.