STILLCODING

STILL CODING / NOTES

Guitar Auto-Strum 개발 노트

스트로크는 앱에게, 연주는 당신에게 맡기는 브라우저 기타 자동 반주

실시간 코드 전환과 곡 코드 차트 반주, 두 가지 방식으로 반주합니다. 키·박자·리듬·템포·스윙과 스트럼 패턴을 고르고, 물리 모델링으로 만든 어쿠스틱 기타 소리를 지판 화면과 함께 듣습니다.

앱 열기 Guitar Auto-Strum 소개 모든 노트 보기
  1. '소리가 안 바뀌었다'를 어떻게 증명하나 — 모든 리듬을 실제 엔진에 돌려 기록하는 골든 테스트

    Guitar Auto-Strum은 모든 시스템 리듬을 실제 트랜스포트에 돌려, 엔진이 예약한 모든 음의 시각·세기·줄을 파일로 기록하고 비교합니다. 가짜 오디오 하네스, 결정적인 시간 진행, 의도한 변경일 때만 갱신하는 규칙, 스냅샷과 별개로 두는 성질 검사를 정리합니다.

  2. 샘플 없이 기타 소리 만들기 — 줄을 계산해서 강철과 나일론을 구별하기

    Guitar Auto-Strum은 녹음된 기타 음원 없이 코드 계산만으로 기타 줄 소리를 만듭니다. 사인파 일곱 개를 더하던 방식이 강철과 나일론을 구별하지 못한 이유, Karplus-Strong 도파관으로 바꾼 구조, 음이 어긋나지 않게 지연을 맞춘 방법, 소리를 Node에서 측정하는 테스트를 정리합니다.

  3. 정확한 박자는 기계처럼 들린다 — 스윙과 사람 같은 어긋남, 그리고 '랜덤이 랜덤이면 안 되는' 이유

    Guitar Auto-Strum의 스윙과 휴머나이즈 기능이 어떻게 박자를 일부러 흔드는지 정리합니다. 뒷박을 늦추는 스윙 비율, 타이밍·세기·스트럼 속도의 미세한 변화, 그리고 난수 대신 '스트로크 번호와 시드로 정해지는 값'을 쓴 이유를 코드로 설명합니다.

  4. 카포를 마이너스로 — 진짜 카포에는 없는 방향을 넣은 이유

    Guitar Auto-Strum의 카포는 −5에서 +7까지 움직입니다. 실제 카포로는 불가능한 낮추는 방향을 넣은 이유, 범위를 손과 귀의 한계로 정한 방법, 그리고 'C (→D)'처럼 두 이름을 함께 보여 주는 표기를 코드 주석과 함께 정리합니다.

  5. 박자가 흔들리지 않는 자동 반주 — 타이머는 흔들리고 오디오 시계는 흔들리지 않는다

    브라우저의 setInterval로 음을 직접 울리면 박자가 흔들립니다. Guitar Auto-Strum이 오디오 시계 위에 음을 미리 예약하는 look-ahead 스케줄러로 박자를 지키고, 코드 변경과 마디 경계에서 생기는 문제를 다룬 방법을 코드로 정리합니다.