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.
105 lines
4.1 KiB
105 lines
4.1 KiB
# Audio privado
|
|
|
|
Este directorio guarda los **archivos completos** del catálogo. No se sirve como
|
|
estático: nada de lo que hay aquí llega a la web por sí solo. Solo lo entrega
|
|
`/descargas/…`, y únicamente a quien lo ha comprado.
|
|
|
|
Lo que sí es público es el **fragmento de muestra** de cada tema, que vive
|
|
aparte, en `static/muestras/`, y es lo que suena en el reproductor.
|
|
|
|
## Subir un tema desde el panel
|
|
|
|
Lo normal es no tocar este directorio a mano. En `/admin`, el campo **Archivo
|
|
de audio** de una canción sube el máster; aterriza en `media/audio/subidas/`
|
|
con el nombre que traiga, porque el navegador no puede colocarlo mejor.
|
|
|
|
Lo demás lo hace `npm run medios`, que corre solo antes de `npm run dev` y de
|
|
`npm run build`:
|
|
|
|
1. Mueve el archivo de `subidas/` a la carpeta de su disco —o a `singles/`—
|
|
con el nombre de la convención, y reescribe la clave en el Markdown.
|
|
2. Recorta el fragmento de muestra en `static/muestras/`.
|
|
3. Escribe la duración en el frontmatter si estaba vacía.
|
|
|
|
Hace falta **ffmpeg** en el equipo. Sin él el script no rompe nada: avisa de las
|
|
muestras que no ha podido generar y sigue. En un servidor de despliegue no se
|
|
necesita, porque las muestras van en el repositorio.
|
|
|
|
Si un archivo se queda en `subidas/` sin que ninguna canción lo reclame, el
|
|
script lo dice en cada arranque. Suele significar que falta la ficha del tema.
|
|
|
|
## Convención
|
|
|
|
```
|
|
media/audio/
|
|
<slug-del-album>/
|
|
01-<slug-de-la-cancion>.mp3
|
|
01-<slug-de-la-cancion>-orquestal.mp3 ← una alternativa musical
|
|
singles/
|
|
<slug-de-la-cancion>.mp3 ← temas sin álbum
|
|
|
|
static/muestras/
|
|
<la misma estructura, con los fragmentos>
|
|
```
|
|
|
|
La ruta relativa dentro de cada uno de los dos árboles es la **clave** que se
|
|
escribe en el contenido, sin barra inicial:
|
|
|
|
```yaml
|
|
# src/content/canciones/como-si-nada.md
|
|
audio: como-si-nada/01-como-si-nada.mp3
|
|
versiones:
|
|
- nombre: 'Versión orquestal'
|
|
audio: como-si-nada/01-como-si-nada-orquestal.mp3
|
|
```
|
|
|
|
De esa única clave salen las dos rutas: `media/audio/<clave>` para la descarga y
|
|
`/muestras/<clave>` para la escucha pública. Por eso no hay que escribirlas dos
|
|
veces, y por eso una clave que empiece por `/` se rechaza al compilar: sería una
|
|
ruta pública, y el archivo completo no lo es.
|
|
|
|
El número delante del nombre es el mismo `numero` que lleva la canción en su
|
|
frontmatter. No es obligatorio, pero mantiene el directorio ordenado igual que
|
|
el disco.
|
|
|
|
## Dónde apunta el directorio
|
|
|
|
La variable `MEDIA_DIR` decide la raíz del audio privado; por defecto,
|
|
`./media/audio`. Al desplegar hay que copiar este directorio junto a la
|
|
aplicación: **no lo genera el build**.
|
|
|
|
## Formato
|
|
|
|
- **MP3 a 192 kbps** o superior para el archivo completo: lo reproduce y lo
|
|
abre cualquier cosa, y es lo que se entrega al comprador.
|
|
- **Muestra de 30 a 45 segundos**, del mismo archivo, con un fundido de salida.
|
|
Debe dejar claro cómo suena el tema sin sustituirlo.
|
|
- Etiqueta los archivos completos con sus metadatos (título, artista, álbum):
|
|
es lo primero que ve quien los descarga.
|
|
|
|
Para generar una muestra a mano, 40 segundos desde el segundo 30. El `-ss` va
|
|
**antes** del `-i`: detrás, el filtro sigue viendo los tiempos del original,
|
|
el fundido cae seis segundos después de empezar y el resto sale mudo.
|
|
|
|
```bash
|
|
ffmpeg -ss 30 -t 40 -i media/audio/album/01-tema.mp3 \
|
|
-af "afade=t=out:st=36:d=4" static/muestras/album/01-tema.mp3
|
|
```
|
|
|
|
## Los archivos que hay ahora
|
|
|
|
Son **marcadores de posición**: un tono por pista, seis segundos en el archivo
|
|
completo y dos en la muestra, con una nota distinta cada uno para poder
|
|
comprobar de oído que el reproductor cambia de tema y que la descarga entrega lo
|
|
que debe.
|
|
|
|
Para poner el material real, lo cómodo es el panel: subir el archivo en la
|
|
ficha del tema y arrancar. Si prefieres hacerlo a mano, copia el máster en
|
|
`media/audio/` respetando la estructura, ajusta el campo `audio` y lanza
|
|
`npm run medios` para la muestra y la duración. En ambos casos, borra después
|
|
el `.wav` de marcador de posición de los dos directorios.
|
|
|
|
Las portadas provisionales están en `static/images/albumes/` y
|
|
`static/images/canciones/`: sustitúyelas manteniendo el nombre, o cambia el
|
|
campo `portada`.
|