build-music

Generate musical phrases, chord progressions, and beats as stereo WAV files via offline algorithmic synthesis.

16|2|Updated Apr 13, 2026
One-click install
npx skills add https://github.com/lens-studio-devs/ls-extensions --skill build-music-lens-studio-devs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: build-music
Source: https://github.com/lens-studio-devs/ls-extensions/tree/main/plugins/ls-clad/skills/build-music
Command: npx skills add https://github.com/lens-studio-devs/ls-extensions --skill build-music-lens-studio-devs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Lens Studio projects often need short musical pieces—jingles, background loops, cinematic cues—but sourcing licensed music is costly and slow. This Skill composes and renders original music locally with pure DSP synthesis, producing license-clean 44.1 kHz stereo WAV files with no samples and no network access. ## Core Features & Use Cases - Genre-aware composition: composeChords, composeMelody, composeBass, and composeDrums generate chord progressions, chord-anchored melodies, basslines, and drum grooves from genre tags like lofi-jazz, cinematic-epic, funk, and edm-uplift, with fresh random seeds per run so no two pieces sound alike. - Full synthesis engine: 30+ synth voices (piano, flute, pad, subBass, drums), per-track FX (EQ, reverb, chorus, compressor, sidechain ducking), humanization (timing/velocity jitter, swing), and a master chain with glue compression and stereo width. - Arrangement and verification: Section masks (intro/A/B/outro) give pieces structure, and a mandatory preflight plus ffmpeg acoustic gate verifies the rendered WAV is non-silent before delivery. - Use Case: Ask for a "dreamy 20-second ambient intro for my Lens" and receive a rendered WAV in Assets/GeneratedSFX/ ready for the Lens to pick up. ## Quick Start Use the build-music skill to compose a 16-second lofi jazz loop with soft drums and save it into my project's Assets/GeneratedSFX folder.

Frequently Asked Questions about build-music

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate background music for a Lens Studio project?

Describe the genre, mood, tempo, and length, and the skill composes chords, melody, bass, and drums with genre-aware helpers, then renders a stereo WAV into Assets/GeneratedSFX. The output folder is shared with build-sfx, so the Lens picks it up automatically.

What genres can the algorithmic music generator produce?

Supported genre tags include pop, sad-pop, lofi, lofi-jazz, jazz, cinematic-epic, cinematic-melancholy, dreamy, folk, edm-uplift, dark, rnb, synthwave, funk, and ambient. Unknown tags fall back to pop, and each genre drives its own progression, key, voicing, tempo range, and drum groove pools.

Does the generated music require samples or an internet connection?

No. All audio is produced by pure DSP synthesis (additive, FM, waveguide, Karplus-Strong voices) running locally in Node.js. The output is sample-free and license-clean, and the entire pipeline works fully offline.

Why did my generated drum pattern render silent?

The renderer only plays numeric-MIDI events, so string drum names like 'bd' or 'sn' in a hand-written pattern produce silence. Use composeDrums, which emits numeric-MIDI track descriptors, or map names through DRUM_MAP before rendering.

Can I reproduce a generated piece I liked?

Yes. The compose helpers log a meta object containing the seed, key, progression, voicing, and groove picks. Pass that seed back into composeChords, composeDrums, or composeBass to pin the take; omitting seeds gives a fresh variation every run.

What are the limitations of synthesized music compared to sampled audio?

Pure DSP synthesis cannot convincingly fake certain instruments, such as bowed string sections, because it lacks the physical modeling and convolution those timbres require. For realistic strings or specific recorded sounds, use sampled assets instead of synthesis.