Communitygithub.com

Scorewright

비디오의 오리지널 필름 스코어를 작곡하고 제작합니다 — 비디오를 시청하고 스포팅한 후, 음악적 정체성(장르, 조/모드, BPM, 악기, 라이트모티프)을 선택하고, score.json을 작성하며, 실제 악기(FluidSynth + GeneralUser GS 샘플, 오디오-애즈-코드 신디사이저, 사운드 디자인)를 렌더링하고, 내레이션 아래에서 믹싱(덕킹 + 스피치 딥, 음성 아래 X LU 베드)한 후 스템, MIDI, 프리뷰 및 QC를 제공합니다. "이 비디오에 스코어를 넣어줘", "음악을 작곡해줘", "내 단편 영화 배경 음악", "scorewright", "make a s"와 같은 요청에 사용하세요.

Scorewright란 무엇인가요?

Scorewright는 Claude가 비디오 콘텐츠를 분석하고 오리지널 영화 스코어를 작곡하게 해주는 강력한 AI 에이전트 스킬입니다. Claude Code 및 유사한 AI 코딩 에이전트와 함께 사용하도록 설계되었습니다. 이 스킬은 설명자/내레이션 비디오를 위한 '베드'와 필름/다큐멘터리를 위한 '스코어'를 구분하며, 라이트모티프 개발, 음악적 정체성 선택, 정밀한 큐 스포팅 등 전문 작곡 워크플로우를 적용합니다. 주요 기능으로는 비디오 분석(facts.json 생성), spotting 테이블 작성, score.json 작곡, FluidSynth 및 audio-as-code 신디사이저를 사용한 렌더링, 음성 인식 믹싱(덕킹, LUFS 레벨), QC 검사, 스템 및 MIDI 전달이 포함됩니다. 'swish'나 'whoosh' 같은 불필요한 사운드 효과를 피하고 음악의 절제와 대비를 중시합니다. 사용자는 QC 보고서와 스펙트로그램을 검토한 후 승인하거나 수정을 요청할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jayaprakash-pixel/scorewright/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Scorewright - Claude가 작곡하고, 도구가 렌더링합니다

0번 규칙: Claude는 score.json의 모든 창작 결정을 내리고 그 이유(direction, 큐 why)를 작성합니다. 스크립트에는 기본 스타일, BPM, 조성, 진행이 없습니다. 마지막 스코어를 템플릿으로 재사용하지 말고, 항상 비디오에서 시작하세요.

PY = requirements.txt가 설치된 Python 3.10+. SW = <이 폴더>/scripts/scorewright.py.

기기에서 첫 번째 렌더링 전에 PY SW doctor를 실행하세요. MISSING이라고 표시되면 README.md > 설치를 따르고, 사용자에게 알린 후 중단하세요.

실행 가이드 (빠른 시작)

#단계명령 / 작업완료 조건
0확인PY SW doctorready 출력
1분석PY SW analyze <비디오> <작업폴더> --words <words.json> (또는 --voice)facts.json (길이, 컷, 음성 구간, 시간 단어) + contact.jpg
2시청contact.jpg (타일 i = t i*step)와 시간 단어 읽기; 대본/스토리보드가 있다면 함께 읽기메시지, 청중의 느낌, 감정적 호를 설명할 수 있음
3스포팅스포팅 테이블 작성: 큐 시작/끝, 히트 포인트 (단어 시간, 전환점, 반전), 침묵이 더 나은 부분, 섹션별 감정 (주요 + 보조 + 강도)모든 큐 시작/히트가 측정된 시간
4방향 설정이유와 함께 정체성 선택: 장르 혼합, 조/모드, 큐별 BPM, 악기 팔레트, 라이트모티프 (+ 변형 방식), 다이내믹 호. references/craft.md 참조direction에 작성
5스코어 작성score.json 작성 (references/score-format.md, 예제 examples/bed_demo.json 참조). 각 큐는 히트 포인트에서 시작; s:<초>를 사용하여 단어에 음표 배치; PY SW fit <시간>은 큐 내에서 하나의 템포를 테스트할 때만 사용유효한 JSON
6렌더링PY SW render score.json <출력폴더>스템, 풀, no_percussion, composition.mid, 프리뷰, SCORE_NOTES.md, qc.json, spectrogram.png
7QCqc.json + spectrogram.png 읽기; 수정 후 재렌더링 (버전마다 새 출력 폴더 사용)모든 checks true; 모든 히트 rise_db >= 3; 의도치 않은 침묵 없음
8듣기사용자가 preview_with_voice.mp3를 청취. Claude는 들을 수 없음: 그 사실을 알리고, 수치를 보고하며, 무엇을 바꿀지 질문사용자 승인
9전달full_soundtrack.wav (이미 원시 음성 아래 X LU, 0 dB에서 드롭인) 또는 스템을 사용자의 편집기로 전달-

