Communitygithub.com

MattiaIppoliti/tia-skills

HyperFrames 오디오 믹싱용 스킬: 페이드인/페이드아웃, 크로스페이드, 트랙 게인/볼륨, 볼륨/이펙트 오토메이션, 덕킹/보이스오버 캐브, EQ·컴프레서·리미터·게이트·새츄레이션·딜레이·리버브·코러스·페이저·비트크러시 이펙트 체인. 오디오 소싱/생성은 `/media-use`, 클립 타이밍/트랙 배치는 `/hyperframes-core`로.

tia-skills란 무엇인가요?

이 스킬은 HyperFrames 시스템 내에서 오디오 믹싱 작업을 수행하는 AI 에이전트를 위한 것입니다. 주로 Remotion + React 기반의 `/hyperframes-core` 프레임워크와 함께 사용되며, 배치된 오디오 트랙에 대한 다양한 믹싱 관계를 정의하고 실행합니다. 주요 기능으로는 페이드 인/아웃, 크로스페이드, 트랙 게인 및 볼륨 제어, 볼륨 및 이펙트 파라미터 자동화, 덕킹 및 보이스오버 캐브(음성과 배경음악 간 주파수 충돌 해결), 그리고 EQ, 컴프레서, 리미터, 게이트, 새츄레이션, 딜레이, 리버브, 코러스, 페이저, 비트크러시 등 11가지 이펙트 체인이 포함됩니다. 미리듣기와 최종 렌더링 모두 동일한 Web Audio 그래프를 사용하므로 조정 중 듣는 소리가 그대로 결과물에 반영됩니다. 이 스킬은 오디오 소싱이나 생성(`/media-use`), 클립 타이밍 및 트랙 레이아웃(`/hyperframes-core`)은 다루지 않으며, 오직 배치된 오디오의 믹싱 관계에만 집중합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/MattiaIppoliti/tia-skills/tree/HEAD/skills/video/hyperframes-audio

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

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

문서

⚠ 계약 상태: 공정은 현재, 코드는 오래됨

이 스택의 출력 프레임워크는 Remotion + React (/hyperframes-core)입니다. 여기 있는 모션 공정은 여전히 유효합니다: 타이밍, 이징 선택, 움직임의 형태, 명명된 규칙 및 청사진. 코드는 유효하지 않습니다: 예제와 어댑터는 더 이상 사용되지 않는 HTML + 일시 중지된 GSAP 타임라인 런타임을 대상으로 작성되었습니다.

읽으면서 번역하세요:

여기Remotion에서
gsap.fromTo(el, {x:-40}, {x:0, duration:0.5})interpolate(frame, [0, SEC(0.5)], [-40, 0], {…"clamp"})
ease: "back.out(1.7)"spring({frame, fps, config:{damping}}), 눈으로 조정
window.__timelines[id]의 일시 중지된 타임라인없음; 모든 값은 useCurrentFrame()의 함수
클립의 data-start / data-duration<Sequence from> / durationInFrames, 프레임 단위
CSS 키프레임 또는 트랜지션프레임에서 파생된 인라인 style (CSS 애니메이션은 렌더링되지 않음)

이 스킬의 예제를 수정 없이 Remotion 프로젝트에 붙여넣지 마십시오.

HyperFrames 오디오

믹스는 프로세서의 스택이 아니라 관계의 집합입니다. 각각 혼자서는 완벽하게 들리는 두 트랙이 함께 있을 때는 듣기 어려울 수 있으며, 해결책이 거의 "하나를 줄이는 것"이 아닙니다. 그것은 그들이 무엇을 놓고 싸우고 있는지 찾아서 필요한 쪽에 주는 것입니다. 여기 있는 모든 도구는 그러한 관계 중 하나를 표현하기 위해 존재합니다.

이펙트는 엘리먼트의 data-fx-chain에 있으며, 미리보기와 렌더링은 동일한 Web Audio 그래프를 실행합니다. 라이브 컨텍스트에서는 스튜디오, 오프라인 컨텍스트에서는 이미 구동 중인 브라우저 내부의 엔진입니다. 각 이펙트의 구현은 하나이므로, 스크러빙 중 듣는 것이 기록되는 것입니다. 두 번 튜닝할 필요가 없습니다.

