Volver al blog
Producto 8 min de lectura

GarMusic: la letra que sigue la canción y la canción que te sigue a ti

Pones una canción en el móvil, abres el ordenador y ahí está: sonando, con el segundo exacto por el que ibas. Además la letra se ilumina verso a verso. Contamos cómo funciona por dentro, incluidos dos fallos que solo aparecieron al probarlo de verdad: un audio que se reiniciaba solo y una letra que se guardaba a medias.

Un reproductor con la letra iluminándose verso a verso y la misma canción pasando del ordenador al móvil

GarMusic empezó siendo una herramienta del chat: pedías música y salía un reproductor dentro de la conversación. Funcionaba, pero tenía un techo evidente — la música no es algo que se consulte, es algo que se pone y se deja puesto.

Ahora tiene página propia. Y por el camino han salido dos cosas que merecen contarse: una que costó más de lo que parecía y otra que solo apareció al probarlo con las manos.

La letra que sigue a la canción

La idea es la de siempre: la letra avanza sola y el verso que suena se ilumina. Lo que no es obvio es de dónde salen los tiempos.

Se admiten dos formatos. Si pegas la letra tal cual, línea por línea, se guarda como texto y se enseña entera. Si la pegas ya con marcas de tiempo delante de cada verso, se respetan esas marcas y la letra va sincronizada.

Y si no tienes los tiempos, hay un modo para ponerlos escuchando: se reproduce la canción y vas marcando cada verso al ritmo al que entra. Con un detalle que descubres a los dos minutos de usarlo — siempre marcas tarde. Así que el botón de "atrás" no solo retrocede un verso: rebobina el audio unas décimas antes del punto que habías marcado, para que puedas afinarlo escuchando otra vez ese trozo exacto en vez de a ojo.

El fallo que solo aparece si lo usas

Al pasar a pantalla completa, la canción se reiniciaba desde el principio.

La causa era un descuido de esos que no se ven leyendo el código: había dos elementos de audio en la página, uno para la vista normal y otro para la vista de pantalla completa, cada uno dentro de su rama. Al cambiar de vista, el navegador desmontaba uno y montaba el otro — y el nuevo empezaba, lógicamente, en el segundo cero.

En el código parecía correcto: dos vistas, cada una con su reproductor. Solo al pulsar el botón se ve que el problema es justo ese "cada una con el suyo". El arreglo fue sacar el audio de las dos ramas y dejar uno solo, siempre montado, con las vistas cambiando alrededor.

Es un buen recordatorio de que hay una clase de fallos que no se encuentran leyendo, solo usando.

En qué aparato suena

Esta es la parte que más cambia el día a día. Pones una canción en el móvil, te sientas en el ordenador, abres GarMusic y te dice: sonando en tu iPhone, con la canción, la carátula y el punto por el que va. Un botón, y sigues ahí — por el segundo exacto, no desde el principio.

Ese matiz es todo. Continuar desde el principio no es continuar: es volver a empezar.

Por dentro es más simple de lo que parece. Cada aparato se identifica con un nombre legible que se deduce del navegador (móvil, portátil, tableta) y va contando, cada pocos segundos, qué está sonando y por dónde va. Los demás aparatos de la misma cuenta leen ese estado. Cuando dejas de reproducir, la marca caduca sola: nada peor que una pantalla que insiste en que tienes música sonando en un ordenador que apagaste ayer.

La letra que se guardaba a medias

El segundo fallo es el más instructivo, porque es de los que nadie ve hasta que alguien lo sufre.

Al pegar una letra larga y guardarla, volvía cortada. No al principio: pegabas, se veía entera, dabas a guardar, y el último tercio ya no estaba. Sin error, sin aviso, sin nada que mirar.

La causa estaba en un sitio poco sospechoso: la función que limpia lo que llega del panel de administración recortaba todos los campos de texto al mismo límite. Para un título, un artista o una dirección, ese límite sobra de lejos. Para una letra con marcas de tiempo, que son unos sesenta versos con su marca delante, se quedaba corto justo por la mitad.

Dos arreglos, no uno:

  1. El límite pasa a ser por campo. Una letra tiene el suyo, holgado; el resto conserva el que tenía.
  2. Y si de verdad alguien se pasa, se le dice. Cortar en silencio es lo que convirtió un límite mal puesto en un misterio: el corte parecía un fallo del editor, que es donde se buscó primero.

Hubo que volver a pegar las letras que ya se habían guardado cortadas. Lo que se perdió, se perdió: un recorte no se deshace.

Lo que hay ahora

La página tiene búsqueda, favoritos, cola de reproducción, letra sincronizada a pantalla completa y atajos de teclado. Y en el móvil, al bloquear la pantalla, sale la canción con su carátula en vez del nombre de la aplicación — que es lo que salía antes, porque nadie le había dicho al sistema qué estaba sonando.

Detalle de la cola que nos gusta especialmente: con el aleatorio activado no se enseña una lista de lo que viene. Se dice que la siguiente se sortea al saltar. Pintar un orden que no se va a cumplir es rellenar una pantalla, no informar.

Prueba todo esto en GarBotGPT.

500 créditos gratis, sin tarjeta. Modelos top, herramientas en vivo y RAG sobre tus propios documentos.