첫 번째 결정: 베드 또는 스코어

  • 설명자 / 내레이션 비디오 (음성이 거의 연속적) = 베드. 멜로디, 라이트모티프, 음성 아래 선율 없음. 펄스, 질감, 느린 화성, 서브 베이스만 사용. 섹션 경계에서 에너지 변화; 실제 전환점에서 2-3개의 히트/드롭아웃; 정체성은 선율이 아닌 음색/리듬에서 옴. 음성이 없는 곳에서만 짧은 선율 사용 (첫 단어 전 인트로, 마지막 단어 후 1-2초).
  • 음성이 없는 구간이 있는 필름 / 다큐멘터리 = 스코어. 라이트모티프와 멜로디는 그 공백에 존재함.
  • 설명 아래의 멜로디는 두 번째 목소리: 시청자는 선택해야 하며, 설명은 손해를 봄.

해야 할 것

  • 침묵, 절제, 대비는 도구입니다. 모든 비디오에 음악이 사방에 있을 필요는 없습니다.
  • 핵심 아이디어당 하나의 라이트모티프; 스토리의 전환점에서 발전시킴 (반전, 증대, 재화성화, 한 음 변경).
  • 복잡한 설명 아래에서는 밀도를 낮춤; 음성 공백과 시각적 전용 순간에 음악이 말하게 함.
  • 트랙별 엔진 선택: gm은 어쿠스틱 현실감 (피아노, 현악기, 금관, 목관, 합창, 말렛), aac는 신디사이저 / 사운드 디자인 음색 (느림: ~10x gm; 적고 드문 트랙에 사용; 선택 사항), sfx는 히트 포인트의 임팩트/스웰/서브 드롭에 사용.
  • 베드 bed_lu_under_voice 11 (활기참) ~ 12.6 (차분함), 음성 구간에서 측정 - 스크립트가 정확히 설정함.
  • 새 버전 = 새 출력 폴더; 승인된 렌더링을 덮어쓰지 마십시오.

하지 말아야 할 것

  • 스위시 / 우쉬 / 페이지 플립 사운드 없음. riser/swell은 음조적 스웰이며, 드물게 사용.
  • 복사된 멜로디, 인식 가능한 테마 또는 참조 트랙 편곡 없음.
  • 모든 비디오에 동일한 BPM/조성/진행 없음; 감정의 대용으로 음량을 사용하지 마십시오.
  • 시각적 또는 스토리 이유 없는 SFX 없음; 내레이션보다 큰 SFX 없음.

알려진 한계 (테스트 완료)

  • GM SoundFont 오케스트라는 좋은 목업이지만, Spitfire/Kontakt 현실감은 아님. 솔로 피아노, 패드, 플럭, 피치카토, 신디사이저가 가장 잘 유지됨.
  • 큐당 하나의 템포 (템포 변경 = 새 큐). composition.mid는 첫 번째 큐의 템포로 절대 시간 사용.
  • audio-as-code 렌더링은 느림 (all-aac 76초 스코어: Ryzen 5 5600H에서 약 8분; 혼합 스코어: 약 50초).
  • Claude는 들을 수 없음; QC 수치 + 스펙트로그램 + 사용자 귀가 루프.

관련 스킬