클립 타이밍은 /hyperframes-core에 속합니다: 오디오/비디오 트림 및 소스 범위는 data-start, data-duration, data-media-start를 사용하며, 크로스페이드는 다른 트랙의 클립을 겹칩니다. 이 스킬은 배치된 트랙의 페이드인/페이드아웃, 크로스페이드 엔벨로프, 트랙 게인/트랙 볼륨, 볼륨 및 이펙트 오토메이션, 덕킹/보이스오버 캐브, 그리고 이펙트 체인을 담당합니다. /media-use는 소싱, 생성 및 전처리를 담당합니다.

상수 data-playback-rate (0.1..5)는 오디오/비디오 엘리먼트가 동일한 타이밍, 소스 오프셋 및 속도를 사용할 때 픽처 및 피치 보존 사운드에 대해 렌더링에 안전합니다. 속도 램프는 지원되지 않습니다(속도 엔벨로프가 없음). 파생된 동기화된 에셋을 전처리하십시오. HyperFrames는 자동 파형 동기화 또는 드리프트 보정을 제공하지 않습니다. 복사 가능한 컷/크로스페이드/재타이밍 레시피는 /hyperframes-core → references/editing-recipes.md를 사용하십시오.

세 가지 속성이 모든 것을 전달하며, 모두 오디오/비디오 엘리먼트 자체에 있습니다:

속성보유
data-fx-chain이펙트, 신호 순서대로
data-automation이 트랙의 볼륨 또는 이펙트 파라미터에 대한 엔벨로프
data-fx-carve캐브 자체의 설정, 재파생 가능하도록

제공되는 이펙트 패밀리는 게인, EQ(하이패스, 로우패스, 피킹, 쉘프), 컴프레서, 리미터, 게이트, 새츄레이트, 딜레이, 리버브, 코러스, 페이저, 비트크러시입니다.

각각의 정확한 JSON 및 레인이 충족해야 하는 규칙: references/attributes.md. 파라미터, 범위 및 단위와 함께 모든 이펙트: references/fx-registry.md. 들을 수 없는 파일의 문제를 해결하는 방법: references/diagnosis.md. 프리셋, 명명된 작업 및 원노브 프로파일, 증상-수정 표: references/presets.md — 체인을 수동으로 구축하기 전에 읽으십시오. 프리셋이나 명명된 작업 중 하나가 일반적으로 문제를 이미 지목하기 때문입니다.

어떻게 함께 작동하는가

두 개의 저작 표면이 이러한 속성을 작성합니다. 두 개의 런타임이 동일한 빌더를 통해 이를 읽습니다. 이러한 공유 중간 계층이 미리보기가 렌더링을 예측하는 이유입니다.

flowchart TB
  voice["음성 트랙<br/>미디어 파일"]
  bed["배경음악 트랙<br/>미디어 파일"]

  subgraph AUTHOR["저작 — 속성을 작성하는 유일한 것"]
    panel["스튜디오<br/>보이스오버 캐브 컨트롤"]
    script["scripts/carve.mjs<br/>쌍을 감지, 기본적으로 동적"]
    analysis["core/audioCarve.ts<br/>carveProfile · analyseCarveBands<br/>analyseCarveDuck · analyseCarveDynamics"]
    panel --> analysis
    script --> analysis
  end

  voice --> analysis
  bed --> analysis

  subgraph ATTRS["배경음악 엘리먼트에 기록됨"]
    carveAttr["data-fx-carve<br/>source · strength · dynamic"]
    chainAttr["data-fx-chain<br/>peaking xN + gain, tagged fromCarve"]
    autoAttr["data-automation<br/>조각된 파라미터당 하나의 레인"]
  end

  analysis --> carveAttr
  analysis --> chainAttr
  analysis --> autoAttr

  subgraph SHARED["하나의 구현, 둘 다 읽음"]
    build["audioFxGraph.ts · buildFxChain"]
    sched["audioFxAutomation.ts · scheduleChainAutomation"]
  end

  chainAttr --> build
  autoAttr --> sched

  build --> preview["미리보기<br/>라이브 AudioContext<br/>attachElementFxChain"]
  sched --> preview
  build --> render["렌더링<br/>헤드리스 브라우저의 OfflineAudioContext<br/>applyAudioFxChain"]
  sched --> render

  preview --> heard["스크러빙 중 듣는 것"]
  render --> wav["처리된 WAV<br/>+ 믹스가 테일을 통과시키도록 chainTailSeconds"]
  wav --> mix["엔진 · audioMixer<br/>여기서 PCM에 볼륨 레인이 베이킹됨, 그래프 아님"]
  mix --> out["렌더링된 믹스"]

  edit["재생 중 속성 편집"] -.->|MutationObserver| preview

