real-sound은(는) 무엇을 하나요?
당신은 들을 수 없는 영화의 사운드 감독입니다. 사운드트랙은 오직 실제 전문 녹음 또는 제작된 오디오(라이선스 음악 트랙 1개, 실제 폴리 및 SFX, 실제 앰비언스)로만 구축되며, 결정론적 믹서가 픽처의 큐 프레임에 배치하고, 듣는 대신 측정하며, 다섯 가지 렌즈를 통해 비평하고, 한 에이전트가 수정하고, 마스터링, 크레딧, 뮥싱을 수행합니다. 코드가 선택, 트림, 배치, 레벨링, 팬, EQ, 리샘플링을 통한 피치 조정, 음악 타임스트레치 및 마스터링을 수행합니다. 코드는 절대 사운드를 생성하지 않습니다.
기준은 전문 런치 영상입니다: 화면의 모든 것에 의해 발생하는 모든 사운드, 하나의 소재 팔레트, 히어로 리빌에 맞춰진 음악의 드롭, 다른 곳에서는 절제, 해결된 로고, 침묵으로의 테일. 규칙: references/sound-design.md (및 earshot 저장소의 docs/launch-video-sound.md 번들 참조 프로필: 7개의 전문 런치 영상).
<skill>은 이 폴더입니다. Python: {{PY}} 아래 (및 모든 프롬프트 템플릿에서)는 numpy, scipy, soundfile 및 earshot 패키지를 갖춘 하나의 인터프리터입니다: earshot 저장소의 venv (Windows에서는 <earshot repo>/.venv/Scripts/python.exe, 그 외에서는 <earshot repo>/.venv/bin/python), 또는 <python> -c "import earshot"가 작동하는 모든 Python. Windows의 기본 python은 종종 Microsoft Store 스텁이며 실패합니다. 명령을 실행하거나 하위 에이전트에 프롬프트를 전달할 때 {{PY}}를 전체 경로로 대체하십시오 (다른 플레이스홀더는 references/process.md에 나열됨). 스크립트는 -I (격리: 다운로드된 파일이 모듈을 가릴 수 없음)와 함께 실행하십시오; scripts/licences.py (audit.py 및 credits.py가 가져오는 라이선스 정책 모듈)를 제외한 모든 스크립트는 --help를 출력합니다.
프로세스
| 단계 | 담당 | 출력 | 게이트 |
|---|---|---|---|
| 0. 큐 리스트 | 리드 | out/cues.json | 픽처 코드에서 계산된 동기화 프레임 |
| 1. 브리프 | 리드 | audio/SOUND_BRIEF.md | 모든 큐에 사운드 니즈(또는 "없음")가 있음 |
| 2. 소싱 (카테고리별, 병렬) | 소싱 에이전트 | audio/assets/<cat>/, 매니페스트 | 각 파일 측정 + earshot realness "실제 또는 전문 제작" (사용된 트림에서, "불확실"은 증거 및 트림 수준 재확인이 매니페스트에 기록됨) |
| 3. 라이선스 감사 | 감사자 | audit.json | audit.py 종료 0 (영화가 사용하는 것에 대해) |
| 4. 음악 편집 | 음악 감독 | audio/design/music.json | 그리드 확인, 리빌에 드롭, 스플라이스 깔끔함 |
| 5. 디자인 조각 (카테고리별, 병렬) | 디자이너 | audio/design/<cat>.json | 솔로 렌더링 + QA 깔끔함 |
| 6. 통합 | 리드 | 사운드트랙, 스템, 보고서, 추적 | 마스터 게이트 (+-0.5 LU, <= -1.5 dBTP) |
| 7. QA + 듣기 | 리드 | out/qa/qa.json, earshot 타임라인 / 시트 / 비평 | QA 실패 없음 |
| 8. 비평 (5개 렌즈, 병렬, 읽기 전용) | 비평가 | 순위가 매겨진 이슈 + 테스트된 작업 | |
| 9. 수정 | 한 명의 수정자 | 디자인 | QA: 회귀 없음 |
| 10. 마스터, 크레딧, 뮥스 | 리드 | CREDITS.md, 설명 텍스트, 영화 | 크레딧 종료 0, 지연 0 |
모든 단계의 세부 사항, 역할 및 각 비평가가 측정하는 항목: references/process.md. 모든 하위 에이전트 프롬프트는 templates/prompts/에 있는 준비된 브리프입니다.
0. 픽처로부터 큐 리스트
모든 사운드는 픽처 코드가 계산하는 프레임에 위치합니다: 접촉 프레임, 팝인의 50% 프레임, 이동의 속도 피크, 라이저의 히트, 워드마크가 읽을 수 있는 프레임. Cinetic 영화는 이미 out/cues.json (export-cues.ts)을 가지고 있습니다; 다른 것의 경우 타임라인 상수에서 동일한 형식 (templates/cues.json)을 작성하십시오. 안정적인 ID (act:thing:n)를 통해 규칙이 정규식으로 작업 클래스를 일치시킬 수 있습니다.
1. 브리프
templates/SOUND_BRIEF.md를 audio/SOUND_BRIEF.md로 복사: 개념 (팔레트, 음악의 흐름, 장소), 픽처 맵 (모든 큐: 화면에 무엇이 있는지, 사운드 니즈), 앰비언스 존, 허용된 라이선스, 품질 기준, 파일 레이아웃. 모든 하위 에이전트가 그대로 받는 계약입니다. 브랜드의 성격 행을 선택하십시오 (references/sound-design.md §3).
2. 카테고리별 소싱 (templates/prompts/sourcing.md)
일반적인 런치 영상 카테고리: ui (클릭, 탭, 토글, 팝), keyboard, motion (후시, 라이저), impacts (리빌 히트, 로고), ambience, music; 캐릭터 영화는 foley, 그 세계, 그 오브젝트를 추가합니다. Freesound (CC0 / CC BY; HQ 프리뷰 cdn.freesound.org/previews/<id//1000>/<id>_<user>-hq.ogg), Mixkit (WAV assets.mixkit.co/active_storage/sfx/<id>/<id>.wav), 음악용 작곡가 라이브러리; 라이선스는 각 항목의 자체 페이지에서 읽음 (references/licences.md); 예의 바른 순차 다운로드; 모든 파일 측정:
{{PY}} -I <skill>/scripts/analyze.py audio/assets/ui/* --png out/audio-review/ui --out out/audio-review/ui.json
{{PY}} -m earshot realness audio/assets/ui/ # 게이트: "실제 또는 전문 제작" (트림 재확인: --start --end)
{{PY}} -m earshot rank "a single crisp trackpad click" audio/assets/ui/ --top 5
{{PY}} -m earshot match <file> "a soft cork pop" --alts "a gunshot" "a balloon burst"
{{PY}} -m earshot find <long take> "a single mechanical key press" --top 8 # 트림; 헤드 컷/테일 컷 표시된 것은 건너뜀
3. 라이선스 감사 (templates/prompts/licence_audit.md)
감사자는 각 페이지가 말하는 내용 (licence_seen, licence_confirmed)을 audio/assets/manifests/audit.json에 기록합니다; 스크립트가 나머지 (분류, ID 대 URL, 파일 디코드, 지속 시간, 크레딧 라인)를 확인합니다:
{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json [--fetch]
허용: CC0, 퍼블릭 도메인, CC BY 2.0-4.0, Mixkit 무료 라이선스, Pixabay. 금지: NC, ND, SA, Sampling+, 개인, 사용자 정의, 분쟁. 확인되지 않음 = 차단됨.
4. 음악 (templates/prompts/music_supervisor.md)
구조가 영화에 맞는 하나의 라이선스 트랙. 영화 바별 호를 작성한 후 (templates/arc.json):
{{PY}} -I <skill>/scripts/arrange.py audio/assets/music/<track> --film-bpm 120 --arc audio/arc.json --out out/audio-review/music/arrange.json
템포를 맞추고, 측정된 어택에 그리드를 이동시키고 (비트 트래커는 20-50ms 지연), 다운비트 위상을 제안하고, 가장 강한 드롭 후보에 드롭 영화 바를 고정하고, 마디선에서 세그먼트를 초안합니다 (붙여넣기 준비된 music 블록). 다운비트는 약점입니다: LOW 신뢰도가 출력되면 (테스트된 두 트랙 중 하나에서 반 마디 어긋남), 첫 번째 음, 섹션 입구 및 막대 테이블의 코드 변경에서 두 인쇄된 그리드 사이에서 결정하고 --phase N으로 다시 실행하십시오. 그런 다음 판단으로 편집: 각 스플라이스에서 하모니가 계속되고, 다운비트가 히어로 프레임에 드롭되며, 로고의 최종 코드, 끝으로 tail_fade.
5. 카테고리별 디자인 조각 (templates/prompts/designer.md)
audio/design/<category>.json (샘플(트림), 슬라이스(여러 히트의 테이크를 단일 히트로 자름), 풀, 큐 이벤트 규칙, 자유 배치, 앰비언스 베드, 음악 블록 포함). 모든 키와 실제 예제로 참조: references/design-format.md; 완전한 런치 비디오 예제: templates/design_fragment.json (파일 이름은 mk-0000_mouse-click.wav와 같은 플레이스홀더: 각각을 매니페스트의 실제 녹음으로 교체하면 렌더링됨; 그때까지 mix.py는 누락된 파일을 멈추고 나열함).
단독 확인:
{{PY}} -I <skill>/scripts/mix.py --only ui --dump out/audio-review/ui/dump # 모든 트림을 WAV + 숫자로
{{PY}} -I <skill>/scripts/mix.py --only ui --trace out/audio-review/ui/adds.json --out out/audio-review/ui/solo.wav
{{PY}} -I <skill>/scripts/qa.py --only ui --report out/audio-review/ui/solo_report.json --stems out/audio-review/ui/solo_stems --trace out/audio-review/ui/adds.json --out out/audio-review/ui/qa.json
{{PY}} -m earshot timeline out/audio-review/ui/solo.wav --cues out/cues.json
6-7. 통합, QA, 듣기
{{PY}} -I <skill>/scripts/mix.py --root . --design audio/sounddesign.json --cues out/cues.json --trace out/qa/adds.json
{{PY}} -I <skill>/scripts/qa.py --layers # 클릭, 가장자리, 가청성, 거칠음, 음량, 커버리지, 싱크, 밀도
{{PY}} -I <skill>/scripts/qa.py --listen --realness --video out/film.mp4 # + earshot 타임라인, 시트, 비평, realness
{{PY}} -m earshot critique out/audio/soundtrack.wav --video out/film.mp4 # 전문 런치 영상 대비 스코어카드
{{PY}} -m earshot sheet out/audio/soundtrack.wav -o out/qa/sheet.png --video out/film.mp4 --cues out/qa/cues_sounded.json
qa.py는 모든 발견 사항을 이를 유발한 규칙 및 샘플 (추적)에 연결합니다. 모델 없이도 사용 가능합니다; --listen은 earshot의 텍스트 (out/qa/qa_timeline.txt), 주석 시트 및 스코어카드를 추가합니다.
8-9. 비평 및 수정
다섯 명의 읽기 전용 비평가가 병렬로 실행되며, 각각 자체 프롬프트가 있습니다: critic_sync.md, critic_edges.md, critic_masking.md, critic_tonal.md, critic_director.md. 각각 자체 폴더에서 수정 사항을 변형으로 테스트합니다:
{{PY}} -I <skill>/scripts/variant.py --ops out/audio-review/critic_tonal/ops_v1.json --out out/audio-review/critic_tonal/v1 --render --qa
그리고 순위가 매겨진 이슈와 정확한 작업 및 전후 숫자를 반환합니다. 그런 다음 한 명의 수정자 (fixer.md)가 작업을 병합하고, 충돌을 해결하고, 병합된 변형을 이전 qa.json과 비교하고, 적용합니다 (variant.py --apply, 원본은 백업됨). "qa_ok": "<reason>"으로 확인된 의도적 예외를 인정합니다. 최소 한 라운드; 레벨이나 음악 편집이 변경된 경우 두 번째 라운드.
10. 마스터, 크레딧, 뮥스
mix.py는 master.py로 마스터링합니다 (-14 LUFS, 트루 피크 리미터, 천장 0.77 선형; 게이트 +-0.5 LU 및 <= -1.5 dBTP).
{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json # 종료 0
{{PY}} -I <skill>/scripts/credits.py --root . --design audio/sounddesign.json --audit audio/assets/manifests/audit.json
node <skill>/scripts/mux.mjs --video out/film.mp4 --audio out/audio/soundtrack.wav --out out/film_sound.mp4
{{PY}} -m earshot timeline out/film_sound.mp4 --cues out/qa/cues_sounded.json # 완성된 파일, 들음
CREDITS.md + out/CREDITS_description.txt (비디오 설명에 붙여넣기: CC BY 크레딧은 필수). mux.mjs는 픽처를 스트림 복사하고 AAC 오디오를 픽처 지속 시간에 맞춥니다.
런치 비디오: 사운드 맵
| 픽처 | 사운드 | 위치 |
|---|---|---|
| 커서 이동, 호버, 스크롤, 진행, 스트리밍 텍스트 | 없음 (음악이 전달) | |
| 클릭 / 탭 | 영화 전체에 하나의 실제 클릭 음색, 누름 + 약 85ms 후 해제, 매번 동일한 레벨 | 누름 프레임 |
| 타이핑 | 하나의 실제 키보드, 슬라이스됨; <= 약 12 키/초, ~25자/초 이상 단어당 하나; 음악 6-10dB 감소 | 각 소리나는 문자 |
| 카드/칩/배지 등장 | 부드러운 실제 팝 또는 틱, 연속으로 상승 | 이동의 50% |
| 토글, 잠금, 카운터 최종 값 | 실제 걸쇠/클릭/선명한 틱 | 접촉/잠금 프레임 |
| 카메라 스케일 이동, 채찍, 줌 (영화당 약 2회) | 실제 스위시, 속도 피크에서 정점 | 속도 피크 |
| 하드 컷 | 없음 | |
| 리빌로의 긴장 | 음악의 빌드업, 또는 히트 30-250ms 전에 끝나는 실제 라이저 | 히트 |
| 히어로 리빌 | 음악의 드롭 (트랙을 편집하여 다운비트가 여기에 오도록) + 선택적으로 하나의 실제 임팩트 | 프레임 |
| 로고/락업 | 음악이 마디선에서 멈추거나 필터 다운, 0.2-0.7초 거의 침묵, 키에 맞는 하나의 부드러운 음, 침묵으로 테일 | 워드마크가 읽히는 프레임 |
레벨: -14 LUFS, 트루 피크 <= -1 dBTP (AAC 후), LRA 5-9 LU, 가장 큰 순간은 드롭 (30-60% 구간), 로고는 그 아래 8-20dB, 10초당 약 5개의 디자인된 효과, 효과는 건조하고 중앙에 위치. 측정된 규범과 저렴한 신호: references/sound-design.md.
도구
| 필요 | 도구 |
|---|---|
| 녹음 측정 (형식, 바닥, 대역폭, 어택, 스파이크, 템포/키) + 스펙트로그램 PNG | scripts/analyze.py |
| 녹음 듣기: 실제 vs 합성, 소리, 최적 일치, 긴 파일 내 최적 테이크 | {{PY}} -m earshot realness / describe / match / rank / find / compare / ab |
파일 또는 그 일부의 레벨/밝기/어택 (--start --end) | {{PY}} -m earshot measure (Python: from earshot import api; api.measure(...), 마찬가지로 api.find, api.realness ...) |
| 라이선스 + 파일 감사 | scripts/audit.py (정책은 scripts/licences.py) |
| 음악 그리드, 다운비트, 마디선 편집 초안 | scripts/arrange.py |
디자인 렌더링 (+ 솔로 --only, --dump 트림, --trace QA용) | scripts/mix.py |
| 마스터 및 음량 측정 | scripts/master.py (--measure) |
| 배치에 연결된 객관적 QA | scripts/qa.py (--layers, --listen, --realness) |
| 비평가 변형, 수정자 적용 | scripts/variant.py |
| CREDITS.md 및 비디오 설명용 크레딧 | scripts/credits.py |
| 사운드트랙을 픽처에 결합 | scripts/mux.mjs |
| 전체 믹스/영화 듣기; 주석 픽처; 런치 영상 스코어카드 | {{PY}} -m earshot timeline / sheet / critique |
파일
audio/SOUND_BRIEF.md 계약 (templates/SOUND_BRIEF.md)
audio/assets/<category>/ 다운로드된 녹음 (<source>-<id>_<slug>.<ext>; 절대 커밋하거나 게시하지 말 것)
audio/assets/manifests/<cat>.json 녹음당 하나의 항목 (templates/manifest_entry.json)
audio/assets/manifests/audit.json 라이선스 감사 (templates/audit_entry.json)
audio/sounddesign.json 최상위: 포함, 버스, 마스터 (templates/sounddesign.json)
audio/design/<category>.json 디자이너당 하나의 조각 (templates/design_fragment.json)
out/cues.json 픽처의 큐 이벤트 (templates/cues.json)
out/audio/soundtrack.wav, stems/ 마스터 및 그 스템
out/qa/ mix_report.json, adds.json, cues_sounded.json, master.json, qa.json
out/audio-review/ 카테고리별 및 비평가별 작업, 변형, 덤프 (감사 추적)
CREDITS.md, out/CREDITS_description.txt
참조
references/process.md: 역할, 단계, 각 비평가가 측정하는 항목, 임계값 및 출처
…
[번역을 위해 잘림]