STILL CODING / WORK 07
Guitar Auto-Strum
Music tool / 02
스트로크는 앱에게, 연주는 당신에게 맡기는 브라우저 기타 자동 반주
실시간 코드 전환과 곡 코드 차트 반주, 두 가지 방식으로 반주합니다. 키·박자·리듬·템포·스윙과 스트럼 패턴을 고르고, 물리 모델링으로 만든 어쿠스틱 기타 소리를 지판 화면과 함께 듣습니다.
00 / SEE IT PLAY
11초로 보는
사용법.
코드 버튼(C · G · Am · F)만 누르면 리듬은 앱이 이어 칩니다. 위쪽 지판에 지금 누르는 코드의 운지가 표시됩니다. 소리를 들으려면 영상의 음소거를 해제하세요.
01 / FOR WHOM
누구를 위한
도구인가요?
노래하거나 연습하거나 곡을 만들 때 기타 반주가 필요한 사람
02 / START IN THREE STEPS
처음이라면
이렇게 시작하세요.
- 01
반주 방식을 고릅니다. 실시간 코드 전환 또는 곡 코드 차트로 시작합니다.
- 02
키·박자·리듬·템포와 기타 음색을 정합니다.
- 03
재생하며 지판과 코드를 확인하고, 필요한 마디는 반복 연습합니다.
03 / DATA & LIMITS
사용 전에
알아둘 것.
회원가입 없이 쓸 수 있고, 만든 작업은 클라우드로 올라가지 않고 이 기기에서만 처리됩니다. 저장과 권한 처리의 자세한 범위는 앱의 개인정보처리방침(https://guitar-play.still-coding.cc/privacy/)을 기준으로 합니다.
04 / FAQ
자주 묻는
질문.
어떤 방식으로 반주할 수 있나요?
코드를 실시간으로 바꾸는 라이브 모드와, 구간과 반복이 있는 곡 코드 차트 모드가 있습니다.
설치하거나 가입해야 하나요?
설치나 회원가입 없이 브라우저에서 바로 쓸 수 있으며, 오프라인 사용을 지원하는 PWA입니다.
기타 소리는 녹음 샘플인가요?
미리 녹음한 샘플이 아니라 물리 모델링으로 실시간 합성한 어쿠스틱 기타 소리이며, 클래식·스틸·일렉트릭 음색과 25–150% 재생 속도를 고를 수 있습니다.
사용법은 어디에 있나요?
앱의 사용 가이드(https://guitar-play.still-coding.cc/guide/)에서 확인할 수 있습니다.
05 / BEHIND THE BUILD
만들면서
배운 것.
- 샘플 없이 기타 소리 만들기 — 줄을 계산해서 강철과 나일론을 구별하기
Guitar Auto-Strum은 녹음된 기타 음원 없이 코드 계산만으로 기타 줄 소리를 만듭니다. 사인파 일곱 개를 더하던 방식이 강철과 나일론을 구별하지 못한 이유, Karplus-Strong 도파관으로 바꾼 구조, 음이 어긋나지 않게 지연을 맞춘 방법, 소리를 Node에서 측정하는 테스트를 정리합니다.
- '소리가 안 바뀌었다'를 어떻게 증명하나 — 모든 리듬을 실제 엔진에 돌려 기록하는 골든 테스트
Guitar Auto-Strum은 모든 시스템 리듬을 실제 트랜스포트에 돌려, 엔진이 예약한 모든 음의 시각·세기·줄을 파일로 기록하고 비교합니다. 가짜 오디오 하네스, 결정적인 시간 진행, 의도한 변경일 때만 갱신하는 규칙, 스냅샷과 별개로 두는 성질 검사를 정리합니다.
- 카포를 마이너스로 — 진짜 카포에는 없는 방향을 넣은 이유
Guitar Auto-Strum의 카포는 −5에서 +7까지 움직입니다. 실제 카포로는 불가능한 낮추는 방향을 넣은 이유, 범위를 손과 귀의 한계로 정한 방법, 그리고 'C (→D)'처럼 두 이름을 함께 보여 주는 표기를 코드 주석과 함께 정리합니다.
- 정확한 박자는 기계처럼 들린다 — 스윙과 사람 같은 어긋남, 그리고 '랜덤이 랜덤이면 안 되는' 이유
Guitar Auto-Strum의 스윙과 휴머나이즈 기능이 어떻게 박자를 일부러 흔드는지 정리합니다. 뒷박을 늦추는 스윙 비율, 타이밍·세기·스트럼 속도의 미세한 변화, 그리고 난수 대신 '스트로크 번호와 시드로 정해지는 값'을 쓴 이유를 코드로 설명합니다.
- 박자가 흔들리지 않는 자동 반주 — 타이머는 흔들리고 오디오 시계는 흔들리지 않는다
브라우저의 setInterval로 음을 직접 울리면 박자가 흔들립니다. Guitar Auto-Strum이 오디오 시계 위에 음을 미리 예약하는 look-ahead 스케줄러로 박자를 지키고, 코드 변경과 마디 경계에서 생기는 문제를 다룬 방법을 코드로 정리합니다.