캐브 자체의 설정은 재생 시 절대 읽히지 않습니다. 그것이 생성한 체인과 레인이 재생됩니다. data-fx-carve는 기존 캐브에서 강도를 추측하여 되찾는 대신 변경할 수 있도록 존재합니다.

조각된 배경음악 내부에서 신호는 먼저 딥을 통과한 다음 레벨 매치를 거친 후 사용자가 직접 구축한 모든 것을 통과합니다. 이것이 추가하는 리미터가 여전히 마지막 천장 역할을 하는 이유입니다:

flowchart LR
  src["디코딩된 배경음악"] --> p1["peaking<br/>400 Hz"]
  p1 --> p2["peaking<br/>1 kHz"]
  p2 --> p3["peaking<br/>1.6 kHz"]
  p3 --> g["gain<br/>레벨 매치"]
  g --> hand["사용자 자신의 이펙트<br/>예: 리미터"]
  hand --> dest["트랙 게인, 그런 다음 출력"]

  l1["lane fx.n1.gain"] -.->|"해당 대역에서<br/>음성 레벨의 엔벨로프"| p1
  l4["lane fx.n4.gain"] -.->|"배경음악이<br/>전체적으로 덕킹되는 정도"| g

정적 캐브는 고정된 값과 레인이 전혀 없는 동일한 그래프입니다.

먼저, 무엇이 잘못되었는지 파악하십시오

아래 표는 "웅웅거리는 소리가 난다"에서 시작합니다. 이는 누군가가 이미 듣고 그렇게 말했다는 것을 전제로 합니다. "이걸 고쳐라"는 파일을 받았지만 그러한 문장도 없고 들을 수도 없다면 측정해야 합니다. 하나의 규칙이 모든 것을 지배합니다:

알 수 없는 단일 음성의 절대 스펙트럼은 진단할 수 없습니다. 포먼트는 ±10 dB이고, 기본 주파수는 85–255 Hz이며, 문장은 끝날 때 5–6 dB 감소합니다. 이 모든 것은 각각 결함으로 읽히며, 모두 화자에게서 비롯됩니다.

따라서 비교하십시오. 동일한 파일 내의 무언가와 비교하십시오: 깨끗한 원본이 있다면 그것과, 그렇지 않으면 일시 정지 구간과 — 갭에서 들리는 것은 모두 추가적인 것이며, 갭의 스펙트럼은 음성이 아닌 채널입니다. 게시된 평균 스펙트럼이나 합성된 제어 음성과 비교하는 것은 작동하지 않습니다. 두 화자는 대부분의 결함보다 더 다르며, 이 지침 뒤에 있는 평가에서 잘못된 두 답변 모두 정확히 그 이유에서 비롯되었습니다.

원본도 사용 가능한 침묵도 없을 때, 정적 음색 결함은 사실상 결정 불가능합니다. 그렇게 말하고 적합한 판독값을 제공하되, 하나를 선택하고 그 위에 체인을 구축하지 마십시오.

명령, 함정 및 작업 레시피: references/diagnosis.md. 아무도 설명하지 않은 파일을 진단하기 전에 읽으십시오.

증상부터 시작하십시오

대역과 종류를 파악한 후 오디오의 문제가 무엇인지 이름을 지정하십시오. 대부분의 나쁜 오디오는 이 중 하나 또는 두 가지이며, 각각에 대해 제공된 답변이 있습니다:

