You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.9 KiB
77 lines
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```text
|
|
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:
|
|
|
|
```bash
|
|
npm run db:auditar-musica
|
|
```
|