[CC]
All posts
·3 min read

I Made Claude Code Compose the BGM for My Videos

I needed BGM for my videos. I didn't want to use someone else's music, so I made Claude Code write it for me.

claude-codemulti-agentmusicorchestrationbehind-the-scenes

When I started making YouTube videos, I needed background music. I didn't want to use someone else's track. Partly because of copyright, partly because I just wanted my own. So I tried making Claude Code write it for me.

I make Claude Code orchestration templates for dev teams. PM, developers, testers, reviewers working together through agents and skills. I was curious if that same setup would work for something totally unrelated like music. So I built one.

What Sound Studio is

It's a Claude Code orchestration system for making music with Python. 9 agents, each doing one thing:

  • Researcher looks at genre trends and reference tracks
  • Composer writes the melody, harmony, and song structure
  • Sound Designer handles SFX and synthesis
  • Arranger decides which instruments go where
  • Audio Engineer does the technical export (formats, loudness, etc.)
  • Music Critic grades each concept across 6 criteria
  • Listener Validator tests concepts with 5 simulated personas
  • Set Validator checks consistency when you're making a batch of sounds
  • CC Expert audits the orchestration setup itself

The pipeline goes: Brief, Research, Compose, Arrange, Review, Validate, Export. Each stage has a gate. If a concept gets below a B from the critic, it goes back. If the listener panel doesn't hit 60% positive, same thing.

What came out

I asked for a 2-minute BGM for a tech demo video. Something that feels energetic but doesn't fight with the screen recording.

The composer made 3 versions:

  1. Digital Horizon (120 BPM, G Major) — synth-pop with a plucky arpeggio. Clean and steady.
  2. Code Flow (110 BPM, C Major) — more relaxed, e-piano based. Leaves room for talking.
  3. Launch Day (128 BPM, D Major) — fast and punchy. More of a trailer feel.

Everything was generated as Python scripts using midiutil, numpy, and ffmpeg. No DAW, no audio samples.

The part that surprised me

The music critic agent actually reads the Python code. It traces through beat offset calculations, checks if MIDI note positions land on the right bars, and cross-references the arrangement doc against the implementation. It found a percussion entry point that didn't match the arrangement plan, and flagged a frequency boost in the 2-4 kHz range that would get tiring on repeat.

I wasn't expecting that level of detail. It's not just saying "sounds good" or "needs work." It's doing the math.

The listener panel was interesting too. 5 personas with different ages and listening setups scored each concept separately. One persona loved the jazz version, another thought it was too complex for background use. That kind of disagreement is exactly what you want to see before picking a final track.

Same building blocks, different domain

Sound Studio uses the same pieces as my dev team templates: agents with frontmatter, skills that chain them together, and gates between stages. The structure didn't need to change. I just replaced the domain knowledge in the prompts.

That's the thing I keep coming back to. The orchestration shape stays the same. What makes it a music system or a dev system is what you write in the agent prompts.

What I ended up using

I picked Digital Horizon. It's the most straightforward of the three and it sits well behind screen recordings. You can hear it in the Enterprise Dev Team demo video.

Sound Studio is on GitHub: github.com/PingPingE/sound-studio

The behind-the-scenes video on the channel walks through the whole process if you want to see it in action.

Try it yourself

Get a pre-built agent team and start orchestrating Claude Code in minutes — no setup from scratch.