@miraiclip/audio-sources
v0.2.1
Published
Stock and generated audio for Miraiclip: one AudioProvider contract (search, resolve, generate) with Openverse, Freesound, static-catalog and HTTP-backend adapters, a one-transaction importAudio, and LLM tool definitions.
Maintainers
Readme
@miraiclip/audio-sources
Stock and AI-generated audio for Miraiclip:
- Search — one
AudioProvidercontract with adapters for Openverse, Freesound, an in-app catalog and your own backend. - Generate — sound effects, music and voiceover through one vendor-neutral
AudioGeneratorcontract. Any service is a small adapter;elevenLabsGeneratorships first, plus an offlinetoneGenerator.createGeneratorHandler/remoteGeneratorskeep API keys on the server. - Import —
importAudiorecords source, license and credit line in one undoable step. - AI tools —
search_audio,add_audio,generate_audio,list_voicestool definitions for LLMs.
npm install @miraiclip/audio-sources @miraiclip/coreimport { createAudioLibrary, elevenLabsGenerator, importAudio, openverseProvider } from "@miraiclip/audio-sources";
const library = createAudioLibrary([openverseProvider()], {
generators: [elevenLabsGenerator({ apiKey: process.env.ELEVENLABS_API_KEY, plan: "paid" })], // server-side
});
// Search…
const [{ result }] = await library.searchAll({ query: "calm piano", kind: "music", commercialOnly: true });
importAudio(project, await library.resolve(result!.items[0]!), { atUs: 0, volume: 0.35 });
// …or generate.
const { resolved } = await library.generate("elevenlabs", { kind: "sfx", prompt: "glass shattering", durationS: 2 }, {
storeFile: (file, name) => myStorage.put(file, name),
}).result;
importAudio(project, resolved);Docs: https://comaniacs.github.io/miraiclip/docs/audio-sources/ — providers, generators, writing an adapter, the server handler, and licensing notes (Freesound's API is for non-commercial use without an agreement; many Openverse items are NC; ElevenLabs output terms depend on your plan).
