박자가 흔들리지 않는 자동 반주 — 타이머는 흔들리고 오디오 시계는 흔들리지 않는다
브라우저의 setInterval로 음을 직접 울리면 박자가 흔들립니다. Guitar Auto-Strum이 오디오 시계 위에 음을 미리 예약하는 look-ahead 스케줄러로 박자를 지키고, 코드 변경과 마디 경계에서 생기는 문제를 다룬 방법을 코드로 정리합니다.
TOPIC / ARCHIVE
Music에 관한 기록과 분석.
4편의 기록
브라우저의 setInterval로 음을 직접 울리면 박자가 흔들립니다. Guitar Auto-Strum이 오디오 시계 위에 음을 미리 예약하는 look-ahead 스케줄러로 박자를 지키고, 코드 변경과 마디 경계에서 생기는 문제를 다룬 방법을 코드로 정리합니다.
Guitar Auto-Strum의 카포는 −5에서 +7까지 움직입니다. 실제 카포로는 불가능한 낮추는 방향을 넣은 이유, 범위를 손과 귀의 한계로 정한 방법, 그리고 'C (→D)'처럼 두 이름을 함께 보여 주는 표기를 코드 주석과 함께 정리합니다.
Guitar Auto-Strum의 스윙과 휴머나이즈 기능이 어떻게 박자를 일부러 흔드는지 정리합니다. 뒷박을 늦추는 스윙 비율, 타이밍·세기·스트럼 속도의 미세한 변화, 그리고 난수 대신 '스트로크 번호와 시드로 정해지는 값'을 쓴 이유를 코드로 설명합니다.
Songnote(Piano Play)가 쓰는 ABC 악보 표기법의 기본 문법을 예제로 익히고, 오디오 샘플 없이 Web Audio 가산 합성으로 피아노 계열 소리를 만드는 방법을 설명합니다.