@autoaiai/aicut 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MANUAL.md +94 -94
- package/package.json +1 -1
- package/skills/aicut-motion/SKILL.md +69 -3
- package/skills/aicut-motion/THIRD_PARTY_NOTICES.md +14 -0
- package/skills/aicut-motion/assets/atlas/lib/harness.js +116 -0
- package/skills/aicut-motion/assets/atlas/lib/sound.js +274 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/code.js +937 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/code.js +909 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/code.js +881 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/code.js +897 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/code.js +814 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/code.js +990 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/code.js +994 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/code.js +792 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/code.js +840 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/code.js +1126 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/code.js +854 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/code.js +1124 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/code.js +728 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/code.js +664 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/code.js +991 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/code.js +801 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/code.js +692 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/code.js +756 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/code.js +922 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/code.js +852 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/code.js +724 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/code.js +793 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/code.js +846 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/code.js +1008 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/code.js +680 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/code.js +633 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/code.js +757 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/code.js +828 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/code.js +697 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/code.js +687 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/code.js +727 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/code.js +903 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/code.js +662 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/code.js +951 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/code.js +759 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/code.js +738 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/code.js +793 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/code.js +673 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/code.js +907 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/code.js +833 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/code.js +845 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/code.js +496 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/code.js +635 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/code.js +799 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/code.js +547 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/code.js +592 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/code.js +768 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/code.js +666 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/code.js +559 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/code.js +943 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/code.js +606 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/code.js +730 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/code.js +782 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/code.js +504 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/code.js +517 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/code.js +713 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/code.js +717 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/code.js +540 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/code.js +524 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/code.js +934 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/code.js +690 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/code.js +612 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/code.js +666 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/code.js +651 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/code.js +656 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/code.js +672 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/code.js +548 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/code.js +989 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/code.js +440 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/code.js +895 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/code.js +563 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/code.js +627 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/code.js +1096 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/code.js +595 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/code.js +665 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/code.js +645 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/code.js +436 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/code.js +1237 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/code.js +622 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/code.js +524 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/code.js +689 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/code.js +574 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/code.js +469 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/code.js +531 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/code.js +675 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/code.js +609 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/style.json +13 -0
- package/skills/aicut-motion/references/motion-delivery.md +55 -0
- package/skills/aicut-motion/references/style-index.json +690 -0
- package/skills/aicut-motion/references/style-research.md +73 -0
- package/skills/aicut-motion/references/style-selection.md +71 -0
- package/skills/aicut-motion/scripts/atlas-viewer.html +195 -0
- package/skills/aicut-motion/scripts/atlas.mjs +109 -0
- package/studio/server/fetch-github.mjs +14 -3
- package/studio/server/server.mjs +40 -3
- package/studio/server/skill-summaries.mjs +60 -0
- package/studio/server/skills.mjs +121 -7
- package/studio/server/styles-store.mjs +235 -0
- package/studio/server/template-posters.mjs +2 -2
- package/studio/server/templates-page.mjs +93 -93
- package/studio/server/templates.mjs +32 -7
- package/studio/ui/dist/assets/ExportCenter-DasulhAv.js +1 -0
- package/studio/ui/dist/assets/SettingsModal-BZw0Hz2_.js +2 -0
- package/studio/ui/dist/assets/es-C8XPZARI.js +1 -0
- package/studio/ui/dist/assets/index-BjJVmBzB.js +1623 -0
- package/studio/ui/dist/assets/index-C3BfKZFO.css +1 -0
- package/studio/ui/dist/assets/ja-BeNkdaEj.js +1 -0
- package/studio/ui/dist/assets/ko-DcTVhdzK.js +1 -0
- package/studio/ui/dist/assets/zh-CN-Cg51ctbL.js +1 -0
- package/studio/ui/dist/index.html +2 -2
- package/skills/30x-web-to-video/SKILL.md +0 -421
- package/skills/30x-web-to-video/examples/INDEX.md +0 -26
- package/skills/30x-web-to-video/references/animations.md +0 -539
- package/skills/30x-web-to-video/references/audio.md +0 -256
- package/skills/30x-web-to-video/references/components.md +0 -340
- package/skills/30x-web-to-video/references/lottie.md +0 -174
- package/skills/30x-web-to-video/references/visual-effects.md +0 -157
- package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +0 -169
- package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +0 -134
- package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +0 -120
- package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +0 -154
- package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +0 -38
- package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +0 -152
- package/skills/3d-asset-generation/SKILL.md +0 -142
- package/skills/action-fight-prompt/SKILL.md +0 -136
- package/skills/action-fight-prompt/references/camera-and-impact.md +0 -64
- package/skills/action-fight-prompt/references/example-15s-duel.md +0 -59
- package/skills/action-fight-prompt/references/scene-patterns.md +0 -80
- package/skills/ad-creative-video/SKILL.md +0 -205
- package/skills/ad-creative-video/references/batch-ad-pipeline.md +0 -289
- package/skills/ad-creative-video/references/platform-specs.md +0 -72
- package/skills/after-effects/SKILL.md +0 -123
- package/skills/after-effects/references/export-recipes.md +0 -168
- package/skills/after-effects/references/expression-library.md +0 -184
- package/skills/after-effects/references/expressions.md +0 -134
- package/skills/after-effects/references/performance-triage.md +0 -138
- package/skills/after-effects/references/project-hygiene.md +0 -188
- package/skills/ai-media-quality-review/SKILL.md +0 -72
- package/skills/ai-product-video/SKILL.md +0 -296
- package/skills/ai-product-video/references/aesthetic-rules.md +0 -177
- package/skills/ai-product-video/references/final-review.md +0 -110
- package/skills/ai-product-video/references/guided-free-creation.md +0 -194
- package/skills/ai-product-video/references/music-beat-sync.md +0 -219
- package/skills/ai-product-video/references/pipeline.md +0 -392
- package/skills/ai-product-video/references/sequences/promo-energy-arc.md +0 -50
- package/skills/ai-product-video/references/shots/ATTRIBUTION.md +0 -65
- package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +0 -40
- package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +0 -57
- package/skills/anidoodle/SKILL.md +0 -185
- package/skills/anidoodle/references/anatomy.md +0 -91
- package/skills/anidoodle/references/backends-and-adapters.md +0 -82
- package/skills/anidoodle/references/camera.md +0 -148
- package/skills/anidoodle/references/craft-bar.md +0 -72
- package/skills/anidoodle/references/determinism-and-contract.md +0 -46
- package/skills/anidoodle/references/formats.md +0 -121
- package/skills/anidoodle/references/motion-grammar.md +0 -234
- package/skills/anidoodle/references/music/compose.md +0 -388
- package/skills/anidoodle/references/music/sound-design.md +0 -245
- package/skills/anidoodle/references/music/sounds-licenses.md +0 -69
- package/skills/anidoodle/references/music/styles/lofi-electronic.md +0 -112
- package/skills/anidoodle/references/music/styles/music-box.md +0 -57
- package/skills/animated-component-libraries/SKILL.md +0 -820
- package/skills/animated-component-libraries/references/customization_guide.md +0 -699
- package/skills/animated-component-libraries/references/magic_ui_components.md +0 -422
- package/skills/animated-component-libraries/references/react_bits_components.md +0 -587
- package/skills/animated-infographic/SKILL.md +0 -211
- package/skills/animated-infographic/references/sequenced-infographic.md +0 -286
- package/skills/appshot-core/SKILL.md +0 -872
- package/skills/article-highlights/SKILL.md +0 -151
- package/skills/avatar-mix/SKILL.md +0 -301
- package/skills/bang-motion/SKILL.md +0 -583
- package/skills/bang-motion/references/ae-bridge-higgsfield.md +0 -160
- package/skills/bang-motion/references/anti-ppt.md +0 -110
- package/skills/bang-motion/references/architecture.md +0 -188
- package/skills/bang-motion/references/explainer.md +0 -579
- package/skills/bang-motion/references/kartun-panggung.md +0 -221
- package/skills/bang-motion/references/opener-konsep.md +0 -817
- package/skills/bang-motion/references/roadmap.md +0 -85
- package/skills/bang-motion/references/techniques.md +0 -690
- package/skills/beat-sync-edit/SKILL.md +0 -148
- package/skills/book-video-factory/SKILL.md +0 -139
- package/skills/book-video-factory/references/first-run.md +0 -50
- package/skills/book-video-factory/references/paper-collage-explainer.md +0 -127
- package/skills/book-video-factory/references/quality-gates.md +0 -87
- package/skills/book-video-production/SKILL.md +0 -211
- package/skills/brag/SKILL.md +0 -195
- package/skills/brag/references/audio.md +0 -312
- package/skills/brag/references/step-1-inspect.md +0 -125
- package/skills/brag/references/step-2-plan.md +0 -234
- package/skills/brag/references/step-3-compose.md +0 -199
- package/skills/brag/references/step-4-deliver.md +0 -141
- package/skills/brag/references/tones.md +0 -231
- package/skills/brand-setup/SKILL.md +0 -228
- package/skills/brewreel/SKILL.md +0 -491
- package/skills/brewreel/docs/broll.en.md +0 -252
- package/skills/brewreel/docs/broll.md +0 -252
- package/skills/brewreel/docs/custom-shot.en.md +0 -66
- package/skills/brewreel/docs/custom-shot.md +0 -103
- package/skills/brewreel/docs/faq.en.md +0 -90
- package/skills/brewreel/docs/faq.md +0 -90
- package/skills/brewreel/docs/features.en.md +0 -157
- package/skills/brewreel/docs/features.md +0 -157
- package/skills/brewreel/docs/gallery.en.md +0 -44
- package/skills/brewreel/docs/gallery.md +0 -44
- package/skills/brewreel/docs/how-it-works.en.md +0 -64
- package/skills/brewreel/docs/how-it-works.md +0 -64
- package/skills/caption-animation/SKILL.md +0 -216
- package/skills/caption-animation/references/word-timed-captions.md +0 -254
- package/skills/cartcut-editing/SKILL.md +0 -615
- package/skills/cartcut-editing/references/html-typography.md +0 -277
- package/skills/cassette-video-edit/SKILL.md +0 -129
- package/skills/ccvideo/SKILL.md +0 -264
- package/skills/chekhov-dramaturgy/SKILL.md +0 -367
- package/skills/chekhov-dramaturgy/reference.md +0 -375
- package/skills/chengfeng-check-updates/SKILL.md +0 -283
- package/skills/cinematic-product-promo-skill/SKILL.md +0 -295
- package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +0 -187
- package/skills/cinematic-product-promo-skill/references/final-review.md +0 -116
- package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +0 -199
- package/skills/cinematic-product-promo-skill/references/jianying-export.md +0 -183
- package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +0 -257
- package/skills/cinematic-product-promo-skill/references/pipeline.md +0 -393
- package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +0 -50
- package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +0 -65
- package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +0 -40
- package/skills/claude-gif/SKILL.md +0 -211
- package/skills/claude-gif/references/gif-optimization.md +0 -209
- package/skills/claude-gif/references/perfect-loops.md +0 -295
- package/skills/claude-gif/references/platform-specs.md +0 -138
- package/skills/claude-gif/references/prompt-engineering.md +0 -211
- package/skills/claude-gif/references/remotion-gif.md +0 -560
- package/skills/codex-video-pipeline/SKILL.md +0 -213
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +0 -10
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +0 -22
- package/skills/codex-video-pipeline/references/captions.md +0 -39
- package/skills/codex-video-pipeline/references/cover-system.md +0 -72
- package/skills/codex-video-pipeline/references/cross-platform.md +0 -77
- package/skills/codex-video-pipeline/references/example-run.md +0 -54
- package/skills/codex-video-pipeline/references/first-run.md +0 -130
- package/skills/codex-video-pipeline/references/project-contract.md +0 -54
- package/skills/codex-video-pipeline/references/quality-gates.md +0 -44
- package/skills/codex-video-pipeline/references/research-and-script.md +0 -50
- package/skills/collage-broll-explainers/SKILL.md +0 -429
- package/skills/create-onboarding-video/SKILL.md +0 -233
- package/skills/cs-shotcraft-skill/SKILL.md +0 -218
- package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +0 -207
- package/skills/cs-shotcraft-skill/references/camera-table.md +0 -88
- package/skills/cs-shotcraft-skill/references/engineering.md +0 -132
- package/skills/cs-shotcraft-skill/references/final-review.md +0 -118
- package/skills/cs-shotcraft-skill/references/guided-free-creation.md +0 -199
- package/skills/cs-shotcraft-skill/references/jianying-export.md +0 -183
- package/skills/cs-shotcraft-skill/references/music-beat-sync.md +0 -257
- package/skills/cs-shotcraft-skill/references/pipeline.md +0 -408
- package/skills/cs-shotcraft-skill/references/product-machine.md +0 -56
- package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +0 -50
- package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +0 -65
- package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/cut-video/SKILL.md +0 -387
- package/skills/cyxj-hyperframes-overlay/SKILL.md +0 -75
- package/skills/cyxj-remotion-evolve/SKILL.md +0 -123
- package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +0 -123
- package/skills/demo-video-creation-skill/SKILL.md +0 -152
- package/skills/demo-video-creation-skill/references/capture-workflow.md +0 -74
- package/skills/demo-video-creation-skill/references/qc-checklist.md +0 -61
- package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +0 -94
- package/skills/demo-video-creation-skill/references/storytelling.md +0 -86
- package/skills/demo-video-creation-skill/references/visual-system.md +0 -83
- package/skills/demoday/SKILL.md +0 -148
- package/skills/develop-premiere-pro-mcp/SKILL.md +0 -131
- package/skills/diagram-animation/SKILL.md +0 -200
- package/skills/diagram-animation/references/diagram-and-chart-recipes.md +0 -218
- package/skills/diagram-tour/SKILL.md +0 -287
- package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +0 -78
- package/skills/docvideoer/SKILL.md +0 -139
- package/skills/draftcut/SKILL.md +0 -104
- package/skills/draftcut/docs/agent-bootstrap.md +0 -64
- package/skills/draftcut/docs/approvals.md +0 -45
- package/skills/draftcut/docs/audio-first-migration.md +0 -35
- package/skills/draftcut/docs/configuration.md +0 -54
- package/skills/draftcut/docs/getting-started.md +0 -63
- package/skills/draftcut/docs/harness-case-study.en.md +0 -23
- package/skills/draftcut/docs/harness-case-study.md +0 -47
- package/skills/draftcut/references/01-plan.md +0 -30
- package/skills/draftcut/references/03-deliver.md +0 -26
- package/skills/draftcut/references/04-reference-theme-prompt.md +0 -7
- package/skills/draftcut/references/05-social-loudness.md +0 -58
- package/skills/draftcut/references/06-modern-components.md +0 -72
- package/skills/easyedit/SKILL.md +0 -66
- package/skills/erduo-broll-loop-engineering/SKILL.md +0 -136
- package/skills/erduo-broll-loop-engineering/references/animation-craft.md +0 -208
- package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +0 -107
- package/skills/erduo-broll-loop-engineering/references/handoff-template.md +0 -70
- package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +0 -122
- package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +0 -171
- package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +0 -322
- package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +0 -334
- package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +0 -76
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +0 -174
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +0 -135
- package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +0 -7
- package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +0 -65
- package/skills/explainer-assets/SKILL.md +0 -98
- package/skills/explainer-video/SKILL.md +0 -146
- package/skills/framewright/SKILL.md +0 -324
- package/skills/framewright/references/audio.md +0 -230
- package/skills/framewright/references/guide.md +0 -276
- package/skills/framewright/references/painting.md +0 -425
- package/skills/framewright/references/photo.md +0 -75
- package/skills/framewright/references/questionnaire.md +0 -115
- package/skills/framewright/references/styles.md +0 -388
- package/skills/framewright/references/troubleshooting.md +0 -119
- package/skills/framewright/references/world.md +0 -215
- package/skills/gbro-collage-broll/SKILL.md +0 -435
- package/skills/gbro-collage-info/SKILL.md +0 -135
- package/skills/gbro-collage-info/references/motion-grammar.md +0 -66
- package/skills/gbro-collage-info/references/production.md +0 -67
- package/skills/gbro-collage-info/references/style-system.md +0 -38
- package/skills/gemini-tts/SKILL.md +0 -208
- package/skills/gemini-tts/references/prompting-guide.md +0 -169
- package/skills/gen/SKILL.md +0 -282
- package/skills/ghost-editor/SKILL.md +0 -437
- package/skills/ghost-editor/docs/HOW-IT-WORKS.md +0 -82
- package/skills/ghost-editor/docs/PLAYBOOK.md +0 -139
- package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +0 -17
- package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +0 -13
- package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +0 -20
- package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +0 -17
- package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +0 -22
- package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +0 -22
- package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +0 -20
- package/skills/ghost-editor/docs/THIRD_PARTY/models.md +0 -11
- package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +0 -13
- package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +0 -15
- package/skills/git-story-film/SKILL.md +0 -220
- package/skills/git-story-film/examples/raven-story/FONTS.md +0 -8
- package/skills/git-story-film/examples/raven-story/OUTLINE.md +0 -93
- package/skills/git-story-film/references/craft.md +0 -148
- package/skills/git-story-film/references/directing.md +0 -185
- package/skills/git-story-film/references/forms.md +0 -150
- package/skills/git-story-film/references/production.md +0 -150
- package/skills/git-story-film/references/story.md +0 -137
- package/skills/git-story-film/references/text-and-fonts.md +0 -90
- package/skills/guizang-product-video-skill/SKILL.md +0 -96
- package/skills/guizang-product-video-skill/references/audio-and-qa.md +0 -113
- package/skills/guizang-product-video-skill/references/audio-sourcing.md +0 -80
- package/skills/guizang-product-video-skill/references/case-study.md +0 -63
- package/skills/guizang-product-video-skill/references/component-pipeline.md +0 -86
- package/skills/guizang-product-video-skill/references/cover.md +0 -43
- package/skills/guizang-product-video-skill/references/direction.md +0 -91
- package/skills/guizang-product-video-skill/references/onboarding.md +0 -98
- package/skills/guizang-product-video-skill/references/repo-and-style.md +0 -44
- package/skills/guizang-product-video-skill/references/review.md +0 -38
- package/skills/guizang-product-video-skill/references/starter.md +0 -168
- package/skills/guizang-product-video-skill/references/story-and-copy.md +0 -88
- package/skills/guizang-product-video-skill/references/visual-vocabulary.md +0 -78
- package/skills/guofeng-paper-video/SKILL.md +0 -159
- package/skills/guofeng-paper-video/style/design.md +0 -43
- package/skills/guofeng-paper-video/style/palette.md +0 -21
- package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +0 -19
- package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +0 -37
- package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +0 -27
- package/skills/guofeng-paper-video/style//345/210/206/351/225/234/344/270/216/345/233/276/345/261/202/350/247/204/350/214/203.md +0 -67
- package/skills/guofeng-paper-video/style//347/272/270/347/211/207/347/264/240/346/235/220/350/247/204/350/214/203.md +0 -29
- package/skills/hand-drawn-explainer-video-nikola/SKILL.md +0 -113
- package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +0 -18
- package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +0 -22
- package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +0 -28
- package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +0 -35
- package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +0 -24
- package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +0 -67
- package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +0 -79
- package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +0 -49
- package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +0 -82
- package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +0 -39
- package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +0 -30
- package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +0 -37
- package/skills/hbg-life-simulation/SKILL.md +0 -285
- package/skills/hbg-life-simulation/references/image-generation.md +0 -53
- package/skills/hbg-life-simulation/references/local-account-api.md +0 -112
- package/skills/hbg-life-simulation/references/opening-system.md +0 -45
- package/skills/hbg-life-simulation/references/project-spec.md +0 -62
- package/skills/hbg-life-simulation/references/render-and-qa.md +0 -107
- package/skills/hbg-life-simulation/references/storyboarding.md +0 -69
- package/skills/hbg-life-simulation/references/style-system.md +0 -80
- package/skills/hbg-life-simulation/references/visual-system.md +0 -44
- package/skills/heygen-avatar/SKILL.md +0 -489
- package/skills/heygen-avatar/references/asset-routing.md +0 -86
- package/skills/heygen-avatar/references/avatar-creation.md +0 -181
- package/skills/heygen-avatar/references/troubleshooting.md +0 -137
- package/skills/heytea-doodle-poster/SKILL.md +0 -132
- package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +0 -103
- package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +0 -122
- package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +0 -106
- package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +0 -264
- package/skills/heytea-doodle-poster/references/evaluation.md +0 -246
- package/skills/heytea-doodle-poster/references/lettering-guide.md +0 -213
- package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +0 -101
- package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +0 -56
- package/skills/heytea-doodle-poster/references/style-guide.md +0 -412
- package/skills/heytea-doodle-poster-hosted/SKILL.md +0 -132
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +0 -103
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +0 -122
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +0 -106
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +0 -264
- package/skills/heytea-doodle-poster-hosted/references/evaluation.md +0 -246
- package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +0 -213
- package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +0 -101
- package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +0 -56
- package/skills/heytea-doodle-poster-hosted/references/style-guide.md +0 -412
- package/skills/html2video/SKILL.md +0 -290
- package/skills/html2video/references/cjk-type.md +0 -173
- package/skills/html2video/references/editorial.md +0 -145
- package/skills/html2video/references/narration.md +0 -111
- package/skills/html2video/references/pitfalls.md +0 -238
- package/skills/html2video/references/shots.md +0 -198
- package/skills/html2video/references/storyboard.md +0 -323
- package/skills/hyperdirector/SKILL.md +0 -202
- package/skills/hyperdirector/docs/audio-workflow.md +0 -160
- package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +0 -244
- package/skills/hyperdirector/docs/brand-kit-setup.md +0 -322
- package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +0 -277
- package/skills/hyperdirector/docs/cursor-development-notes.md +0 -474
- package/skills/hyperdirector/docs/faq.md +0 -285
- package/skills/hyperdirector/docs/faq.zh-CN.md +0 -198
- package/skills/hyperdirector/docs/first-video.md +0 -320
- package/skills/hyperdirector/docs/first-video.zh-CN.md +0 -265
- package/skills/hyperdirector/docs/installation.md +0 -254
- package/skills/hyperdirector/docs/installation.zh-CN.md +0 -222
- package/skills/hyperdirector/docs/quickstart.md +0 -203
- package/skills/hyperframes/SKILL.md +0 -117
- package/skills/hyperframes/references/captions.md +0 -46
- package/skills/hyperframes/references/film.md +0 -48
- package/skills/hyperframes/references/format.md +0 -158
- package/skills/hyperframes/references/look.md +0 -69
- package/skills/hyperframes/references/motion.md +0 -95
- package/skills/hyperframes/references/overlays.md +0 -39
- package/skills/hyperframes/references/review.md +0 -51
- package/skills/hyperframes/references/runtimes.md +0 -69
- package/skills/hyperframes/references/skill-lifecycle.md +0 -49
- package/skills/hyperframes/references/sound.md +0 -43
- package/skills/hyperframes/references/spec.md +0 -76
- package/skills/hyperframes/references/story.md +0 -103
- package/skills/hyperframes-motion-director/SKILL.md +0 -920
- package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +0 -185
- package/skills/hyperframes-motion-director/references/audio-sync.md +0 -83
- package/skills/hyperframes-motion-director/references/design-engineering.md +0 -156
- package/skills/hyperframes-motion-director/references/gsap-choreography.md +0 -202
- package/skills/hyperframes-motion-director/references/hyperframes-stability.md +0 -99
- package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +0 -227
- package/skills/hyperframes-motion-director/references/motion-background-system.md +0 -165
- package/skills/hyperframes-motion-director/references/motion-craft.md +0 -182
- package/skills/hyperframes-motion-director/references/premium-product-promo.md +0 -287
- package/skills/hyperframes-motion-director/references/text-over-background-layout.md +0 -221
- package/skills/hyperframes-motion-director/references/visual-standard.md +0 -174
- package/skills/hyperframes-motion-director/references/workflow.md +0 -320
- package/skills/hypit/SKILL.md +0 -367
- package/skills/hypit/references/creation/brief.md +0 -93
- package/skills/hypit/references/creation/script-and-time.md +0 -259
- package/skills/hypit/references/creation/transformations.md +0 -143
- package/skills/hypit/references/playbooks/craft/b-roll.md +0 -94
- package/skills/hypit/references/playbooks/craft/caption-tracking.md +0 -126
- package/skills/hypit/references/playbooks/craft/captions.md +0 -253
- package/skills/hypit/references/playbooks/craft/generated-dependencies.md +0 -38
- package/skills/hypit/references/playbooks/craft/graphic-compositions.md +0 -85
- package/skills/hypit/references/playbooks/craft/motion-graphics.md +0 -68
- package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +0 -51
- package/skills/hypit/references/playbooks/craft/sound-mix.md +0 -70
- package/skills/hypit/references/playbooks/formats/narration-led-demo.md +0 -87
- package/skills/image/SKILL.md +0 -153
- package/skills/image/references/characters.md +0 -86
- package/skills/image/references/creative-direction.md +0 -137
- package/skills/image/references/de-slop.md +0 -95
- package/skills/image/references/dimensional.md +0 -88
- package/skills/image/references/editing.md +0 -112
- package/skills/image/references/golden-rules.md +0 -198
- package/skills/image/references/gpt-image.md +0 -228
- package/skills/image/references/models.md +0 -78
- package/skills/image/references/multi-panel.md +0 -354
- package/skills/image/references/nano-banana.md +0 -150
- package/skills/image/references/patterns/character-design.md +0 -150
- package/skills/image/references/patterns/ecommerce.md +0 -124
- package/skills/image-smixs/SKILL.md +0 -153
- package/skills/image-smixs/references/characters.md +0 -86
- package/skills/image-smixs/references/creative-direction.md +0 -137
- package/skills/image-smixs/references/de-slop.md +0 -95
- package/skills/image-smixs/references/dimensional.md +0 -88
- package/skills/image-smixs/references/editing.md +0 -112
- package/skills/image-smixs/references/golden-rules.md +0 -198
- package/skills/image-smixs/references/gpt-image.md +0 -228
- package/skills/image-smixs/references/models.md +0 -78
- package/skills/image-smixs/references/multi-panel.md +0 -354
- package/skills/image-smixs/references/nano-banana.md +0 -150
- package/skills/image-smixs/references/patterns/character-design.md +0 -150
- package/skills/image-smixs/references/patterns/ecommerce.md +0 -124
- package/skills/image-story-video-wizard/SKILL.md +0 -148
- package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +0 -29
- package/skills/image-story-video-wizard/references/host-routing.md +0 -44
- package/skills/image-story-video-wizard/references/state-schema.md +0 -79
- package/skills/image-story-video-wizard/references/workflow.md +0 -203
- package/skills/image-story-video-wizard/references/writing-and-review.md +0 -60
- package/skills/ip-as-logo/SKILL.md +0 -151
- package/skills/ip-as-logo-s1dashu/SKILL.md +0 -151
- package/skills/jtxvideo-skill/SKILL.md +0 -337
- package/skills/kinetic-reel/SKILL.md +0 -140
- package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +0 -51
- package/skills/kinetic-reel/references/sound.md +0 -40
- package/skills/kinetic-reel/references/style-guide.md +0 -79
- package/skills/knowledge-explainer-skill/SKILL.md +0 -149
- package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +0 -61
- package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +0 -20
- package/skills/knowledge-explainer-skill/examples/before_after_demo.md +0 -38
- package/skills/knowledge-explainer-skill/examples/cta_outro.md +0 -11
- package/skills/knowledge-explainer-skill/examples/double_pendulum.md +0 -20
- package/skills/knowledge-explainer-skill/examples/paper_fold.md +0 -20
- package/skills/knowledge-explainer-skill/examples/script.md +0 -40
- package/skills/lanshu-create-ai-presenter-video/SKILL.md +0 -253
- package/skills/lanshu-create-ai-presenter-video/references/editing.md +0 -67
- package/skills/lanshu-create-ai-presenter-video/references/generation.md +0 -94
- package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +0 -83
- package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +0 -189
- package/skills/laoxu-video-script/SKILL.md +0 -117
- package/skills/laoxu-video-script/references/cases.md +0 -305
- package/skills/laoxu-video-script/references/de-ai.md +0 -32
- package/skills/laoxu-video-script/references/diagnostics.md +0 -67
- package/skills/laoxu-video-script/references/format.md +0 -62
- package/skills/laoxu-video-script/references/formulas.md +0 -43
- package/skills/laoxu-video-script/references/method.md +0 -115
- package/skills/laoxu-video-script/references/motifs-and-lines.md +0 -829
- package/skills/laoxu-video-script/references/persona.md +0 -38
- package/skills/laoxu-video-script/references/qihao-path.md +0 -35
- package/skills/laoxu-video-script/references/qihao-xinfa.md +0 -39
- package/skills/laoxu-video-script/references/redlines.md +0 -26
- package/skills/lemo-opuscar/SKILL.md +0 -67
- package/skills/lipnardo/SKILL.md +0 -308
- package/skills/lipnardo/examples/batch-personalized.md +0 -44
- package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +0 -56
- package/skills/lipnardo/examples/single-video.md +0 -44
- package/skills/lipnardo/references/avatar-types.md +0 -42
- package/skills/lipnardo/references/credit-costs.md +0 -39
- package/skills/lipnardo/references/error-codes.md +0 -66
- package/skills/lipnardo/references/heygen-api-reference.md +0 -416
- package/skills/ll-video-decomposer/SKILL.md +0 -105
- package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +0 -44
- package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +0 -41
- package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +0 -48
- package/skills/ll-video-decomposer/references/single-video-report-template.md +0 -47
- package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +0 -30
- package/skills/ll-video-decomposer/references/transcription-routing.md +0 -65
- package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +0 -30
- package/skills/ltx2-video/SKILL.md +0 -193
- package/skills/ltx2-video/references/mode_ux.md +0 -293
- package/skills/make-ai-short/SKILL.md +0 -130
- package/skills/make-blender-education-video/SKILL.md +0 -247
- package/skills/make-blender-education-video/references/evidence-and-explanation.md +0 -62
- package/skills/make-blender-education-video/references/github-workflow-discovery.md +0 -55
- package/skills/make-blender-education-video/references/production-workflow.md +0 -62
- package/skills/make-blender-education-video/references/story-patterns.md +0 -65
- package/skills/make-blender-education-video/references/visual-quality.md +0 -82
- package/skills/manage-storyboard-projects/SKILL.md +0 -128
- package/skills/manim-composer/SKILL.md +0 -176
- package/skills/manim-composer/references/narrative-patterns.md +0 -125
- package/skills/manim-composer/references/scene-examples.md +0 -216
- package/skills/manim-composer/references/visual-techniques.md +0 -223
- package/skills/manim-composer/templates/scenes-template.md +0 -147
- package/skills/monet-ai-editor-monet/SKILL.md +0 -367
- package/skills/motion-graphics/SKILL.md +0 -206
- package/skills/motion-graphics/references/craft.md +0 -136
- package/skills/motion-graphics/references/engine.md +0 -130
- package/skills/motion-graphics/references/export.md +0 -67
- package/skills/motion-graphics/references/physics.md +0 -100
- package/skills/motion-graphics/references/verify.md +0 -124
- package/skills/motion-video/SKILL.md +0 -133
- package/skills/motion-video/references/audio-and-beat-sync.md +0 -109
- package/skills/motion-video/references/composition-contract.md +0 -107
- package/skills/motion-video/references/production-pipeline.md +0 -147
- package/skills/motion-video/references/style-comic-spiderverse.md +0 -87
- package/skills/motion-video/references/style-glass-keynote.md +0 -69
- package/skills/motion-video-maker/SKILL.md +0 -1452
- package/skills/motion-video-maker/reference/components.md +0 -451
- package/skills/motion-video-maker/reference/workflow.md +0 -190
- package/skills/motioncraft/SKILL.md +0 -221
- package/skills/motioncraft/references/animation-system.md +0 -57
- package/skills/motioncraft/references/assets-and-licensing.md +0 -21
- package/skills/motioncraft/references/customization.md +0 -52
- package/skills/motioncraft/references/gpu-cloud-render.md +0 -15
- package/skills/motioncraft/references/music.md +0 -43
- package/skills/motioncraft/references/phase1-planning-and-preview.md +0 -74
- package/skills/motioncraft/references/phase2-timeline-audio.md +0 -33
- package/skills/motioncraft/references/phase3-pixel-review.md +0 -13
- package/skills/motioncraft/references/phase4-templates.md +0 -30
- package/skills/motioncraft/references/preflight.md +0 -27
- package/skills/motioncraft/references/qa.md +0 -53
- package/skills/motioncraft/references/reference-analysis.md +0 -37
- package/skills/narrator-ai-cli/SKILL.md +0 -256
- package/skills/narrator-ai-cli/references/magic-video.md +0 -205
- package/skills/narrator-ai-cli/references/operations.md +0 -230
- package/skills/narrator-ai-cli/references/resources.md +0 -126
- package/skills/narrator-ai-cli/references/workflows.md +0 -332
- package/skills/newcut-video-clipping/SKILL.md +0 -194
- package/skills/newcut-video-clipping/references/examples.md +0 -59
- package/skills/newcut-video-clipping/references/provider-config.md +0 -110
- package/skills/newcut-video-clipping/references/quality-check.md +0 -35
- package/skills/newcut-video-clipping/references/semantic-plan.md +0 -65
- package/skills/notes-to-video/SKILL.md +0 -476
- package/skills/openchatcut/SKILL.md +0 -100
- package/skills/openchatcut/references/editing-workflow.md +0 -54
- package/skills/openchatcut/references/getting-started.md +0 -106
- package/skills/openchatcut/references/known-errors.md +0 -62
- package/skills/openstoryline-install/SKILL.md +0 -228
- package/skills/orca-motion/SKILL.md +0 -100
- package/skills/orca-motion/references/api.md +0 -100
- package/skills/orca-motion/references/integration.md +0 -59
- package/skills/orca-motion/references/kinetic-type.md +0 -59
- package/skills/orca-motion/references/principles.md +0 -76
- package/skills/package-talking-head-video/SKILL.md +0 -90
- package/skills/package-talking-head-video/docs/EXAMPLES.md +0 -18
- package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +0 -29
- package/skills/package-talking-head-video/docs/USAGE.md +0 -83
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +0 -144
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +0 -1099
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +0 -154
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +0 -365
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +0 -56
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +0 -8
- package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +0 -34
- package/skills/package-talking-head-video/references/director-rules.md +0 -29
- package/skills/package-talking-head-video/references/motion-and-illustration.md +0 -25
- package/skills/paper-cut/SKILL.md +0 -164
- package/skills/paper-cut/references/asset-spec.md +0 -47
- package/skills/paper-cut/references/audio-and-chatcut.md +0 -26
- package/skills/paper-cut/references/hyperframes-assembly.md +0 -47
- package/skills/paper-cut/references/image-led-production.md +0 -65
- package/skills/paper-cut/references/storyboard-schema.md +0 -48
- package/skills/paper-cut/references/workflow.md +0 -39
- package/skills/personal-ip-brand-intro/SKILL.md +0 -216
- package/skills/personal-ip-brand-intro/references/intake-schema.md +0 -79
- package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +0 -40
- package/skills/personal-ip-brand-intro/references/originality-rules.md +0 -42
- package/skills/personal-ip-brand-intro/references/qa-checklist.md +0 -60
- package/skills/personal-ip-brand-intro/references/rhythm-routing.md +0 -41
- package/skills/personal-ip-brand-intro/references/storyboard-contract.md +0 -42
- package/skills/pixel2motion/SKILL.md +0 -279
- package/skills/pixel2motion/references/html-delivery-template.md +0 -42
- package/skills/pixel2motion/references/motion-personality.md +0 -109
- package/skills/pixel2motion/references/reveal-patterns.md +0 -163
- package/skills/pixel2motion/references/ribbon-fitting.md +0 -90
- package/skills/pixel2motion/references/twelve-principles-for-logos.md +0 -116
- package/skills/premiere-batch-delivery/SKILL.md +0 -71
- package/skills/premiere-pro-mcp/SKILL.md +0 -161
- package/skills/promo-creator-skills/SKILL.md +0 -209
- package/skills/promo-creator-skills/references/mureka_prompt_guide.md +0 -251
- package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +0 -100
- package/skills/promo-video/SKILL.md +0 -408
- package/skills/qisi-video-remix/SKILL.md +0 -134
- package/skills/qisi-video-remix/examples/creative-plan.md +0 -133
- package/skills/qisi-video-remix/references/delivery-guide.md +0 -63
- package/skills/reel-video/SKILL.md +0 -237
- package/skills/remotion-ad-video/SKILL.md +0 -252
- package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +0 -60
- package/skills/remotion-ad-video/references/ad-brief-contract.md +0 -235
- package/skills/remotion-ad-video/references/ad-exemplars.md +0 -186
- package/skills/remotion-ad-video/references/ad-intake.md +0 -54
- package/skills/remotion-ad-video/references/asset-harvest.md +0 -56
- package/skills/remotion-ad-video/references/audio-caption-system.md +0 -202
- package/skills/remotion-ad-video/references/concept-contract.md +0 -128
- package/skills/remotion-ad-video/references/creative-direction.md +0 -146
- package/skills/remotion-ad-video/references/fast-test-workflow.md +0 -86
- package/skills/remotion-ad-video/references/game-ad-patterns.md +0 -75
- package/skills/remotion-ad-video/references/hyperframes-output.md +0 -90
- package/skills/remotion-ad-video/references/industry-angle-library.md +0 -71
- package/skills/remotion-ads/SKILL.md +0 -278
- package/skills/remotion-ads/references/ad-copywriting.md +0 -229
- package/skills/remotion-ads/references/animations.md +0 -693
- package/skills/remotion-ads/references/brand-config-template.md +0 -355
- package/skills/remotion-ads/references/captions.md +0 -529
- package/skills/remotion-ads/references/carousels.md +0 -580
- package/skills/remotion-ads/references/components.md +0 -897
- package/skills/remotion-ads/references/copy-frameworks.md +0 -144
- package/skills/remotion-ads/references/formats.md +0 -436
- package/skills/remotion-ads/references/gemini-tts.md +0 -473
- package/skills/remotion-ads/references/html-in-canvas.md +0 -555
- package/skills/remotion-ads/references/local-assets.md +0 -543
- package/skills/remotion-ads/references/music.md +0 -656
- package/skills/remotion-code-motion-explainer/SKILL.md +0 -178
- package/skills/remotion-code-motion-explainer/references/code-motion-design.md +0 -86
- package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +0 -93
- package/skills/remotion-code-motion-explainer/references/production-and-qc.md +0 -99
- package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +0 -48
- package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +0 -62
- package/skills/remotion-motion-graphics/SKILL.md +0 -169
- package/skills/remotion-motion-graphics/references/patterns.md +0 -355
- package/skills/remotion-motion-graphics/references/polish.md +0 -102
- package/skills/remotion-motion-graphics/references/scaffold.md +0 -144
- package/skills/remotion-motion-graphics/references/traps.md +0 -152
- package/skills/remotion-resemble-ai/SKILL.md +0 -879
- package/skills/remotion-resemble-ai/rules/resemble-captions.md +0 -350
- package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +0 -305
- package/skills/remotion-resemble-ai/rules/resemble-setup.md +0 -284
- package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +0 -225
- package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +0 -239
- package/skills/remotion-resemble-ai/rules/resemble-voices.md +0 -213
- package/skills/remotion-resemble-ai/rules/visual-animations.md +0 -567
- package/skills/riffkit/SKILL.md +0 -196
- package/skills/riffkit/examples/any-look-styles.md +0 -11
- package/skills/riffkit/examples/faceless-and-auto.md +0 -16
- package/skills/riffkit/examples/localize-spanish.md +0 -18
- package/skills/riffkit/examples/tiktok-shop-product.md +0 -22
- package/skills/riffkit/references/anchor.md +0 -62
- package/skills/riffkit/references/api.md +0 -806
- package/skills/riffkit/references/details.md +0 -153
- package/skills/riffkit/references/errors.md +0 -69
- package/skills/riffkit/references/intents.md +0 -29
- package/skills/saas-motion-video/SKILL.md +0 -71
- package/skills/script-to-video/SKILL.md +0 -2627
- package/skills/shorts/SKILL.md +0 -372
- package/skills/shorts/references/caption-styles.md +0 -105
- package/skills/shorts/references/platform-specs.md +0 -149
- package/skills/shorts/references/remotion-patterns.md +0 -180
- package/skills/shorts/references/scoring-rubric.md +0 -106
- package/skills/smart-video-editor/SKILL.md +0 -327
- package/skills/smart-video-editor/docs/FONTS.md +0 -57
- package/skills/story-telling/SKILL.md +0 -222
- package/skills/story-telling/rules/composition.md +0 -130
- package/skills/story-telling/rules/images.md +0 -119
- package/skills/story-telling/rules/models.md +0 -98
- package/skills/story-telling/rules/narration.md +0 -87
- package/skills/story-telling/rules/pitfalls.md +0 -140
- package/skills/story-telling/rules/story-formats.md +0 -108
- package/skills/story-telling/rules/story-json.md +0 -143
- package/skills/story-telling/rules/voices.md +0 -114
- package/skills/story-telling/rules/workflow.md +0 -105
- package/skills/story-to-handdrawn-video/SKILL.md +0 -216
- package/skills/story-to-handdrawn-video/references/asset-workflow.md +0 -24
- package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +0 -27
- package/skills/su-card-to-video/SKILL.md +0 -103
- package/skills/talking-head-video-pipeline/SKILL.md +0 -224
- package/skills/talking-head-video-pipeline/examples/prompts.md +0 -217
- package/skills/talking-head-video-pipeline/references/asr-adapters.md +0 -51
- package/skills/talking-head-video-pipeline/references/caption-workflow.md +0 -53
- package/skills/talking-head-video-pipeline/references/export-recipes.md +0 -78
- package/skills/talking-head-video-pipeline/references/layout-safety.md +0 -49
- package/skills/talking-head-video-pipeline/references/video-use-integration.md +0 -71
- package/skills/talking-head-video-pipeline/references/workflows/captions.md +0 -52
- package/skills/talking-head-video-pipeline/references/workflows/design.md +0 -77
- package/skills/talking-head-video-pipeline/references/workflows/doctor.md +0 -51
- package/skills/talking-head-video-pipeline/references/workflows/export.md +0 -50
- package/skills/talking-head-video-pipeline/references/workflows/init.md +0 -51
- package/skills/talking-head-video-pipeline/references/workflows/learn.md +0 -36
- package/skills/text-to-lottie/SKILL.md +0 -202
- package/skills/text-to-lottie/references/chapterization-transition-grammar.md +0 -132
- package/skills/text-to-lottie/references/design-taste.md +0 -292
- package/skills/text-to-lottie/references/lottie-spec-map.md +0 -82
- package/skills/text-to-lottie/references/motion-taste.md +0 -260
- package/skills/text-to-lottie/references/player-contract.md +0 -325
- package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +0 -65
- package/skills/text-to-lottie/references/recipe-data-stats.md +0 -104
- package/skills/text-to-lottie/references/recipe-diagram-technical.md +0 -106
- package/skills/text-to-lottie/references/recipe-loaders-icons.md +0 -70
- package/skills/text-to-lottie/references/recipe-logo.md +0 -72
- package/skills/text-to-lottie/references/recipe-lower-thirds.md +0 -62
- package/skills/text-to-lottie/references/recipe-product-promo.md +0 -99
- package/skills/ultrademo/SKILL.md +0 -212
- package/skills/video-assemble/SKILL.md +0 -101
- package/skills/video-assemble-zenstory-ai/SKILL.md +0 -153
- package/skills/video-assemble-zenstory-ai/references/audio-modes.md +0 -63
- package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +0 -77
- package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +0 -14
- package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +0 -103
- package/skills/video-assemble-zenstory-ai/references/packaging.md +0 -44
- package/skills/video-assemble-zenstory-ai/references/source-score.md +0 -146
- package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +0 -202
- package/skills/video-editing/SKILL.md +0 -688
- package/skills/video-explainer/SKILL.md +0 -163
- package/skills/video-explainer/references/brief-to-script.md +0 -56
- package/skills/video-explainer/references/errors-and-privacy.md +0 -18
- package/skills/video-explainer/references/motion-storyboard.md +0 -82
- package/skills/video-explainer/references/render-and-verify.md +0 -62
- package/skills/video-explainer/references/review-gate.md +0 -82
- package/skills/video-explainer/references/setup-and-doctor.md +0 -33
- package/skills/video-script-builder/SKILL.md +0 -329
- package/skills/video-script-builder/examples/quick-start-transcript.md +0 -19
- package/skills/video-script-builder/references/audio-workflow.md +0 -84
- package/skills/video-script-builder/references/caption-components.md +0 -70
- package/skills/video-script-builder/references/common-pitfalls.md +0 -80
- package/skills/video-script-builder/references/component-catalog.md +0 -197
- package/skills/video-script-builder/references/component-recipes.md +0 -165
- package/skills/video-script-builder/references/gsap-patterns.md +0 -112
- package/skills/video-script-builder/references/pacing-rules.md +0 -78
- package/skills/video-script-builder/references/quality-checklist.md +0 -98
- package/skills/video-script-builder/references/remotion-patterns.md +0 -211
- package/skills/video-script-builder/references/shader-transitions.md +0 -115
- package/skills/video-script-builder/references/taste-principles.md +0 -160
- package/skills/video-scrub/SKILL.md +0 -216
- package/skills/video-scrub/references/profiles.md +0 -89
- package/skills/video-scrub/references/residue-map.md +0 -204
- package/skills/video-short-maker/SKILL.md +0 -182
- package/skills/video-shot-analysis-feishu/SKILL.md +0 -173
- package/skills/video-shotcraft/SKILL.md +0 -267
- package/skills/video-shotcraft/docs/deepseek-harness.md +0 -69
- package/skills/video-shotcraft/references/aesthetic-rules.md +0 -177
- package/skills/video-shotcraft/references/final-review.md +0 -112
- package/skills/video-shotcraft/references/guided-free-creation.md +0 -199
- package/skills/video-shotcraft/references/jianying-export.md +0 -182
- package/skills/video-shotcraft/references/music-beat-sync.md +0 -219
- package/skills/video-shotcraft/references/pipeline.md +0 -390
- package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +0 -50
- package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +0 -65
- package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/video-shotcraft-vincentwei10/SKILL.md +0 -316
- package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +0 -187
- package/skills/video-shotcraft-vincentwei10/references/final-review.md +0 -116
- package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +0 -199
- package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +0 -183
- package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +0 -257
- package/skills/video-shotcraft-vincentwei10/references/pipeline.md +0 -401
- package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +0 -111
- package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +0 -50
- package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +0 -62
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +0 -41
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +0 -52
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +0 -39
- package/skills/video-structure-analyzer/SKILL.md +0 -148
- package/skills/video-structure-analyzer/examples/xhs-rook-time-spend/xhs-rook-time-spend_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -50
- package/skills/video-structure-analyzer/examples/xhs-smelly-cat/xhs-smelly-cat_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -19
- package/skills/video-toolkit/SKILL.md +0 -686
- package/skills/videocut/SKILL.md +0 -159
- package/skills/videodb/SKILL.md +0 -497
- package/skills/videodb/reference/api-reference.md +0 -741
- package/skills/videodb/reference/capture-reference.md +0 -399
- package/skills/videodb/reference/capture.md +0 -110
- package/skills/videodb/reference/editor-reference.md +0 -506
- package/skills/videodb/reference/editor.md +0 -389
- package/skills/videodb/reference/generative.md +0 -344
- package/skills/videodb/reference/indexing-reference.md +0 -481
- package/skills/videodb/reference/indexing.md +0 -537
- package/skills/videodb/reference/legacy/index-reference.md +0 -223
- package/skills/videodb/reference/legacy/index.md +0 -241
- package/skills/videodb/reference/legacy/search.md +0 -249
- package/skills/videodb/reference/migration.md +0 -113
- package/skills/vlog-auto-edit/SKILL.md +0 -982
- package/skills/vlog-auto-edit/examples/project_structure.md +0 -84
- package/skills/vox-animated-ad-mcp/SKILL.md +0 -419
- package/skills/vox-director/SKILL.md +0 -351
- package/skills/vox-director/references/beat-layer.md +0 -143
- package/skills/vox-director/references/host-mode.md +0 -120
- package/skills/vox-director/references/local-engine.md +0 -73
- package/skills/vox-director/references/models-and-gotchas.md +0 -91
- package/skills/vox-director/references/prompt-guide.md +0 -275
- package/skills/vox-director/references/voices.md +0 -59
- package/skills/xingchen-vox-collage/SKILL.md +0 -251
- package/skills/xingchen-vox-collage/references/asset-layer-contract.md +0 -98
- package/skills/xingchen-vox-collage/references/creative-exploration.md +0 -19
- package/skills/xingchen-vox-collage/references/learned-branches.md +0 -34
- package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +0 -77
- package/skills/xingchen-vox-collage/references/visual-language.md +0 -74
- package/skills/xingchen-vox-collage/references/visual-qa.md +0 -59
- package/skills/youtube/SKILL.md +0 -147
- package/skills/youtube/references/algorithm-guide.md +0 -59
- package/skills/youtube/references/analytics-benchmarks.md +0 -67
- package/skills/youtube/references/dataforseo-integration.md +0 -51
- package/skills/youtube/references/monetization-guide.md +0 -62
- package/skills/youtube/references/repurposing-guide.md +0 -54
- package/skills/youtube/references/retention-scripting-guide.md +0 -75
- package/skills/youtube/references/seo-playbook.md +0 -77
- package/skills/youtube/references/shorts-playbook.md +0 -64
- package/skills/youtube/references/thumbnail-ctr-guide.md +0 -73
- package/skills/youtube-shorts-factory/SKILL.md +0 -358
- package/skills/youtube-shorts-factory/resources/adaptation-guide.md +0 -133
- package/skills/youtube-shorts-factory/resources/storyboard-template.md +0 -271
- package/skills/youtube-shorts-factory/resources/workflow-steps.md +0 -139
- package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +0 -1
- package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +0 -2
- package/studio/ui/dist/assets/es-AqUfIkAy.js +0 -1
- package/studio/ui/dist/assets/index-C7moXjTY.css +0 -1
- package/studio/ui/dist/assets/index-DdU5QNpY.js +0 -1623
- package/studio/ui/dist/assets/ja-YwiCB4QQ.js +0 -1
- package/studio/ui/dist/assets/ko-CKtBPDze.js +0 -1
- package/studio/ui/dist/assets/zh-CN-DtNEwKWJ.js +0 -1
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
# Compose: from a brief to an original score
|
|
2
|
-
|
|
3
|
-
A style is a **vocabulary**. It gives you:
|
|
4
|
-
- sound: voices, levels and fx;
|
|
5
|
-
- groove families;
|
|
6
|
-
- a harmony language;
|
|
7
|
-
- melody rules;
|
|
8
|
-
- an arrangement grammar.
|
|
9
|
-
|
|
10
|
-
It never gives you notes. **You write every note**:
|
|
11
|
-
- the chords and their voicings;
|
|
12
|
-
- the bass lines;
|
|
13
|
-
- the motifs and lines;
|
|
14
|
-
- the form.
|
|
15
|
-
|
|
16
|
-
The engine refuses to fill gaps. Missing harmony, melody, grooves or form is an error that tells you
|
|
17
|
-
what to compose. The engine then performs, mixes and masters, deterministically, in code, and it
|
|
18
|
-
plays recordings of real instruments where you ask for one.
|
|
19
|
-
|
|
20
|
-
> **Never reuse shipped material.** The demos (`node tools/music.mjs list`) and our own film scores
|
|
21
|
-
> are listening references and the novelty corpus. They are never a film's score or a template. Don't
|
|
22
|
-
> copy them, transpose them or re-rhythm them. `node tools/music.mjs novelty` fails a score that
|
|
23
|
-
> sounds like any shipped piece, or that quotes one: a 6-note fragment (transposed or not), or an
|
|
24
|
-
> 8-note melody shape in any key, meter or rhythm.
|
|
25
|
-
>
|
|
26
|
-
> **Idioms are fine.** A ii-V-I, a plagal amen, a two-chord vamp, a I-bVII-IV are vocabulary. The
|
|
27
|
-
> style pages name them so you can use them. What is not fine is reusing the same music: a
|
|
28
|
-
> multi-bar progression together with its rhythm, groove, contour and form, or a quoted melody.
|
|
29
|
-
>
|
|
30
|
-
> Why this rule exists: a "new" example once changed the key, chords and pitches of the launch
|
|
31
|
-
> score but kept its rhythms, contour, drums and form. It was heard at once as the same song. The
|
|
32
|
-
> novelty fingerprint weighs exactly those things.
|
|
33
|
-
|
|
34
|
-
## The workflow
|
|
35
|
-
|
|
36
|
-
1. **Read the brief as numbers.** Write down:
|
|
37
|
-
- the use case (launch film, explainer, loop for a site, game, ad);
|
|
38
|
-
- the length in seconds, and whether it must loop;
|
|
39
|
-
- 3-5 picture beats with their times (the reveal, the claim, the cut to the end card);
|
|
40
|
-
- the words the person used for the feeling.
|
|
41
|
-
2. **Pick one style and one mood.** Styles:
|
|
42
|
-
```
|
|
43
|
-
node tools/music.mjs vocab
|
|
44
|
-
node tools/music.mjs vocab <style>
|
|
45
|
-
```
|
|
46
|
-
For the details, see [styles/vocabularies.md](styles/vocabularies.md). The mood is a row in
|
|
47
|
-
`tables.ts` (see the README's mood list). Then set the five **mood controls**, each 0..1, where
|
|
48
|
-
0.5 = the calibrated palette:
|
|
49
|
-
|
|
50
|
-
| Control | What it moves |
|
|
51
|
-
|---|---|
|
|
52
|
-
| `energy` | groove density, drum level, sidechain depth, dynamics |
|
|
53
|
-
| `warmth` | filters darker, tape drive and wow, a little more bass |
|
|
54
|
-
| `brightness` | filters and pluck brightness open, hats up |
|
|
55
|
-
| `tension` | pad detune wider, string attacks shorter, lead decays shorter |
|
|
56
|
-
| `space` | reverb sends, delay mix, pad release |
|
|
57
|
-
|
|
58
|
-
Controls change the sound only. Harmonic tension is yours to write (step 4). To choose the tempo,
|
|
59
|
-
mode, register and density that make a feeling read, see [theory/mood.md](theory/mood.md): tempo
|
|
60
|
-
and mode are the strongest cues, and several cues pointing the same way make the mood unmistakable.
|
|
61
|
-
3. **Sketch the arc and the motif before any chord.** Write three things down:
|
|
62
|
-
- **The tension curve.** One number 0..1 per section: it rises, dips just before the peak (a breath
|
|
63
|
-
or breakdown), peaks on the picture's key frame, then releases. This becomes each section's
|
|
64
|
-
`energy`, its layers and its harmony (leaning chords before home).
|
|
65
|
-
- **The climax.** The bar, the highest note of the piece, and the chord under it (home, full layers).
|
|
66
|
-
- **The motif.** Its rhythm (which beats it avoids, where the long note sits), its contour (one leap,
|
|
67
|
-
then steps back), and how it will develop across the form: stated, sequenced, fragmented in the
|
|
68
|
-
build, augmented at the climax, last word at the end ([theory/melody.md](theory/melody.md)).
|
|
69
|
-
4. **Compose the harmony.** Work inside the style's harmony language: its modes, chord qualities,
|
|
70
|
-
tendencies and voicing rule. Decide the key and mode from the mood, not from habit.
|
|
71
|
-
- Write a progression **for this brief**. Choose its length (2, 3, 4, 5, 6 or 8 bars) and its
|
|
72
|
-
harmonic rhythm (one chord per bar, two per bar, or one per two bars) on purpose.
|
|
73
|
-
- Voice each chord yourself. Move the voices by step and hold common tones. The bass owns the
|
|
74
|
-
root.
|
|
75
|
-
- Write each chord's bass line (one bar) in the style's bass idiom: held root, root and fifth,
|
|
76
|
-
walking, offbeat 8ths, a syncopated 808 figure. Make the rhythm YOURS.
|
|
77
|
-
- **Tension and release as a curve.** Stable (tonic), moving away (subdominant, relative,
|
|
78
|
-
borrowed), leaning (dominant, suspension, pedal), home. Put home on the picture's key beat. End
|
|
79
|
-
inner sections on half or deceptive cadences, and save the full close for the end
|
|
80
|
-
([theory/harmony.md](theory/harmony.md)).
|
|
81
|
-
- **Spread low, close high.** No close intervals below about C3 ([theory/sound.md](theory/sound.md)).
|
|
82
|
-
5. **Compose the motif(s).** A motif is 2-5 notes with its own rhythm. Invent the rhythm first:
|
|
83
|
-
- Which beats does it avoid?
|
|
84
|
-
- Does it start on an upbeat?
|
|
85
|
-
- Where is the long note?
|
|
86
|
-
|
|
87
|
-
Then the pitches: the contour, one leap, then steps back.
|
|
88
|
-
|
|
89
|
-
Develop the motif. Don't photocopy it:
|
|
90
|
-
- **repeat**, then **vary**: change the last interval, displace it by an eighth, extend it;
|
|
91
|
-
- **sequence**: the same shape a step or a third higher;
|
|
92
|
-
- **call and response**: the question ends off the tonic, the answer lands on it, or another
|
|
93
|
-
instrument answers;
|
|
94
|
-
- **fragment** it in a build, **augment** it (slower, longer notes) at the climax;
|
|
95
|
-
- put it in the bass for menace, or high and quiet at the close.
|
|
96
|
-
|
|
97
|
-
The phrase's high point goes in its second half. A phrase is 2 or 4 bars; a period is two phrases
|
|
98
|
-
(question, answer). The line must respect the style's range and density. Put chord tones on strong
|
|
99
|
-
beats, and put the feeling in appoggiaturas and suspensions that resolve by step.
|
|
100
|
-
6. **Choose or write the groove.** Pick a family from the style's list (`bounce`, `trap`,
|
|
101
|
-
`brushes`, `hand`, ...). Set `density` 0..1, `variation` 0..1 and `fill` (a fill on a section's
|
|
102
|
-
last bar). The seed varies every bar, so no two pieces share a loop. You can also write the drum
|
|
103
|
-
bars yourself as notation, one or more bars per lane: `kick`, `snare`, `ghost`, `hat`, `perc`.
|
|
104
|
-
Use a second groove for contrast (`half`, `build`). Keep the kick and backbeat stable, and syncopate on
|
|
105
|
-
top of them ([theory/rhythm.md](theory/rhythm.md)).
|
|
106
|
-
7. **Write the form.** Sections are `{ kind, bars, harmony, lead, counter, arp, comp, groove, bass,
|
|
107
|
-
chordVel, energy, repeat, stretch }`.
|
|
108
|
-
- The **kind** sets which layers may sound: intro, verse, groove, hook, build, half, breakdown,
|
|
109
|
-
drop, bridge, swell, breath, outro. See the arrangement grammar in vocabularies.md.
|
|
110
|
-
- Lines sound only where you write them.
|
|
111
|
-
- Land each section change on a picture beat. At `bpm`, a bar lasts `beatsPerBar x 60 / bpm`
|
|
112
|
-
seconds, and at 30 fps a beat is `1800 / bpm` frames.
|
|
113
|
-
- Mark one section `stretch: true`: a film fit repeats or drops it to reach the exact length and
|
|
114
|
-
still end on your outro.
|
|
115
|
-
- **Music that must hit exact picture moments** (a drop on the reveal at 16.0 s): compose it to
|
|
116
|
-
the length (bars x beats x 60 / bpm) and render without `--fit`, or use the beat-grid mode the
|
|
117
|
-
launch films use (`gridScore` in `launchTemplate.ts`: the score plays at the film's bpm exactly
|
|
118
|
-
and the cuts sit on its downbeats). `--fit` keeps your tempo when the form already ends within
|
|
119
|
-
max(0.5 s, one beat) of the length, and the tail takes up the difference. Past that it changes
|
|
120
|
-
the tempo, and every hit moves with it.
|
|
121
|
-
- Song and cue forms, builds, and orchestration slots: [theory/form.md](theory/form.md).
|
|
122
|
-
8. **Revise with craft, before you render.** `craft` reads the notes in milliseconds:
|
|
123
|
-
```
|
|
124
|
-
node tools/music.mjs craft <file>.ts#<export>
|
|
125
|
-
```
|
|
126
|
-
- It prints scores (0..1) for melody, harmony, rhythm, tension and mood, the tension curve per
|
|
127
|
-
section and per bar, and each section's cadence.
|
|
128
|
-
- Each `CRAFT` line names what it saw, where (bar and beat), and a fix.
|
|
129
|
-
- Loop: read the findings, revise the notes, run `craft` again. Stop when every remaining
|
|
130
|
-
finding is one you chose on purpose (an open ending for suspense, parallel fifths in rock). Say
|
|
131
|
-
which ones in your note to the person.
|
|
132
|
-
- Compare the printed tension curve with your sketch from step 3. If the peak is not where you
|
|
133
|
-
planned it, the arrangement is wrong, not the sketch. The line under the curve says what drives
|
|
134
|
-
each section (loudness, density, register, harmony): loudness and density weigh most, so a
|
|
135
|
-
home-chord tutti or a drop is the peak ([theory/harmony.md](theory/harmony.md), section 8).
|
|
136
|
-
|
|
137
|
-
| `craft` says | Usual fix |
|
|
138
|
-
|---|---|
|
|
139
|
-
| leaps keep going the same way | turn back by step after a leap |
|
|
140
|
-
| nothing comes back / exact copies | develop one motif: sequence, vary the last interval, fragment |
|
|
141
|
-
| phrases don't end on chord tones | land answers on 1, 3 or 5; keep one open question |
|
|
142
|
-
| the melody peaks early | move the highest note to the second half, on the key frame |
|
|
143
|
-
| parallel 5ths (common-practice idiom) | contrary motion; hold the common tone |
|
|
144
|
-
| close intervals below their low limit | spread the voicing: 1-5-3', or lift the upper note an octave |
|
|
145
|
-
| melody under the chords | voice the chords lower, or the melody higher |
|
|
146
|
-
| no syncopation (groove idiom) | anticipate a bass or melody note by an eighth |
|
|
147
|
-
| flat tension curve / no release | change layers, loudness (`energy`), register and harmony by section; release after the peak (a loop, ambient or calm piece may stay level: a note, not a warning) |
|
|
148
|
-
| mood cues (tempo, mode, register, density) | move the cue toward the mood, or declare the mood you wrote |
|
|
149
|
-
9. **Check, render, listen:**
|
|
150
|
-
```
|
|
151
|
-
node tools/music.mjs check <file>.ts#<export> [--fit --seconds 62] # EVERYTHING, must PASS (below)
|
|
152
|
-
node tools/music.mjs render <file>.ts#<export> out.mp3 --stems # the file, plus the same report
|
|
153
|
-
node tools/music.mjs novelty <a>.ts#x <b>.ts#y # several scores: vs shipped AND pairwise
|
|
154
|
-
node tools/music.mjs score <file>.ts#<export> # the text score, bar by bar
|
|
155
|
-
```
|
|
156
|
-
`check` runs everything:
|
|
157
|
-
- key/mode problems and composer warnings (for example, a line shorter than its section);
|
|
158
|
-
- the master: loudness vs target, true peak, and a note when the -1 dBTP ceiling stopped the
|
|
159
|
-
gain short;
|
|
160
|
-
- the **ghost, reverb and masking guards**;
|
|
161
|
-
- the stems;
|
|
162
|
-
- craft (the step-8 report, with brightness measured from the render; only an unplayable range fails);
|
|
163
|
-
- novelty.
|
|
164
|
-
|
|
165
|
-
It exits non-zero on any failure. `render` prints the same report (stems with `--stems`), except
|
|
166
|
-
novelty. Both synthesize each voice once, on all but one of your cores, and render the guards and
|
|
167
|
-
the stems in parallel with the mix: the audio is bit-identical to a serial render (`render
|
|
168
|
-
--verify` renders again serially and compares; `ANIDOODLE_THREADS=1` turns the pool off).
|
|
169
|
-
- **Stems:** fix any part flagged more than 3 dB off with `levels`. `levels` is a **dB offset** per
|
|
170
|
-
slot (+2 = two dB louder), added on top of the calibrated gain, the trims and the mood controls'
|
|
171
|
-
shifts, on the same scale as your own voice's `gainDb`. LUFS alone once hid a sub 7-10 dB too hot.
|
|
172
|
-
- **When the guards and the stems disagree, the guards win.** If masking fails (the melody isn't
|
|
173
|
-
heard), raise the lead. The stem meter lets the lead sit up to +3 dB above its tolerance for
|
|
174
|
-
this. You can also lower or thin what sits in the melody's register. Mood controls shift the
|
|
175
|
-
stem targets with the sound (for example, brightness lifts the hats and their target); the
|
|
176
|
-
printed targets already include that.
|
|
177
|
-
- **Master short of target:** a gentle master (-16 LUFS) never compresses. If one peak blocks the
|
|
178
|
-
gain, the whole piece stays quieter, and `check` says by how much, where the peak is (bar, beat
|
|
179
|
-
and seconds) and which parts pile up there, loudest first, with the notes they are playing.
|
|
180
|
-
Fix it in the notes at that spot: stagger the bass under that downbeat, roll the big chord, don't
|
|
181
|
-
double the climax note.
|
|
182
|
-
- **Novelty:** if it fails, change what the numbers point at. Changing the key fixes nothing.
|
|
183
|
-
Each feature is a bag of n-grams compared by cosine (0 = nothing shared, 1 = the same); the
|
|
184
|
-
score is their weighted mean, and it fails above 0.5:
|
|
185
|
-
|
|
186
|
-
| Feature | Weight | What it counts |
|
|
187
|
-
|---|---|---|
|
|
188
|
-
| `melodyRhythm` | 0.20 | the lead's onset positions in each bar, and its inter-onset-interval trigrams |
|
|
189
|
-
| `melodyContour` | 0.15 | the lead's up / down / same 4-grams |
|
|
190
|
-
| `melodyIntervals` | 0.10 | the lead's interval trigrams, in semitones (transposition-free) |
|
|
191
|
-
| `lineRhythm` | 0.15 | the counter line's rhythm plus the bass's rhythm (bar positions and inter-onset trigrams of each) |
|
|
192
|
-
| `drums` | 0.15 | each drum part's hit positions per bar |
|
|
193
|
-
| `chords` | 0.10 | chord-function trigrams: each root against the key, with its quality |
|
|
194
|
-
| `qualities` | 0.07 | chord-quality trigrams (maj7, min, dom, sus ...) |
|
|
195
|
-
| `form` | 0.08 | the order of section kinds, in pairs |
|
|
196
|
-
|
|
197
|
-
The lead is the top note of each onset of the melody part. Bar positions depend on the meter;
|
|
198
|
-
the inter-onset trigrams, the contour, the intervals and both quote gates do not. Two gates fail
|
|
199
|
-
outright whatever the score: a **6-note fragment** of a shipped melody (its intervals and
|
|
200
|
-
durations, in any key), and an **8-note melody shape** (its intervals alone, in any key, meter
|
|
201
|
-
or rhythm: a quote re-barred into 5/4 or stretched is still the tune). Only distinctive shapes
|
|
202
|
-
count (three or more different intervals, a leap of a third or more, at most three repeated
|
|
203
|
-
notes), so a scale run is never a quote.
|
|
204
|
-
- **Listen:** the person hears it before it is used. Meters prove you aren't obviously wrong.
|
|
205
|
-
Only an ear says right. For a **loop**, deliver a `.wav`: mp3 adds encoder padding, so it clicks
|
|
206
|
-
or gaps at the loop point.
|
|
207
|
-
|
|
208
|
-
## Recorded instruments
|
|
209
|
-
|
|
210
|
-
Eight acoustic parts play recordings of the real thing when the sound pack is installed: `piano`
|
|
211
|
-
(and `piano` with `variant: "upright"`), `harp`, `marimba`, `vibes`, `glockenspiel`, `bell` with
|
|
212
|
-
`variant: "tubular"`, and `timpani`. Strings, guitar, bass, brass, woodwinds, choir, celesta, music
|
|
213
|
-
box, the electric pianos and the acoustic drum kit stay modeled either way, and every score plays
|
|
214
|
-
without the pack.
|
|
215
|
-
|
|
216
|
-
Four things decide what you write:
|
|
217
|
-
|
|
218
|
-
- **Stay inside the range, or the render throws.** The grand reaches A0; the timpani stops at B3;
|
|
219
|
-
the vibraphone starts at F3 and the glockenspiel at G5. The full table is in
|
|
220
|
-
[README.md](README.md#recorded-instruments-the-optional-sound-pack).
|
|
221
|
-
- **A recorded note decays the way that instrument decays.** A low grand note rings for tens of
|
|
222
|
-
seconds. Do not write a dense texture under it and expect the tail to get out of the way.
|
|
223
|
-
- **The piano has a real pedal.** `sus` zones sound while the dampers are lifted, so the pedal
|
|
224
|
-
changes `perform.ts` already writes just after each harmony change are audible, and a chord left
|
|
225
|
-
ringing under the next one is what a real player does. `opts: { pedal: false }` holds the pedal.
|
|
226
|
-
- **A real marimba's low notes are rich.** D2 to C4 carries as much as its top. Keep a bass line out
|
|
227
|
-
of the melody's register instead of reaching down for a note that will not sit under a tune.
|
|
228
|
-
|
|
229
|
-
Two options go in a part's `opts`:
|
|
230
|
-
|
|
231
|
-
| Option | What it does |
|
|
232
|
-
|---|---|
|
|
233
|
-
| `variant: "upright"` / `variant: "tubular"` | picks the second recording of that instrument |
|
|
234
|
-
| `sampled: false` | keeps the modeled voice for that part, whatever is installed |
|
|
235
|
-
|
|
236
|
-
`node tools/music.mjs check` prints the split, so read it before you believe the instrument table:
|
|
237
|
-
|
|
238
|
-
```
|
|
239
|
-
voices recordings: lead (piano), accomp (piano.upright); modeled: bass (bass), drums (kick)
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
A part you expected to be recorded and find modeled is either out of range or opted out. Both are
|
|
243
|
-
yours to fix; neither is a silent fallback.
|
|
244
|
-
|
|
245
|
-
## The material format
|
|
246
|
-
|
|
247
|
-
Write the score in the film's own file, next to the film module: `src/canvas-core/<film>Score.ts`
|
|
248
|
-
in a scaffolded project (`engine/src/canvas-core/<film>Score.ts` inside the skill), and export it:
|
|
249
|
-
|
|
250
|
-
```ts
|
|
251
|
-
import type { Material } from "./music";
|
|
252
|
-
export const score = (): Material => ({
|
|
253
|
-
style: "<style id>", title: "<this film's score>", seed: <any integer>, mood: "<mood id>",
|
|
254
|
-
bpm: <tempo in the style's range>, key: "<tonic>", mode: "<mode id>", meter: "<meter>",
|
|
255
|
-
moodControls: { energy: <0..1>, warmth: <0..1>, brightness: <0..1>, tension: <0..1>, space: <0..1> },
|
|
256
|
-
swing: <0.5 straight .. 0.67 hard>, dyn: [<start 0..1>, <end 0..1>], tail: <seconds of ring-out>,
|
|
257
|
-
chords: { "<name>": { voicing: "[<note> <note> <note>]", bass: "<one bar of notation>" }, /* ... */ },
|
|
258
|
-
motifs: { "<motif>": "<one or more bars of notation>", /* your variations are motifs too */ },
|
|
259
|
-
grooves: { main: { family: "<family>", density: <0..1>, variation: <0..1> }, half: { family: "<family>" } },
|
|
260
|
-
sections: [
|
|
261
|
-
{ kind: "intro", bars: <n>, harmony: ["<chord>", /* per bar, cycled */], chordVel: <0..1> },
|
|
262
|
-
{ kind: "hook", bars: <n>, harmony: [/* ... */], lead: ["<motif>", "<motif variant>", "r:<beats>"], stretch: true, energy: <0..1> },
|
|
263
|
-
{ kind: "groove", bars: <n>, harmony: [/* ... */], lead: ["<2-bar motif>"], loopLines: true },
|
|
264
|
-
{ kind: "verse", bars: <n>, harmony: ["<chord>", "~"], comp: ["x:1 r:.5 x:.5 r:2"] }, // held over the bar line; a comped rhythm
|
|
265
|
-
{ kind: "bridge", bars: <n>, key: "<new tonic>", mode: "<mode>", harmony: [/* in the new key */], lead: [/* ... */] },
|
|
266
|
-
/* ... */
|
|
267
|
-
{ kind: "outro", bars: <n>, harmony: ["<home chord>"], lead: ["<the motif's last word>"] },
|
|
268
|
-
],
|
|
269
|
-
});
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
A film plays it with `filmScore(score(), fps, frames)` from `canvas-core/score.ts`. That fits your
|
|
273
|
-
form to the exact length. `score.ts` is an empty skeleton to copy.
|
|
274
|
-
|
|
275
|
-
- **Voices:** `voices: { lead: "<alternate name>" }` swaps a slot for one of the style's
|
|
276
|
-
alternates. Or give your own `{ inst, role, opts }` (instruments: README table), with the slot's
|
|
277
|
-
role: `chords` and `arp` are `"accomp"`, `lead` is `"melody"`, `counter` is `"color"`, `bass` is
|
|
278
|
-
`"bass"`, drum lanes are `"drum"`. **Levels are one scale.** The palette voice, an alternate and
|
|
279
|
-
your own voice all sit at the slot's stem target (the column in
|
|
280
|
-
[styles/vocabularies.md](styles/vocabularies.md), fix included): alternates carry a measured trim,
|
|
281
|
-
and your own voice is placed from its instrument's measured level in the register your notes
|
|
282
|
-
play in. So leave your voice's `gainDb` out (0 = at the target) and set it, like `levels`, only
|
|
283
|
-
as an offset: `gainDb: 2` is two dB over. Then read `check`'s stems and adjust by the dB it
|
|
284
|
-
prints. Options (`attack`, `bright`, `drive`) move the level a little; a piano far up its range
|
|
285
|
-
is quiet by nature. `variant` and `sampled` are the two options that change which sound you get,
|
|
286
|
-
and they are in [Recorded instruments](#recorded-instruments) above.
|
|
287
|
-
- **Loops:** `loop: true`, and the form length is the loop. `render` makes it seamless.
|
|
288
|
-
- **Split bars:** `harmony: ["<chord> <chord>"]` splits a bar where the meter divides, not at its
|
|
289
|
-
arithmetic middle. Give that section a `bass` override for it.
|
|
290
|
-
|
|
291
|
-
| Meter | 2 chords | 3 chords |
|
|
292
|
-
|---|---|---|
|
|
293
|
-
| 2/4 | 1 + 1 | even |
|
|
294
|
-
| 3/4 | 2 + 1 (the change on beat 3) | 1 + 1 + 1 |
|
|
295
|
-
| 4/4 | 2 + 2 | 2 + 1 + 1 |
|
|
296
|
-
| 5/4 | 3 + 2 | 2 + 1 + 2 |
|
|
297
|
-
| 6/8 | 1 + 1 (3 + 3 eighths) | even |
|
|
298
|
-
| 7/8 | 2 + 1.5 (4 + 3 eighths) | 1 + 1 + 1.5 (2 + 2 + 3) |
|
|
299
|
-
| 9/8 | 2 + 1 | 1 + 1 + 1 |
|
|
300
|
-
| 12/8 | 2 + 2 | 2 + 1 + 1 |
|
|
301
|
-
|
|
302
|
-
Beats are the meter's beats (in 6/8, 9/8 and 12/8 a dotted quarter). To feel the bar another
|
|
303
|
-
way, set the piece's `grouping` (for example `grouping: [2, 3]` for a 5/4 felt 2 + 3): a split
|
|
304
|
-
into as many chords as it has groups follows it. Or give each chord its beats: `"Dm9:1 G13:2"`.
|
|
305
|
-
- **Held chords:** `"~"` holds the chord before it over the bar line, with no restrike, so a pad
|
|
306
|
-
never dips at the bar line: `harmony: ["Cmaj9", "~", "Am9", "~"]` is two chords of two bars each.
|
|
307
|
-
`"~ G13"` holds into the bar, then changes. The bass keeps its own line under a held chord (the
|
|
308
|
-
chord's bass line plays again). To tie the bass too, write that bar of the section's `bass` as `"~"`.
|
|
309
|
-
- **Comping:** a section's `comp` gives the chord part a rhythm, one bar per item, cycled over the
|
|
310
|
-
section. `x:DUR` strikes the chord sounding at that point, `r:DUR` rests, `x:DUR@0.7` accents, and
|
|
311
|
-
a bar may start with `~:DUR` to hold the last strike over the bar line (a pushed chord):
|
|
312
|
-
`comp: ["x:1 r:.5 x:.5 r:1 x:1", "r:3.5 x:.5", "~:1 r:1 x:2"]`. A comp bar must add up to the bar.
|
|
313
|
-
Without `comp`, each chord sounds for its whole span.
|
|
314
|
-
- **A silent chord:** `voicing: "r"` makes the chord part rest while the chord still names the
|
|
315
|
-
harmony: the key check, `craft`, novelty and the bass all read it. Use it for a bar that the bass
|
|
316
|
-
or an arp states alone, or a stop-time break.
|
|
317
|
-
- **Lines play once.** `lead`, `counter` and `arp` start at the section's first bar and play ONCE,
|
|
318
|
-
even though `harmony` cycles. A shorter line leaves rests, and `check` warns. Set
|
|
319
|
-
`loopLines: true` to repeat the line until the section is full. `repeat: n` replays the whole
|
|
320
|
-
section, lines included.
|
|
321
|
-
- **Section `energy`** (0..1, 0.5 = as written) sets the section's dynamics for every part,
|
|
322
|
-
hand-written lines included. It scales velocity from 0.55x to 1.45x, roughly -5 to +3 dB. It
|
|
323
|
-
also sets the density of generated grooves.
|
|
324
|
-
- **`dyn`** is the whole piece's dynamic level `[start, end]`, ramped (default `[0.62, 0.66]`).
|
|
325
|
-
`swing` and `tail` default to the style's lower swing bound and 3.2 s.
|
|
326
|
-
- **Modulation:** give a section its own `key` and `mode`. The key check then reads each key region
|
|
327
|
-
on its own. A lift of a step for the last chorus is fine when that section declares the new key.
|
|
328
|
-
- **The key check weighs the tonic.** It accepts your declared tonic and mode when the mode's scale
|
|
329
|
-
explains the notes as well as any other reading, and the tonic is heard (at least 8 % of note
|
|
330
|
-
time). A lydian or dorian passage whose notes lean on another degree gets read as that degree's
|
|
331
|
-
major. Put the bass on the tonic at section starts and cadences, and state the mode's colour note.
|
|
332
|
-
- **Written drums:**
|
|
333
|
-
- A `LiteralGroove` gives notation bars per lane (`kick`, `snare`, `ghost`, `hat`, `perc`).
|
|
334
|
-
- The bars cycle from each section's first bar; `cycle: "piece"` cycles on the piece's bar count
|
|
335
|
-
instead.
|
|
336
|
-
- Unpitched drums ignore the written pitch: write `C4`.
|
|
337
|
-
- A timpani in a drum lane (orchestral, choral, suspense, world) is tuned to the tonic of `key`,
|
|
338
|
-
generated grooves included (`epic`).
|
|
339
|
-
|
|
340
|
-
**Notation** (bar-checked; a bar that doesn't add up throws, the last bar too: a line that ends
|
|
341
|
-
mid-bar writes its rest, `C2:3 r:1`, never a silent gap):
|
|
342
|
-
- A token is `NOTE:DUR[@VEL]` (a pitch name with an octave, e.g. `F#4`), `[NOTE NOTE ...]:DUR` (a
|
|
343
|
-
chord) or `r:DUR` (a rest).
|
|
344
|
-
- Bars are separated by `|`, or given as array items.
|
|
345
|
-
- Durations are in beats. In 6/8, 9/8 and 12/8 a beat is a dotted quarter, so an eighth is `1/3`.
|
|
346
|
-
In 7/8 a beat is a quarter, so an eighth is `.5` and a bar is 3.5.
|
|
347
|
-
- `@VEL` scales the line's velocity (0..1).
|
|
348
|
-
- In a hand-written piece, a one-bar sting on any beat says so: `line(t, "G6:1", { ..., hit: true })`.
|
|
349
|
-
|
|
350
|
-
## What makes it beautiful (check before you call it done)
|
|
351
|
-
|
|
352
|
-
- [ ] **One idea, developed.** One motif, heard 6-12 times, never the same way twice. A second idea
|
|
353
|
-
answers or contrasts it.
|
|
354
|
-
- [ ] **A line you could sing.** Mostly steps, leaps that turn back, arches, and one high point per
|
|
355
|
-
phrase group in its second half.
|
|
356
|
-
- [ ] **Questions and answers.** Phrases in 2s and 4s. Questions end open, answers end home.
|
|
357
|
-
- [ ] **Feeling in the dissonance.** Chord tones on the beats. An appoggiatura or suspension where
|
|
358
|
-
the picture needs an ache, resolved down by step.
|
|
359
|
-
- [ ] **Harmony that moves smoothly.** Common tones held, voices by step, the bass contrary to the
|
|
360
|
-
tune, the low end spread.
|
|
361
|
-
- [ ] **A groove that breathes.** An anchored kick and backbeat, syncopation on top, rests in the
|
|
362
|
-
melody, a fill only at section ends.
|
|
363
|
-
- [ ] **An arc.** Contrast by section in density, register, harmonic rhythm and groove. A dip
|
|
364
|
-
before the peak, the peak on the key frame, then release.
|
|
365
|
-
- [ ] **Cadences on picture beats.** The claim, the reveal and the logo each get a structural
|
|
366
|
-
downbeat.
|
|
367
|
-
- [ ] **An ending on a phrase:** a held home chord with the motif's last word, a button, or (suspense
|
|
368
|
-
only) an unresolved hold.
|
|
369
|
-
- [ ] **Mood cues aligned.** Tempo, mode, register, density, articulation and brightness all point
|
|
370
|
-
at the words. If a listener names a different emotion, the choice was wrong, not the listener.
|
|
371
|
-
- [ ] **Breadth.** Across projects, vary the meter, harmonic rhythm, groove family and form length.
|
|
372
|
-
Two scores for two products should not be siblings.
|
|
373
|
-
|
|
374
|
-
## What checks what
|
|
375
|
-
|
|
376
|
-
| Check | Runs in | Fails when |
|
|
377
|
-
|---|---|---|
|
|
378
|
-
| key/mode (`planProblems`) | `check`, `render` | a key region's notes don't support its declared tonic and mode |
|
|
379
|
-
| composer warnings | `check`, `render` | (warns only) a line is shorter than its section, ... |
|
|
380
|
-
| master | `check`, `render` | (notes only) the peak ceiling stopped the gain short of the target |
|
|
381
|
-
| ghost guard | `check`, `render` | 4-bar windows are formless (few onsets, sustained, wet, no cadence) |
|
|
382
|
-
| reverb guard | `check`, `render` | the late tail sits within 10 dB of the dry sound |
|
|
383
|
-
| masking guard | `check`, `render` | the melody doesn't clear the other parts in 500 Hz-4 kHz |
|
|
384
|
-
| stems | `check`, `render --stems`, `stems` | a part is more than 3 dB off target (lead: up to +6 dB allowed); advisory for uncalibrated styles |
|
|
385
|
-
| craft | `craft`, `check` | (advisory scores and fixes) melody, harmony, rhythm, tension, mood fit; fails only on a note an acoustic instrument cannot play |
|
|
386
|
-
| novelty | `check`, `novelty` | similarity above 0.5 to a shipped piece (or to each other), a reused 6-note melody fragment, or an 8-note melody shape in any key, meter or rhythm |
|
|
387
|
-
|
|
388
|
-
`tools/music-unit.mjs` keeps the engine honest: determinism, no defaults, every vocabulary renders.
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
# Sound design: the effects kit, placed by frame, heard over the score
|
|
2
|
-
|
|
3
|
-
Every anidoodle sound effect is **built in code, from nothing**: no samples, no recordings, ever.
|
|
4
|
-
(The music's acoustic instruments can play recordings from the optional sound pack; effects never
|
|
5
|
-
do.) Every effect is deterministic: the same cue and seed give identical samples.
|
|
6
|
-
|
|
7
|
-
Code: `engine/src/canvas-core/music/sfxKit.ts` (the kit), `sfxMix.ts` (placement), `sfxCore.ts`
|
|
8
|
-
(building blocks). Tool: `engine/tools/sfx.mjs`.
|
|
9
|
-
|
|
10
|
-
## What makes an effect sound designed, not generated
|
|
11
|
-
|
|
12
|
-
- **Layers.** Every sound has a transient (the contact: a 1-4 ms filtered noise burst), a body
|
|
13
|
-
(modes of the struck object, a pitch-dropping sine, a friction band) and a tail (a small room from
|
|
14
|
-
`dsp.room`). A single noise burst is not an effect. It is a click.
|
|
15
|
-
- **Physics, cheaply.** Plastic, bricks and bells are *modal*: a few damped sines at inharmonic
|
|
16
|
-
ratios. Drops and bubbles ring with a *rising* pitch. A whoosh is a *pass-by*: distance sets
|
|
17
|
-
level and air, radial speed sets the doppler glide (bright coming, darker going), angle sets pan.
|
|
18
|
-
A pen's friction band brightens with stroke speed.
|
|
19
|
-
- **Stereo that moves.** Moving sounds travel across the field (`dir: 1` = left to right).
|
|
20
|
-
Hits sit a little off-centre with a Haas offset. Tails are decorrelated.
|
|
21
|
-
- **No two hits alike.** Pitch, decay, pan, mode tuning and level (±1 dB) vary per seed. Twenty
|
|
22
|
-
key ticks are twenty different ticks. `mixSfx` gives each cue its own seed from (kind, frame), so
|
|
23
|
-
inserting a cue never changes the others.
|
|
24
|
-
- **Tuned where it is tonal.** chime, riser, `press:confirm` and `impact:bloom` follow the film's
|
|
25
|
-
key. A sparkle in the wrong key sounds like a mistake, so there is **no default key or tempo**.
|
|
26
|
-
Pass `plan.score: { piece, tempo? }` (key, bpm and bar come from the film's piece) or set
|
|
27
|
-
`plan.key` / `plan.bpm`. A tuned kind with no key, or a riser with no bpm, throws.
|
|
28
|
-
|
|
29
|
-
## The kit
|
|
30
|
-
|
|
31
|
-
`node tools/sfx.mjs list` prints this live. The level is the target loudness over the sound's own
|
|
32
|
-
speaking window (K-weighted, see below). Duck is how far the score dips under it.
|
|
33
|
-
|
|
34
|
-
| kind | variants (first = default) | use it for | level | duck |
|
|
35
|
-
|---|---|---|---|---|
|
|
36
|
-
| tick | key, soft, ui, space | typing, one per character; a UI tick | -20.5 | 0 |
|
|
37
|
-
| press | thock, soft, confirm | the Generate button; `confirm` adds a tuned answer | -13 | 2 |
|
|
38
|
-
| pop | pop, cork, tiny | something appears; a card lands; a badge | -16 | 1 |
|
|
39
|
-
| ink | plip, double, bloom | an ink drop; `bloom` opens an ink-bloom frame | -15 | 2 |
|
|
40
|
-
| scratch | nib, pencil, marker | lettering being written (`lengthS` = writing time) | -18.5 | 1.5 |
|
|
41
|
-
| paper | slide, flip, rustle | a sheet lands (hit = landing), a page turn (hit = snap) | -18 | 1.5 |
|
|
42
|
-
| whoosh | soft, air, fast, deep | something passes the camera (hit = the pass-by) | -16 | 2 |
|
|
43
|
-
| swish | in, out, soft | a UI panel or card slides | -17 | 1 |
|
|
44
|
-
| riser | soft, air, tonal | THE build into the reveal (hit = its end) | -15 | 2 |
|
|
45
|
-
| impact | boom, soft, bloom | THE reveal; `bloom` breathes in first and shimmers in key | -9 | 6 |
|
|
46
|
-
| chime | sparkle, bell, glint | magic / success, tuned to the key | -17 | 1.5 |
|
|
47
|
-
| bubble | bubbles, splash, gloop | water life, the koi | -16.5 | 1.5 |
|
|
48
|
-
| brick | clack, snap, tumble | toy bricks: tap, press onto studs, drop on a pile | -15 | 1.5 |
|
|
49
|
-
| thread | pull, pierce, stitch | embroidery: thread through cloth (hit = the tug), the needle | -17.5 | 1.5 |
|
|
50
|
-
|
|
51
|
-
## Placing effects in a film
|
|
52
|
-
|
|
53
|
-
Cues are addressed by **film frame**, a whole number (a fractional frame throws; to land a hit
|
|
54
|
-
between frames, `snap` it to the beat). The frame is where the sound's sync point lands: the hit;
|
|
55
|
-
the pass-by of a whoosh; the landing of a paper slide; the END of a riser. Pre-roll (a whoosh's
|
|
56
|
-
approach, a riser's build) is rendered before the frame. If it would start before frame 0,
|
|
57
|
-
the plan throws and names the earliest legal frame.
|
|
58
|
-
|
|
59
|
-
```ts
|
|
60
|
-
import { filmSfx, filmAudio, composePiece, type SfxPlan } from "./music";
|
|
61
|
-
import { myScore } from "./myScore"; // the Material YOU composed for this film (compose.md)
|
|
62
|
-
const score = composePiece(myScore);
|
|
63
|
-
const plan: SfxPlan = {
|
|
64
|
-
fps: 30, frames: 450, score: { piece: score }, beatZeroS: 0, seed: 7, // key, bpm, bar from the score
|
|
65
|
-
cues: [
|
|
66
|
-
{ frame: 12, kind: "tick" }, // ...one per typed character
|
|
67
|
-
{ frame: 157, kind: "press", variant: "thock", snap: "beat", label: "Generate" },
|
|
68
|
-
{ frame: 182, kind: "scratch", variant: "nib", lengthS: 1.4 },
|
|
69
|
-
{ frame: 232, kind: "whoosh", variant: "soft", dir: 1 },
|
|
70
|
-
{ frame: 400, kind: "riser", beats: 4 }, // ends ON bar 5
|
|
71
|
-
{ frame: 400, kind: "impact", variant: "bloom", snap: "bar" },
|
|
72
|
-
],
|
|
73
|
-
};
|
|
74
|
-
export const audio = filmSfx(filmAudio(score, 15), plan); // Film.audio: score + effects
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
- `snap: "bar" | "beat" | "8th" | "16th"` moves the sync point to the tempo grid (`bpm`,
|
|
78
|
-
`beatZeroS`, `beatsPerBar`). Snap musical moments: the reveal on the bar, a sparkle on the beat.
|
|
79
|
-
Keep UI sounds (typing, clicks) on the picture.
|
|
80
|
-
- `beats` sizes a riser in tempo. Its chord pulses in 8ths, then 16ths, then 32nds, and it stops
|
|
81
|
-
on the downbeat.
|
|
82
|
-
- Per cue: `variant`, `seed`, `pitch` (semitones), `gainDb`, `dir`, `lengthS`, `duckDb`, `minDb`,
|
|
83
|
-
`label`.
|
|
84
|
-
- `mixSfx(music, plan)` returns the mix, the stems (`sfx`, ducked `music`), the duck curve, every
|
|
85
|
-
placed cue and the audibility table. `filmSfx` wraps it for `Film.audio` and **throws on a
|
|
86
|
-
buried cue**.
|
|
87
|
-
- One master at the very end: a look-ahead true-peak ceiling at -1 dBTP (`ceilingDb`). The score
|
|
88
|
-
arrives already mastered, so nothing is renormalised.
|
|
89
|
-
|
|
90
|
-
## Sound across a cut (J-cut and L-cut)
|
|
91
|
-
|
|
92
|
-
The cheapest smooth seam works on the ear: the sound crosses the cut ahead of the picture or
|
|
93
|
-
behind it. In a **J-cut** the next scene is heard before it is seen, 0.3 to 0.8 s early (the
|
|
94
|
-
pond's bubbles under the last shot of the room, the nib scratching before the page appears). In an
|
|
95
|
-
**L-cut** the last scene is still heard 0.5 to 1.5 s into the next (a page still rustling, a pen
|
|
96
|
-
still scratching). The ear makes the join first, so the picture cut lands as an answer. It uses
|
|
97
|
-
the same cue table: cue the incoming scene's sound at `CUT - lead` (`{ frame: CUT - 15, kind:
|
|
98
|
-
"bubble" }`). To carry the outgoing sound past the cut, give it a longer `lengthS` where the kind
|
|
99
|
-
takes one (scratch, paper, whoosh, swish, riser, thread); for the others, place a few quieter cues
|
|
100
|
-
of that scene's sound after the cut. The score can do it too, entering its next section a beat
|
|
101
|
-
before the cut (a pre-lap), or letting the old chord ring over the first beat of the new scene.
|
|
102
|
-
This never moves a hit: a contact's sound stays on its own frame (Land on the frame, below). What
|
|
103
|
-
crosses the cut is a scene's ongoing sound, never a hit's. Deck card `seam-sound-leads`.
|
|
104
|
-
|
|
105
|
-
## Levels and the audibility rule
|
|
106
|
-
|
|
107
|
-
A cue nobody hears is a bug, not a subtle choice. A test that only checks a cue exists proves
|
|
108
|
-
nothing: test that it is heard over the music at its own moment.
|
|
109
|
-
|
|
110
|
-
- Every cue is measured against the ducked score **at its own moment**. The yardstick is
|
|
111
|
-
K-weighted (BS.1770) loudness over the cue's *speaking window*: the 10 ms frames within 10 dB of
|
|
112
|
-
its loudest, 15-500 ms long. The score is measured over the same window, at least 100 ms.
|
|
113
|
-
- **margin = cue - score.** The mix fails if any cue is more than `minDb` under (default **-6
|
|
114
|
-
dB**). Short transients cut through at -3 to -6. Sustained textures (scratch, thread) want -3
|
|
115
|
-
or better.
|
|
116
|
-
- To fix a failing cue, raise its `gainDb` first. Raise its `duckDb` only for the moments that
|
|
117
|
-
matter.
|
|
118
|
-
- Ducking: the score dips before the cue's window (40 ms raised-cosine attack), holds, and comes
|
|
119
|
-
back over 280 ms (1.2 s after an impact). Typing does not duck. The reveal ducks 6 dB.
|
|
120
|
-
- Measured on our own launch film's score (`launchLofi3`: a demo, never a score for your film;
|
|
121
|
-
first 15 s, 33 cues): -15.5 LUFS, -1.9 dBTP, every cue audible. Margins: typing +3 to +8 dB over the intro pad; groove cues -3.5 to +5 dB; the reveal +10.7 dB.
|
|
122
|
-
|
|
123
|
-
## Taste: when to use effects
|
|
124
|
-
|
|
125
|
-
- **Effects only on real direction changes.** A press, an appearance, a scene move, a landing.
|
|
126
|
-
Never under every motion, and never a constant bed of whooshes. Silence around a cue is what
|
|
127
|
-
makes it land.
|
|
128
|
-
- **One signature riser, one impact per film.** They mark the big reveal. A second riser halves
|
|
129
|
-
both.
|
|
130
|
-
- Transitions are gentle moves by default, so their sound is gentle: `whoosh:soft` and
|
|
131
|
-
`swish:soft`. A matched hard cut takes a short hit on the beat or nothing. Never a sharp swoosh.
|
|
132
|
-
- Typing is one `tick` per character at the typing cadence, with `space` on spaces. Its level sits
|
|
133
|
-
above the intro and under the groove.
|
|
134
|
-
- Put at most two cues in any 100 ms. A thock on the kick merges into the kick, which is lovely
|
|
135
|
-
when it starts the groove and mud anywhere else.
|
|
136
|
-
- Hear it in context before it ships. Render the kit page (`node tools/sfx.mjs kit <dir>`) and a
|
|
137
|
-
demo over the real score, and check the audibility table.
|
|
138
|
-
- **Restraint is the design.** A cue earns its place by marking something the viewer should feel: a
|
|
139
|
-
press, an arrival, a landing, the reveal. Picture changes that are only edits stay silent. Count
|
|
140
|
-
your cues against the film's length; if you cannot say what each one marks, cut it.
|
|
141
|
-
- **Land on the frame.** A hit belongs on the frame where the thing happens; within a frame either
|
|
142
|
-
side reads as one event. A soft lead into the hit reads as anticipation. A hit's sound after its
|
|
143
|
-
picture reads as lag, which is the one error a viewer always notices. (A place's sound may run
|
|
144
|
-
past a cut: Sound across a cut, above.)
|
|
145
|
-
- **One voice per job.** Every press of every button is the same click, at the same level, so the UI
|
|
146
|
-
feels like one object. Variety goes to the story moments, not to repeats of the same action.
|
|
147
|
-
- **The ending breathes.** The music settles on the tonic or lets its last chord ring, a beat of
|
|
148
|
-
near silence before the final mark if the film has one, and the tail rings out to the last frame.
|
|
149
|
-
Never a cut-off, never dead air after it.
|
|
150
|
-
|
|
151
|
-
## The finished mix
|
|
152
|
-
|
|
153
|
-
What the whole film's sound must be before it ships, score and effects together:
|
|
154
|
-
|
|
155
|
-
- **On its loudness target.** The delivery master (`music/delivery.ts`, the last stage of `mixSfx` and
|
|
156
|
-
`mixLaunch`) sets one static gain to -16 LUFS (gentle) or -14 (dense, launch films), then a smooth
|
|
157
|
-
true-peak limiter with its work capped (4 dB gentle, 6 dense): past the cap the gain gives way
|
|
158
|
-
instead of the hits being squashed, and the shortfall is reported. `master: "none"` keeps the old
|
|
159
|
-
peak-only ceiling. A score-only film keeps its own master (music/README.md, Master).
|
|
160
|
-
- **Never digital silence.** An effects-only film sits on room tone 22 dB under its cues (`bed`), nearly
|
|
161
|
-
mono so a phone keeps it, from the first frame to the last.
|
|
162
|
-
- **A finished shape.** Sound from the first frame (within 0.5 s), no hole over 0.25 s, the last sound
|
|
163
|
-
within 0.5 s of the last frame. A silence the film means (a held breath, a pause on a beat) is declared in
|
|
164
|
-
`meta.quiet` as `[fromFrame, toFrame, reason]`. `verify-export --delivery` fails the shape, a true
|
|
165
|
-
peak over -1 dBTP after the encode, and loudness under -19 LUFS; it warns from -17.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
## Checking the finished film's sound
|
|
169
|
-
|
|
170
|
-
Before the film goes to anyone, put numbers on the mix that was actually delivered. Two tools take
|
|
171
|
-
the rendered file and do it (give a film name for `out/<name>.mp4`, or point at a `.wav` or `.m4a`):
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
node tools/soundcheck.mjs <film|file> # the scorecard; exit 1 on any FAIL
|
|
175
|
-
node tools/soundcheck.mjs <film> --json --out x.json # the same, as data
|
|
176
|
-
node tools/soundcheck.mjs <film> --allow 3.1:3.6 # the silence there is a declared held breath
|
|
177
|
-
node tools/soundsheet.mjs <film> -o out/<film>-sound.png # one picture of it all
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
Each metric in `soundcheck` gets a status line: PASS, WARN or FAIL when it has a range, INFO when
|
|
181
|
-
it is only reported. Under them comes **START HERE**, the changes to make ranked by importance, and
|
|
182
|
-
every one is specific about where and what: "3.4 s hole at 0:03.4", "crowded body, strongest near
|
|
183
|
-
630 Hz: notch it a couple of dB", "mids decorrelated: narrow the stereo width below 2 kHz". The
|
|
184
|
-
numbers fall into five groups:
|
|
185
|
-
|
|
186
|
-
- level: integrated LUFS, true peak, loudness range, loudest 3 s, intro and end level, an
|
|
187
|
-
11-point arc, the loudest moment;
|
|
188
|
-
- shape: when the first sound arrives, any holes mid-film, dead air after the last sound, the fade,
|
|
189
|
-
the closing moment, an ending that cuts off, how many onsets and accents (sudden jumps in level)
|
|
190
|
-
there are per second, and held breaths (short dips that come straight back);
|
|
191
|
-
- spectrum: how the energy splits across five bands (rumble, warmth, body, bite and sparkle,
|
|
192
|
-
20 Hz to 16 kHz), plus the centroid;
|
|
193
|
-
- stereo: side vs mid, L/R correlation overall and per band (150 Hz-2 kHz is where phones comb
|
|
194
|
-
the body away), and how much more than the expected 3 dB the mix loses folded to mono;
|
|
195
|
-
- picture (any file with video): frame-difference events, the share with an onset within 100 ms
|
|
196
|
-
against a chance baseline, the events with no sound, and the median onset offset. INFO only:
|
|
197
|
-
not every picture change is meant to be a cue.
|
|
198
|
-
|
|
199
|
-
The built-in ranges are for drawing films: -16 to -13 LUFS (web target -14, gentle films -16),
|
|
200
|
-
true peak at or under -1 dBTP, LRA at most 9 LU, sound by 0.5 s, no hole over 0.25 s, at most
|
|
201
|
-
0.5 s of silence at the end, 150 Hz-2 kHz correlation at least 0.3, at most 1.5 dB of extra mono
|
|
202
|
-
loss, and the rumble (under 80 Hz) at or under -5 dB of the energy.
|
|
203
|
-
|
|
204
|
-
When the user has films whose sound they love, score against those instead:
|
|
205
|
-
`node tools/soundcheck.mjs profile <films...> -o references/music/sound-profile.json`, then pass
|
|
206
|
-
`--profile references/music/sound-profile.json`. The profile shifts the ranges that are a matter
|
|
207
|
-
of taste (loudness, bands, width). The ranges a delivery must meet (true peak, first sound, holes,
|
|
208
|
-
end silence, mono loss) do not move.
|
|
209
|
-
|
|
210
|
-
`soundsheet` lays the whole soundtrack out on one timeline, top to bottom: a strip of frames, the
|
|
211
|
-
spectrogram, the waveform, momentary and short-term loudness with the integrated level and -14
|
|
212
|
-
marked, then rows of onsets, accents and picture events (a picture event turns red when no sound
|
|
213
|
-
lands on it). Holes and dead air at the end are shaded. Look at it before handing the film over;
|
|
214
|
-
a gap, a silent ending or a late accent is obvious on the page.
|
|
215
|
-
|
|
216
|
-
The metrics live in `engine/src/canvas-core/music/soundcheck.ts`, tested on synthetic faults in
|
|
217
|
-
`engine/test/soundcheck.test.ts`.
|
|
218
|
-
|
|
219
|
-
## Tools and checks
|
|
220
|
-
|
|
221
|
-
```
|
|
222
|
-
node tools/sfx.mjs list # kinds, variants, levels, uses
|
|
223
|
-
node tools/sfx.mjs one whoosh soft 3 out.mp3 # one sound
|
|
224
|
-
node tools/sfx.mjs kit <dir> # every variant x3 + demo + page + meters.json + spectra/
|
|
225
|
-
node tools/sfx.mjs test # the gate
|
|
226
|
-
node tools/soundcheck.mjs <film> # the finished film's sound (see above)
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
The test checks every kind and variant for:
|
|
230
|
-
|
|
231
|
-
- determinism (md5 of two renders) and seed variation;
|
|
232
|
-
- no NaN, no DC, a peak of -1 dBFS or lower, an end at zero, and no fizz above 20 kHz (a
|
|
233
|
-
16.5 kHz air roll-off is built in);
|
|
234
|
-
- a non-silent sound whose level stays stable across seeds.
|
|
235
|
-
|
|
236
|
-
It also checks:
|
|
237
|
-
|
|
238
|
-
- the whoosh's doppler and pan travel;
|
|
239
|
-
- a chime tuned to its key;
|
|
240
|
-
- a riser synced to tempo, and snap-to-beat;
|
|
241
|
-
- the demo: deterministic, at film length, true peak within ceiling, every cue audible, the score
|
|
242
|
-
ducked under the impact;
|
|
243
|
-
- that a buried cue fails;
|
|
244
|
-
- that validation throws clearly on an unknown kind or variant, a pre-roll before frame 0, a bad
|
|
245
|
-
seed, a frame outside the film, a snap without bpm, a bad key, or a pitch out of range.
|