bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
Scorewright: a Claude Code skill. Claude composes an original score for your video; FluidSynth and sound design render it, mixed under your narration.
SkillsGitHub @jayaprakash-pixelOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Claude Code skill: Claude composes an original, narration-aware score for your video; FluidSynth + sound design render it.
Loading the full README.
Read the full README ↗You give Claude a video. Claude watches it, decides where music starts, stops and hits, chooses a musical identity (genre, key, mode, tempo, instruments, motif) with a reason for each choice, and writes it all in one score.json. One Python script renders that file to real audio:
perc, bass, atmos, melodic, sfx), a full mix, a no-percussion mix and composition.midThe script has no default style, tempo or key. Every video gets its own music.
The banner above and the live page use one colour code. Each colour is a part of the spectrum, and so a part of the mix:
| Colour | Band | What lives there |
|---|---|---|
🟪 violet #6a3cff | sub, below 60 Hz | sub bass, drops, weight |
🟦 blue #3d7bff | bass, 60–250 Hz | chord roots, kick |
🟩 teal #19c6b4 | 250 Hz–1.5 kHz | pads, strings, warmth |
⬜ grey #c9cbe0 | voice band, 1.5–4 kHz | kept clear for your voice |
🟧 amber #ffb02e | upper mids | pulse, bells, motif |
🟥 coral #ff4f6d | air, above 5 kHz | hats, sparkle |
On the live page, bar height is energy, the grey ribbon lights up while the voice speaks, and a white ring marks a hit point.
| Bed | Score | |
|---|---|---|
| For | narrated explainers, tutorials, Shorts | film, documentary, trailers with speech-free stretches |
| Melody | none under speech | leitmotif per core idea, developed at story turns |
| Identity from | timbre and rhythm | melody and harmony |
| Why | a tune is a second voice: the viewer must choose, and your explanation loses | the music speaks in the gaps |
| # | Step | Command / action |
|---|---|---|
| 0 | Check tools | python scripts/scorewright.py doctor |
| 1 | Facts | python scripts/scorewright.py analyze video.mp4 work/ --words words.json |
| 2 | Watch | Claude reads the contact sheet and the timed words |
| 3 | Spot | cue in/out, hit points on words and reveals, where silence is better |
| 4 | Direction | genre, key/mode, BPM, palette, leitmotif, dynamic arc — each with a reason |
| 5 | Score | Claude writes score.json (format, example) |
| 6 | Render | python scripts/scorewright.py render score.json out/v1 |
| 7 | QC | Claude reads qc.json and spectrogram.png, fixes, re-renders |
| 8 | Listen | You listen. Claude cannot hear audio; it fixes what you point at |
Craft rules (spotting, leitmotif, emotion mapping, narration-aware mixing) are in references/craft.md.
1. Get the skill into Claude Code
git clone https://github.com/jayaprakash-pixel/scorewright ~/.claude/skills/scorewright
cd ~/.claude/skills/scorewright
2. Python 3.10+ packages
python -m venv .venv
.venv/Scripts/python -m pip install -r requirements.txt # Windows
# .venv/bin/python -m pip install -r requirements.txt # macOS / Linux
audio-as-code is optional. Without it, use the gm engine only.
3. External tools
| Tool | Get it | Where Scorewright looks |
|---|---|---|
| FluidSynth 2.x | releases · brew install fluid-synth · apt install fluidsynth | PATH |
| GeneralUser GS SoundFont | GeneralUser-GS | soundfonts/GeneralUser-GS.sf2 |
| ffmpeg + ffprobe | ffmpeg.org | PATH |
A tool in another place? Copy config.example.json to config.json and set the paths, or set SCOREWRIGHT_FLUIDSYNTH, SCOREWRIGHT_SF2, SCOREWRIGHT_AAC.
4. Check
.venv/Scripts/python scripts/scorewright.py doctor # prints "ready"
.venv/Scripts/python scripts/test_theory.py # prints "theory ok"
.venv/Scripts/python scripts/scorewright.py render examples/bed_demo.json out/demo
5. Use it
In Claude Code: /scorewright score this video: my_video.mp4 (add a words.json with word timings for narration-aware mixing).
aac engine is slow (about 10× the gm engine). Use it for a few sparse tracks.Scorewright code and docs: MIT © 2026 Jayaprakash, White Noise Academy.
Scorewright does not bundle third-party tools. They keep their own licences: FluidSynth (LGPL-2.1) · GeneralUser GS (GeneralUser GS License v2.0) · audio-as-code (MIT) · ffmpeg (LGPL/GPL) · Three.js (MIT, demo page only).
Music you render with Scorewright is yours. Check the SoundFont licence for your use case.