2.9 KiB
Audio privado
media/audio guarda los másteres y archivos de descarga. No se sirve como un
directorio estático: /descargas/… comprueba la sesión y la compra antes de
entregar cualquier archivo.
La escucha autorizada usa una representación distinta y completa, generada a
calidad reducida en media/escucha. De ella sale además un resumen de
amplitudes en static/ondas, que permite dibujar el audio sin descargarlo ni
decodificarlo en el navegador. Ya no se generan ni publican fragmentos
recortados: el control de acceso vive en la ruta /escucha/….
Flujo
npm run medios # genera las escuchas y sus formas de onda
npm run db:medios # mide, registra y enlaza todas las representaciones
Esos comandos siguen sirviendo para importar lotes y reparar material antiguo. Para una canción individual, el panel hace el ciclo entero al crearla o desde «Subir el máster»: valida el archivo, mide sus datos, crea la escucha, calcula la onda y enlaza ambas representaciones en una única operación. La ficha queda en borrador hasta que se revise y publique.
npm run medios también corre antes de npm run dev y npm run build. Recorre
todos los másteres de media/audio, incluidos los importados como álbum sin
ficha Markdown. Los perfiles están centralizados en scripts/config/audio.mjs:
actualmente produce MP3 a 96 kbps y resume cada pista en 128 picos.
Convención
media/audio/
<slug-del-album>/
01-<slug-de-la-cancion>.mp3
01-<slug-de-la-cancion>-orquestal.mp3
singles/
<slug-de-la-cancion>.mp3
media/escucha/
<la misma estructura, siempre con extensión .mp3>
static/ondas/
<la misma estructura, siempre con extensión .json>
La ruta relativa es estable. El máster
media/audio/cupido-sin-flechas/01-tema.mp3 produce
media/escucha/cupido-sin-flechas/01-tema.mp3 y
static/ondas/cupido-sin-flechas/01-tema.json. En la base, cancion_audio
distingue explícitamente los usos master, descarga y stream; la URL de la
onda se deriva de la del último, por lo que no hay otra columna que pueda quedar
desincronizada.
Subidas
Una subida pendiente puede aterrizar en media/audio/subidas. Si una ficha
Markdown la reclama, el script la mueve a su ubicación canónica y actualiza la
ficha. Cualquier archivo que permanezca en la bandeja sin relación se anuncia
en cada ejecución para que no pase inadvertido.
Despliegue
MEDIA_DIR configura la raíz de los másteres, ESCUCHA_DIR la de las copias
reducidas y ONDA_DIR la de sus resúmenes visuales. Por defecto son
./media/audio, ./media/escucha y ./static/ondas. El panel y el sitio deben
ver las mismas tres rutas. Las ondas que se crean después de compilar también
se sirven mediante la ruta del sitio, por lo que subir una canción no exige un
nuevo build.
Para comprobar la integridad después de migrar o importar:
npm run db:auditar-musica