"오디오 분석은 어렵거나 쉬운 게 아냐. 경사로야. 그러니 완만한 쪽에서 지어."
단일 덩어리가 아니라 스펙트럼
'오디오 분석'을 난이도 하나짜리 거대한 문제로 뭉뚱그리는 게 치명적인 실수야. 실제로는 스펙트럼이고 양 끝이 완전히 다르게 움직여.
Tier A (자동, 성숙) Tier B (반자동, 거침)
------------------- ---------------------
템포 / 비트 그리드 note-for-note 솔로 채보
키 (리드의 모든 음, 정확히)
코드 진행
섹션 (벌스 / 코러스)
stem 분리 (Demucs)
-> 풀린 MIR, 엔진의 심장에 -> Capo조차 반자동으로 함
Pippa 제안, 사람 확정
절대 하드 의존성이 아님
Tier A: 위에 지을 만큼 풀렸어
템포, 키, 코드, 섹션, stem 분리는 성숙한 음악정보검색(MIR)이야. Capo가 오디오에서 코드와 키를 뽑아 출하할 만큼 잘 해낸다는 살아 있는 증명이기도 해. 그래서 Bonfire는 이 영역에서 성숙한 오픈소스(librosa, madmom, essentia, Demucs)를 재사용하고 엔진의 심장에 둬. 완벽하지는 않아. 그 한계는 human-in-the-loop 레슨에서 다뤄. 그래도 핵심 기능의 무게를 받칠 만큼은 단단해.
Tier B. 진짜지만 무게는 절대 안 받쳐
빠른 리드의 모든 음을 찾아내는 note-for-note 채보는 정말 어려워. Capo조차 스펙트로그램에서 사람이 음을 고르는 반자동 방식으로 해. Bonfire에서는 Tier B가 Pippa 제안과 사람 확정으로 돕는 기능일 수는 있어도, 앱의 가치가 거기에 의존하면 절대 안 돼. 핵심 기능이 완벽한 Tier B 출력을 요구하는 순간 앱은 출하할 수 없게 돼.
Guitopia가 치른 수업료
Bonfire의 죽은 전작 Guitopia는 티어를 한데 뭉쳤어. audio-sync와 pitch-detection이라는 Tier B 작업에 야심을 걸었고 6일 만에 아무것도 내지 못했어. 가장 어려운 부분에 프로젝트를 건 탓에 그대로 얼어붙은 거야. Bonfire는 반대쪽에서 출발해. 가치 있는 기능은 전부 Tier A 위에 짓고, Tier B는 실패해도 앱을 끌어내리지 않는 보너스로 둬.