Communitygithub.com

tofucurd/score-sync-video

MusicXML/MXL、원본 악보 PDF 및 실제 녹음으로부터 연속적인 악보 동기화 비디오와 일치하는 커버를 제작할 때 사용합니다. 정렬 수정, 미리보기 검토, 일시 중지된 렌더링 복구 또는 이 워크플로우 내 커버 개정에도 사용합니다.

score-sync-video란 무엇인가요?

이 스킬은 음악 악보와 실제 연주 녹음을 동기화하여 연속적인 악보 동영상을 제작하는 전문 AI 에이전트 워크플로우입니다. Verovio 엔진을 사용한 악보 조판, 다단계 정렬 알고리즘, 이중 레이어 내비게이션 등 정교한 기능을 제공하며, Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 실행 가능합니다. 사용자는 프로젝트 초기화, 악보 소스 확인, 녹음 정렬, 구조 및 시각적 스타일 완성, 미리보기 검토, 최종 렌더링 및 전달까지의 단계를 거치며, 각 단계에서 실제 작업 기반의 검증과 승인이 필요합니다. 이 스킬은 단순한 자동화를 넘어 사람의 검증과 AI의 협업을 통해 고품질의 악보 동기화 비디오를 제작하도록 설계되었습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add tofucurd/score-sync-video

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

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

문서

악보 동기화 비디오 및 커버

MusicXML/MXL, 원본 악보 PDF 및 실제 녹음으로부터 연속적인 악보 동기화 비디오를 제작합니다. 종이색, Noto Serif CJK, 고정 파란색 커서, 단일 열 흐름 악보, 지속 음표 하이라이트 및 이중 레이어 곡식 내비게이션을 사용합니다. 작품 정보, 연주 경로, 시간, 구조 및 색상은 현재 프로젝트에 의해 결정됩니다. 어떤 작품의 악보, 녹음, 앵커 또는 프로젝트 개정도 포함하지 않습니다. 원본 자료는 읽기 전용입니다.

버전 1.0.1. 구성 요소 및 파일 지문은 목록을, 검증 범위는 기록을 참조하십시오. 설치 조건은 README를 참조하십시오. 악보 조판은 Verovio에서 제공합니다. 타사 라이선스는 고지사항을 참조하십시오.

환경 및 진입점

python3 scripts/bootstrap.py를 실행하고, 이후에는 출력된 독립형 Python을 사용합니다. scripts/score_sync.py doctor는 POSIX, Python, Node, FFmpeg/FFprobe, Chromium 및 코덱 지원을 확인하며 렌더링하지 않습니다. 비표준 브라우저 경로는 SCORE_SYNC_CHROME으로 지정합니다.

.runtime/bin/python scripts/score_sync.py init \
  --project /absolute/project/project.json \
  --score /absolute/score.mxl --pdf /absolute/original.pdf \
  --audio /absolute/recording.flac --title "작품명" --composer "작곡가"

각 악장마다 각각의 score/audio를 제공하며, PDF는 공유할 수 있습니다. 전체 곡 XML은 먼저 실제 악장에 따라 작업 복사본으로 분할합니다. 연주자, 오케스트라, 악장명 및 번호를 보완합니다. 번호가 없으면 비워 둡니다. 형식은 프로젝트 인터페이스를 참조하십시오. 음악 이론에 익숙하지 않은 사용자에게 마디 인덱스를 만들도록 요청하지 마십시오.

제작 워크플로우

  1. 악보 소스 및 경로 확인. prepare는 이벤트 및 원시 악보를 구문 분석합니다. PDF를 페이지별로 살펴보고 음표, 쉼표, 조옮김, 리듬, 꾸밈음, 이음줄 및 표현을 확인합니다. 근거 있는 수정 사항은 독립적인 복사본에 기록합니다. 실제 반복/도약은 source_route에 기록하며, 모두 수행되거나 모두 생략된다고 가정하지 않습니다. 악보 소스 및 구조에서 정체성 및 악보 배열 제약 조건을 설명합니다.
  2. 실제 녹음 정렬. 기본 align은 refined 다단계 매칭을 사용하여 후보, 꾸밈음 증거 및 전체 어택 노드 감사를 출력합니다. 전체 경로, 빠른 질감, 시작점, 템포 변화, 반복 구간 및 코다를 확인합니다. 녹음 증거를 기반으로 소스 정체성 제약 조건을 보완한 다음 영향을 받는 매핑을 업데이트합니다. 정렬 알고리즘은 공식 및 매개변수를 제공합니다. coarse는 이전 후보 진단을 위한 진입점일 뿐입니다.
  3. 구조 및 화면 완성. 2단계 structure.json, 자연 성부 섹션, materials.json, 레이블 및 커버 구성을 직접 작성합니다. 악기 간 동일한 재료는 색상을 유지하고, 알 수 없는 관계는 주색을 사용합니다. 모든 곡식 내용은 현재 작품에서 비롯되며, 완료되지 않은 항목은 미리보기에 들어갈 수 없습니다. 자세한 내용은 시각적 스타일을 참조하십시오.
  4. 실제 검토 기록. 현재 악보 소스/녹음에 해당하는 pdf-review.json 및 alignment-review.json은 실제 작업으로 작성합니다. preflight는 바인딩, 장면 데이터 및 커버 구성을 확인하며 브라우저를 시작하지 않습니다. 악보 소스, 경로, 녹음 또는 자르기 변경으로 alignment-inputs.json이 무효화되면, 해시만 변경하여 새 검토를 가장할 수 없습니다.
  5. 미리보기 제작 및 검토. 기본적으로 각 악장 시작 30초, 추가로 실제 고화질 프레임, 두 가지 비율의 커버 및 심의용 PDF를 제출합니다. 빠른 구간, 밀집된 페이지, 전환 및 실제 최종 인코딩 샘플 구간을 추가로 확인합니다. 세 명의 실제 에이전트가 각각 동일한 전체 계획을 보고 상호 검토합니다. 동시성이 부족하면 순차적으로 독립 검토할 수 있으며, 이름이나 승인을 위조하지 않습니다. 발견된 문제에 따라 수정 및 재검토하며 고정된 반복 횟수는 없습니다.
  6. 확인 후 렌더링 고정. 새 프로젝트는 기본적으로 미리보기 확인 후 approve --statement "실제 확인 문구"로 승인을 기록하고 render를 실행합니다. 동일한 작업의 기존 렌더링 승인을 가진 사용자는 수정 시 원래 승인을 유지하며, 영향을 받는 미리보기/검토를 업데이트한 후 approve --inherit --statement "실제 수정 지시"로 새 지문을 바인딩합니다. 고정 후에는 렌더링에 집중하며 직접 미술을 변경하지 않습니다.
  7. 복구 및 전달. 사용자가 일시 중지하면 현재 프로젝트의 렌더링만 중지하고 완전한 청크를 유지하며, resume으로 렌더링을 재개합니다. 필요한 검사를 통과하면 완성된 동영상, 커버 및 챕터를 전달하며 추가 무기한 검토를 추가하지 않습니다. clean은 기본적으로 캐시만 나열하며, 승인된 경우에만 clean --apply를 실행합니다. 전달 규격은 오디오, 챕터, 복구 및 공간 관리를 설명합니다.

