bgmusic
Encuentra una pista musical real para un video, desde catálogos de dominio público, sin descargar una biblioteca ni deber créditos a nadie.
Cuando las pistas incluidas son suficientes
public/sfx/ ya incluye dos pistas y ninguna cuesta una solicitud:
music-bed.mp3, un drone ambiental de 60s. Adecuado para un tutorial técnico corto.pulse-bed.mp3, 112 bpm con una cuadrícula de señales exacta enpulse-bed.cues.json. La única pista donde los cortes sincronizados con el ritmo son exactos en lugar de estimados, porque fue sintetizada en lugar de analizada.
Úsalas cuando el video sea corto, guiado por narración, o la música solo deba evitar el silencio. Busca cuando el video sea una pieza de lanzamiento o promoción y la pista transmita el estado de ánimo.
Los dos catálogos
| Fuente | Qué | Tamaño |
|---|---|---|
lofi | btahir/open-lofi, 166 pistas lo-fi en 10 categorías | ~3MB por pista |
cc0 | SoundSafari/CC0-1.0-Music, ~9200 pistas de freepd, chosic, Free Music Archive, freesound y Pixabay | 2-15MB por pista |
Ambos son CC0-1.0. Dominio público, uso comercial permitido, sin atribución requerida, nada para la descripción del video. Por eso estos dos están integrados mientras que plan_sound_effects aún envía al usuario a Pixabay manualmente para efectos.
Una advertencia que vale la pena mencionar: el corpus es agregado por la comunidad y funciona con solicitudes de eliminación, por lo que su reclamo CC0 por pista es del mantenedor, no una licencia que hayas leído. Para un video de producto está bien y el archivo de procedencia registra la fuente. Cuando una licencia incorrecta sería costosa, quédate con lofi, que es un autor, un lanzamiento, una declaración de licencia.
El flujo
find_music_bed -> [usuario audiciona] -> import_music_bed -> plan_music_cues -> stitch_composition
1. find_music_bed
Consulta con palabras simples de estado de ánimo o escena: "calma concentración codificación", "noche neón tardía", "cálido optimista". Los títulos y categorías son lo que se empareja.
La primera llamada construye un índice, aproximadamente siete llamadas a la API de GitHub, almacenado en caché en output/music-index.json. Las búsquedas posteriores son una lectura local. Pasa refresh: true solo después de que un catálogo publique un nuevo lanzamiento.
Las categorías de lofi son metadatos reales, por lo que category: "ambient-lofi" funciona. Las pistas del corpus no tienen ninguna: una pista allí es un nombre de archivo en una carpeta nombrada según el sitio del que proviene. Cuando no hay coincidencias, la herramienta devuelve una muestra simple y establece matchedQuery: false. Esa es una señal para probar una palabra que un compositor realmente pondría en un título, no para rendirse.
Deja que el usuario elija. Devuelve de tres a cinco candidatos con sus títulos y categorías. La música es cuestión de gusto, y una pista incorrecta es más notoria que una fuente incorrecta.
2. import_music_bed
import_music_bed(id: "lofi:terminal-rain", out: "public/audio/music-bed.mp3", seconds: 45, start: 12)
Lo que hace además de descargar: recorta seconds desde start, desvanece al inicio y al final, y normaliza a -20 LUFS para que la pista se sitúe debajo de la narración en lugar de competir con ella. Pasa raw: true para omitir todo eso y mantener la pista publicada.
Dónde colocarlo:
public/audio/music-bed.mp3para la pista de la composición.stitch_compositionadjunta esa ruta automáticamente, por lo que nada más tiene que cambiar.public/imported_audios/(el valor predeterminado) para cualquier otra cosa, que es la carpeta que contiene material que no proviene del paquete integrado.
Escribe <archivo>.source.json y una fila en MUSIC-SOURCES.md junto a la pista: id, título, repositorio fuente, licencia, fecha. CC0 no requiere nada de eso. Está ahí para que un año después la procedencia de una pista sea una lectura de archivo en lugar de una suposición.
Salta al medio de una pista con start. Las introducciones suelen ser la parte menos útil, y una pista que comienza en un tiempo fuerte no necesita edición para sentirse deliberada.
3. plan_music_cues
Llámalo en el archivo importado. Para cualquier pista que no sea pulse-bed.mp3, la cuadrícula se estima a partir de una envolvente de onset, así que trátalo como guía de planificación: ajusta un puñado de revelaciones importantes a strongCues, no todos los cortes. docs/STYLE.md tiene las tolerancias.
Costos y límites
- No se vende nada. open-lofi publica sus pistas solo dentro de un ZIP de lanzamiento de 554MB, por lo que una importación lee el directorio central de ese ZIP a través de solicitudes HTTP por rango y extrae solo los bytes del miembro elegido. Los 554MB nunca se descargan.
- Transformar una pista necesita
ffmpegen PATH.raw: trueno. - El límite de API no autenticada de GitHub es de 60 solicitudes por hora. Una construcción de índice consume aproximadamente siete. Establece
GITHUB_TOKENen una máquina que lo reconstruya con frecuencia. - El caché del índice vive en
output/, que un proyecto scaffold ya ignora en git.
Qué no hacer
- No comprometas un catálogo completo en un proyecto. Una pista por video es la unidad aquí.
- No coloques una pista en
public/sfx/. Esa carpeta es el paquete que se envía con el paquete, ypublic/sfx/CREDITS.mddice qué contiene y por qué no tiene términos. - No uses esto para efectos de sonido.
plan_sound_effectsverifica primero el paquete integrado y solo entonces busca, que es el orden correcto para efectos.