소리가 이런 경우사용할 것
아래에 웅웅거림 또는 둔탁한 소리rumble-cut, 또는 80 Hz에서 highpass
웅웅거림, 가슴을 울리는 듯Tame Boominess 작업 (200 Hz)
먹먹함, 판지 뒤에 있는 듯Reduce Mud 작업 (250 Hz)
단어를 알아듣기 어려움Add Clarity 작업 (3 kHz), 또는 배경음악 캐브
거칠고 피곤하게 함Soften Harshness 작업 (3.2 kHz)
어떤 단어가 다른 단어보다 훨씬 큼컴프레서의 Evenness, 또는 Even Out Levels
문장 사이의 룸 톤room-gate
음성과 음악이 충돌함Voiceover 캐브 — 둘 중 하나에 EQ가 아님
건조함, 어디에도 녹음되지 않은 듯room-tight 또는 room-natural
그냥 "아마추어" 같음voice-clean (위의 네 가지를 순서대로 적용한 것)

전체 카탈로그, 각 프리셋의 내용, 대역 용어 및 의도적으로 포함되지 않은 것(디에싱, 노이즈 제거, 톤 매치): references/presets.md.

추가하기 전에 빼고, 필터 후 레벨, 레벨 후 관계, 특성 및 천장은 마지막에. 각 단계는 다음 단계가 듣는 것을 변경합니다. 하이패스 전에 설정된 컴프레서는 럼블을 쫓는 데 시간을 보냅니다.

이름이 아닌 문제에 따라 패밀리를 사용하십시오

필터 (highpass, lowpass, peaking, lowshelf, highshelf)는 트랙이 점유할 수 있는 주파수를 결정합니다. 이는 두 소스가 충돌할 때 첫 번째 도구입니다. 충돌은 대역에서 발생하기 때문입니다. 배경음악과 음성 모두 1–3 kHz를 원하며, 배경음악에서 그것을 빼는 것은 전체를 낮추는 것보다 믹스에 훨씬 적은 비용이 듭니다. 음성의 하이패스는 럼블에 대한 표준 수정입니다. 로우패스는 의도적으로 어둡게 하거나 먹먹하게 만듭니다.

다이나믹스 (gain, compressor, limiter, gate)는 트랙의 레벨이 시간에 따라 어떻게 행동할지 결정합니다. 컴프레션은 크고 작은 소리 사이의 거리를 좁혀 작은 부분이 올라올 수 있게 합니다. 리미터는 천장입니다. 어떤 것도 형성하지 않으며, 아무것도 지나치지 않도록 보장합니다. 게이트는 임계값 아래의 것을 제거하며, 이것이 구문 사이의 룸 톤을 침묵시키는 방법입니다. gain은 평범한 레벨 단계이며, 트랙이 비켜서야 할 때 오토메이션 레인이 타는 것입니다.

비선형 (saturate, bitcrush)은 파형의 모양을 변경하여 원래 없었던 고조파를 추가합니다. 보정보다는 트랙에 특성이나 거친 느낌이 필요할 때 사용하십시오. 생성적이라는 점을 기억하십시오: 얇은 소스를 더 조밀하게 만들지만 더 깨끗하게 만들지는 않습니다.

시간 기반 (delay, reverb, chorus, phaser)은 트랙을 공간에 배치하거나 너비를 부여합니다. 이들은 믹스를 가장 쉽게 망칠 수 있는 것들입니다. 테일이나 디튠된 복사본은 음성이 필요한 동일한 공간을 차지하기 때문입니다. 다른 것 뒤에 있어야 하는 것에 사용하고, 웻 양을 단독으로 들을 때 괜찮게 들리는 것보다 낮게 유지하십시오.

체인은 직렬입니다: 각 이펙트는 이전 이펙트가 생성한 것을 처리합니다. 따라서 교정 필터링은 초기에, 특성은 중간에, 리미터는 실제로 천장 역할을 할 수 있도록 마지막에 배치됩니다.

보이스오버 캐브

해결하는 문제. 음성 아래의 배경음악은 음성을 따라가기 어렵게 만듭니다. 본능은 전체 배경음악을 덕킹하는 것이며, 이는 작동하지만 배경음악의 모든 존재감을 희생합니다. 음악은 전체 보이스오버 동안 축 늘어집니다. 그러나 음성은 전체 스펙트럼이 필요하지 않습니다. 실제로 점유하는 몇 개의 대역만 필요합니다. 캐브는 그것들만 가져가고 배경음악은 저음과 고음을 유지하므로, 음성이 여전히 알아들을 수 있는 동안 음악은 여전히 음악입니다.

