Music Video
NoizAI/skills
Build a music video from an existing song and lyrics, either as p5.js/p5.brush animation or by assembling local images and clips.
Scores a riso film or reworks its score. An agent skill from sevenevesai/riso-windowseat.
$ npx skills add sevenevesai/riso-windowseat --skill riso-score -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sevenevesai/riso-windowseat riso-score --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/sevenevesai/riso-windowseat.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/riso-score .claude/skills/riso-score && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "riso-score" agent skill from https://github.com/sevenevesai/riso-windowseat/tree/main/.claude/skills/riso-score into .claude/skills/riso-score/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "riso-score", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/sevenevesai/riso-windowseat/tree/main/.claude/skills/riso-scoreType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add sevenevesai/riso-windowseat --skill riso-score -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sevenevesai/riso-windowseat riso-score --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sevenevesai/riso-windowseat.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/riso-score .agents/skills/riso-score && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "riso-score" agent skill from https://github.com/sevenevesai/riso-windowseat/tree/main/.claude/skills/riso-score into .agents/skills/riso-score/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "riso-score", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sevenevesai/riso-windowseat --skill riso-score -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sevenevesai/riso-windowseat riso-score --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sevenevesai/riso-windowseat.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/riso-score .cursor/skills/riso-score && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "riso-score" agent skill from https://github.com/sevenevesai/riso-windowseat/tree/main/.claude/skills/riso-score into .cursor/skills/riso-score/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "riso-score", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/sevenevesai/riso-windowseat.git --path .claude/skills/riso-score--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add sevenevesai/riso-windowseat --skill riso-score -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sevenevesai/riso-windowseat riso-score --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sevenevesai/riso-windowseat.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/riso-score .gemini/skills/riso-score && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "riso-score" agent skill from https://github.com/sevenevesai/riso-windowseat/tree/main/.claude/skills/riso-score into .gemini/skills/riso-score/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "riso-score", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install sevenevesai/riso-windowseat riso-scoreInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add sevenevesai/riso-windowseat --skill riso-score -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sevenevesai/riso-windowseat.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/riso-score .github/skills/riso-score && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "riso-score" agent skill from https://github.com/sevenevesai/riso-windowseat/tree/main/.claude/skills/riso-score into .github/skills/riso-score/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "riso-score", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sevenevesai/riso-windowseat --skill riso-score -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sevenevesai/riso-windowseat riso-score --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sevenevesai/riso-windowseat.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/riso-score .opencode/skills/riso-score && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "riso-score" agent skill from https://github.com/sevenevesai/riso-windowseat/tree/main/.claude/skills/riso-score into .opencode/skills/riso-score/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "riso-score", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
riso-scoreScores a riso film or reworks its score. An agent skill from sevenevesai/riso-windowseat.
Riso Score is an agent skill from sevenevesai/riso-windowseat. Scores a riso film or reworks its score. Designs the cue list from the film's FILM.md events, builds a deterministic renderAudio() from the sound kit in studies/sound.html, iterates with tools/audio.mjs, gates determinism, length, loudness and sync, and records measured results in FILM.md. Use for "score this film", "add sound/music", "the climax is too loud", "fix the handoff at 16 s", "check the mix", sound effects, foley or a soundtrack on a riso film. Not for drawing or motion (riso-film) or changing tools/.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `examples.md`).
It sits in Media & Creative, covering Music and audio generation and Generative and creative coding. The repository describes itself as: Procedural risograph films in single HTML files (Window Seat, Roost and more), with the Claude Code skills, docs and tools to make your own. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1275fda. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodeffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Riso Score loads about 1.7k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 897 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from sevenevesai/riso-windowseat at commit 1275fda, republished under its MIT licence (© sevenevesai). 897 words, ~1,731 tokens.
.claude/skills/riso-score/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Produce the renderAudio() half of films/<name>/index.html: a deterministic stereo score exactly
the film's duration at 48 kHz, scaled once to −16 LUFS under a −1 dBTP ceiling, with a measured
sheet and a full muxed MP4 reviewed with the picture. Commands run in tools/.
examples.md shows eight finished scores: sampled piano (films/window-seat),
recorded strings timed from the picture (films/roost), found CC0 instruments (films/held),
sampled handpan with edge-timed swells (films/nonpareil), a CC0 trio sharing the picture's
clock (films/eclosion), procedural (films/lumen), procedural from the kit alone with a note
per drawn mark (films/passenger) and two switchable candidates (films/emergence).
FILM.md for sound direction and timed events, and docs/sound.md for the
kit, sync, transitions, mix and how to read the sheet.Each stage ends with audio.mjs output (seconds to run), not with reasoning about code.
── sound kit ── block from studies/sound.html after the
film's motion kit; its header lists the names it declares, so rename collisions. Write
buildScore(): Score({ duration: DUR, key: '<name>' }), air across the film, return s.render(). Cache the promise so the player and renderAudio() share one render;
renderAudio() returns wavBase64(buffer). Publish sync points as window.__riso.marks.
node audio.mjs ../films/<name>/index.html --twice must show matching length and two equal
renders before anything else.pad, organ, wind, rain, air)
passage to passage. Bridge each cut on purpose: pre-lap, post-lap, pedal, pivot or texture
handoff. Run with --marks on the boundaries; a 200 ms hole 10 dB under its surroundings at a
cut is the fade-to-silence failure. Fix it before adding foreground.hits on the true sync points so swells peak on the visible
arrival; let the rest breathe. --around <t> --window 1 per point: onset within ~40 ms after
the mark, never more than 20 ms before. Pick material timbres (contact, paper, drop) from
what is on screen.x, keep bass centred; render sets the level. If the
true-peak ceiling pulled the mix under target, fix the peak, not the target. Nothing above
4 kHz in the band percentages means no air.After every stage, and once more in Firefox before delivery:
node audio.mjs ../films/<name>/index.html --twice --marks <sync points>
node audio.mjs ../films/<name>/index.html --engine firefox --ffmpegFAIL breaks the contract: no renderAudio(), wrong length, clipped samples, or two renders
differing beyond 16-bit jitter (Chromium jitters a step or two; Firefox is byte-identical).
WARN is a judgement to resolve or record: level more than 1 LU off −16 LUFS, true peak above
−1 dBTP, a rate other than 48 kHz, an opening or ending above −40 dBFS in its first or last
10 ms. Discontinuities are bugs at note starts and expected at designed ticks. Then read
out/<name>/_audio.png: waveform lanes, log spectrogram, loudness against the target band with
valleys marked, and the per-mark table.
node render.mjs ../films/<name>/index.html --fps 30 --size 1080 --engine firefoxOnly the full export carries the score; render.mjs prints the muxed loudness and true peak.
When only the score changed, remux instead of re-rendering every frame: take the Firefox WAV that
audio.mjs --engine firefox writes to out/<name>.wav, then
ffmpeg -i ../out/<name>.mp4 -i ../out/<name>.wav -map 0:v -map 1:a -c:v copy -c:a aac -b:a 192k -shortest -movflags +faststart ../out/<name>-rescored.mp4
ffmpeg -i ../out/<name>-rescored.mp4 -af ebur128=peak=true -f null -and read the true peak from the second command, as render.mjs would. Listen through quiet
passages, every handoff and the climax with the picture. If you cannot listen, say so, leave
perceptual quality unclaimed and name three to five times for the user to hear: passing meters did
not stop a modal piano sounding like MIDI to a human listener.
Record under ## Score in FILM.md: direction, tempo/grid and mode, each sync event and what
sounds on it, deliberate silences, the measured line (I −16.0 LUFS, LRA 3.7 LU, TP −2.0 dBTP, clipped 0, firefox byte-identical), the marks table, and what was heard or that nothing was.
Recorded samples need a license that permits redistribution, pinned sources and attribution
beside the film (see films/window-seat/AUDIO-SOURCES.md, CC BY, and
films/roost/AUDIO-SOURCES.md, CC0). Libraries disagree on octave numbering (VSCO 2's cello,
bass, clarinet and horn and VCSL's vibraphone name middle C C3; VSCO 2's violin C4), so check each
root against the recorded partials. A soft low note can lack its fundamental (VSCO horn C1: 0.00
at f, 0.71 at 4f), and a partial scorer then takes the second harmonic: pin such roots from the
harmonic spacing and measure only tuning (films/eclosion/build-sample-bank.py).
The export never plays in the page. For the in-page player, wire the cached buffer to a live
AudioContext that starts from the scrubbed time, stops on pause and seek, and starts muted;
examples.md names the functions that do this in each film.
When reworking, read FILM.md first, edit the authoritative index.html, and measure before
changing anything so the revision has a baseline. Fix continuity before adding notes. Local fixes
preserve approved pacing, sync points and dynamics.
© sevenevesai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .claude/skills/riso-score of sevenevesai/riso-windowseat.
Open the folder on GitHubat commit 1275fda
Riso Score next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Riso Score this skillsevenevesai/riso-windowseat | 282 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Music VideoNoizAI/skills | 526 | — | ~1.5k | Automated safety check: Pass | None | |
| Algorithmic Art with p5.jsanthropics/skills | 180k | 38 repos | ~4.9k | Automated safety check: Pass | Apache-2.0 | |
| Canvas Designanthropics/skills | 180k | 52 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Photo Abstract EditorialZzzLc0405/photo-abstract-editorial | 5.9k | — | ~815 | Automated safety check: Pass | Proprietary |
NoizAI/skills
Build a music video from an existing song and lyrics, either as p5.js/p5.brush animation or by assembling local images and clips.
anthropics/skills
Creates original generative art in two steps: a written algorithmic philosophy, then a p5.js sketch with seeded randomness and an interactive viewer for exploring parameters.
anthropics/skills
Creates original posters and static art as PNG or PDF by first writing a short design philosophy, then expressing it visually on a canvas.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
ZzzLc0405/photo-abstract-editorial
Creates one vertical editorial image from an uploaded photo, keeping the photo untouched and adding an abstract panel and short English title derived from it.
yanliudesign/mono-color-skill
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo.
sevenevesai/riso-windowseat
Create or improve procedural risograph still art, illustrations, posters, print series and images in this repo.
sevenevesai/riso-windowseat
Design, build or improve procedural risograph animations and videos in this repo, including narrative films, abstract shorts, motion effects and visual inspection.
Categories
Scores a riso film or reworks its score. An agent skill from sevenevesai/riso-windowseat. Riso Score is an agent skill from sevenevesai/riso-windowseat. Scores a riso film or reworks its score.
Riso Score fits situations like: score this film; add sound/music; the climax is too loud; fix the handoff at 16 s.
Run `npx skills add sevenevesai/riso-windowseat --skill riso-score -a claude-code`. Or copy the skill folder (.claude/skills/riso-score in sevenevesai/riso-windowseat) into .claude/skills/riso-score in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sevenevesai/riso-windowseat --skill riso-score -a codex`. Or copy the skill folder (.claude/skills/riso-score in sevenevesai/riso-windowseat) into .agents/skills/riso-score in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sevenevesai/riso-windowseat --skill riso-score -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/riso-score, .gemini/skills/riso-score, .github/skills/riso-score and .opencode/skills/riso-score in your project.
Going by SKILL.md and its folder, Riso Score needs the command-line tools its instructions call (node and ffmpeg).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Riso Score is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Riso Score: Music Video (NoizAI/skills, 526 stars), Algorithmic Art with p5.js (anthropics/skills, 180k stars), Canvas Design (anthropics/skills, 180k stars) and HyperFrames Media Use (heygen-com/hyperframes, 60k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sevenevesai (a GitHub user) maintains it in sevenevesai/riso-windowseat, which has 282 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 25, 2026.
Source: sevenevesai/riso-windowseat on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.