완성된 동영상 제약 조건

  • 기본 3840×2160, 60fps, HEVC Main44410 MOV, 원본 오디오를 무손실로 캡슐화합니다. 오디오가 유일한 마스터 클럭이며, 정규화, 속도 변경, 테일 자르기 또는 악장 간 정숙 구간 추가를 하지 않습니다.
  • 해설, 수업 일시 중지, 구간 반복, MIDI 트랙, SRT, 교육용 부제목, 추가 동기 상자 또는 추상적인 장식을 포함하지 않습니다. 내비게이션의 현재 구조와 간결한 악장 식별자를 유지합니다.
  • 실제 연주에서 보이는 소스 음표에는 추적 가능한 그래픽 바인딩과 전체 하이라이트 구간이 있습니다. 줄기, 점, 보표 간 관계가 유지되며 음표가 변형되지 않습니다.
  • 자연스러운 작은 구간에서 소리가 난 성부와 구간을 넘나드는 지속음은 유지되며, 한두 마디 쉼표로 인해 반복적으로 숨겨지지 않습니다. 성부 경계는 고정되어 있으며, 동일한 4초 가중치가 투명도와 공간을 제어하며 추가 2차 전개를 시작하지 않습니다.
  • 파란색 세로선은 고정되어 있으며, 악보는 가로로 흐릅니다. 주색과 제한된 재료 색은 지속적으로 음악 관계를 따르며, 단순히 악기별로 색을 바꾸지 않습니다.
  • 이중 레이어 내비게이션은 전체적으로 navigation.py를 사용합니다: 현재 제목, 중앙 정렬된 단락 레이블, 파란색 현재 단락, 짧은 세로 포인터, 8px 종이색 구분선 및 부모/자식/악장 전환. 너비와 포인터는 실제 녹음 샘플을 기준으로 계산합니다.
  • 글꼴은 포함된 Noto Serif CJK만 사용하며, 원시 음악 문자 형태는 유지합니다. 커버는 현재 작품의 원시 악보에서 가져오며, 두 가지 비율로 독립적으로 구간을 선택하고 카테고리 텍스트는 선택 사항입니다. 다른 작품의 악보 장식을 사용하지 않습니다.
  • 조판 수정만 engraving_overrides/layout_overrides를 사용하며, ID, 이전 값 및 출력 검증을 포함합니다. ID 또는 지오메트리가 변경되면 다시 확인하며 이전 좌표를 맹목적으로 이동하지 않습니다.

최종 MOV에는 악장명과 시작점이 포함되며, 추가로 B站章节.txt 및 chapters.json을 함께 제공합니다. 경계는 실제 연결된 PCM 누적 샘플에서 비롯되며, 악보 템포, 예상 길이 또는 프레임 수로 대체할 수 없습니다.

적용 범위

자동 정렬은 후보일 뿐입니다. 자유 템포, 반복 질감, 약음 및 가려진 꾸밈음은 증거 확인이 필요하며, 한 번의 자동 실행으로 악기별 물리적 어택의 진리를 얻을 수 있다고 주장하지 않습니다. 교정, 구조 및 색상 조합도 자동으로 완료되지 않습니다.

partwise MusicXML/MXL을 허용합니다. timewise, 미분음, 고정 음고가 주가 아닌 음악 및 복잡한 삭제/수정은 먼저 적응이 필요합니다. 혼합 샘플링 레이트와 attacca 경계는 전달 규격을 참조하십시오. 코드/데이터만 확인할 때는 preview, covers, render 또는 PDF 출력을 호출하지 않습니다.

일반 로컬 참조 스냅샷 인터페이스는 사용자가 보유한 검토된 데이터를 복원할 수 있습니다. 공개 저장소는 특정 작품의 스냅샷을 포함하지 않습니다. 스냅샷은 녹음 간에 적용할 수 없으며 새 사용자의 승인을 전달하지 않습니다.

관련 스킬