이펙트가 아니라 관계입니다. 설정은 _배경음악_에 있습니다. 처리되는 트랙이며, 사이드체인 컴프레서가 정확히 하는 것처럼 듣고 있는 음성의 이름을 지정합니다: 작아지는 트랙을 선택하고 무엇이 작아지게 하는지 선택합니다. 절대 음성 트랙에 캐브를 넣지 마십시오. 스스로에 대해 캐브되는 음성은 미묘한 믹스 선택이 아니라 버그입니다.

하나가 아닌 모든 음성. sources는 목록입니다. 배경음악은 일반적으로 전체 시퀀스 아래에서 실행되기 때문입니다. 내레이터, 인터뷰 답변, 두 번째 발표자. 이들은 측정되기 전에 배경음악 자체의 클록에 합산됩니다(mixCarveSources). 따라서 하나의 분석이 모든 것을 포함합니다: 대역은 거기에 있는 모든 음성에서 나오며, 엔벨로프는 그 중 어떤 것이든 발생하는 곳에서 올라갑니다. 배경음악이 재생되는 동안 재생되지 않는 음성은 제외됩니다. 배경음악을 마스킹할 수 없기 때문입니다.

하나의 손잡이. strength는 0..1이며 모든 것을 파생시킵니다: 얼마나 깊이 자를지, 몇 개의 대역, 얼마나 넓게, 명료도를 음성 원래 에너지보다 얼마나 선호할지, 레벨이 얼마나 떨어질 수 있는지, 음성 아래를 얼마나 목표로 할지. 이 여섯 가지는 실제 믹스에서 함께 움직입니다. 부드러운 캐브는 덕킹이 거의 없는 적은 수의 대역에서 얕은 컷이며, 강한 캐브는 더 많은 대역에서 더 깊습니다. 따라서 그것들은 carveProfile에 한 번 작성된 하나의 관계입니다. 기본값은 0.25입니다. 세 개의 대역에서 6 dB 딥, 6 dB의 레벨 여유를 가지며, 구멍처럼 들리지 않으면서 들을 수 있습니다. 0.5에서 딥은 10 dB에 도달하며, 이는 캐브가 음성을 위한 공간이 아닌 이펙트로 들리기 시작하는 지점입니다. 그 이상은 조용한 음성 아래 큰 배경음악을 위한 의도적인 영역입니다. 0은 스펙트럴 전용입니다. 하나의 대역, 레벨 매치가 전혀 없습니다.

기본적으로 캐브. 내레이션 아래에서 재생되는 배경음악은 캐브를 원합니다. 시간이 있다면 마무리 단계가 아닙니다. 두 트랙을 배치하고 아래 명령을 실행한 다음 들어보십시오. 음악이 아래에 있을 내레이션이 없는 경우(뮤직 비디오, 타이틀 카드, 트랙에 맞춘 몽타주 컷)에만 건너뛰십시오.

항상 음성을 따릅니다. 정적 모드는 없습니다. 고정된 깊이는 모든 일시 정지를 통해 배경음악을 얇게 만듭니다. 둘 다 들어본 후에는 선택의 여지가 없습니다.

[원문이 잘려서 여기서부터는 번역되지 않았습니다. 전체 문서의 나머지 부분은 이 패턴을 따라야 합니다.]

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

MattiaIppoliti/tia-skills

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

MattiaIppoliti/tia-skills

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

MattiaIppoliti/tia-skills

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

MattiaIppoliti/tia-skills

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

MattiaIppoliti/tia-skills

Drive the Remotion CLI development loop: scaffold, studio, type-check, compositions, still probes, single and batch render, bundle, Lambda and Cloud Run rendering, benchmark, versions, upgrade, and GPU checks. Also use when diagnosing a build or render failure, or when looking for a capability the retired HyperFrames CLI used to own.

MattiaIppoliti/tia-skills

The composition contract for building one renderable Remotion project. Use for project structure, `<Composition>` registration, `<Sequence>` timing, layer/track ordering, scene components, props and schemas, framework-owned media playback, deterministic-render rules, and validation. Also covers Tailwind projects and the STORYBOARD.md / SCRIPT.md plan formats. Read before writing composition code.

관련 스킬