소리는 공기 압력의 진동이고, 컴퓨터는 이를 초당 수만 개의 숫자(샘플)로 저장·재생한다.
브라우저에는 이를 직접 코드로 만들어낼 수 있는 Web Audio API가 내장되어 있다.
OscillatorNode가 파형을 만들고, GainNode가 음량을 시간에 따라 조절하며,
AnalyserNode로 실시간 파형을 눈으로 확인할 수 있다. 아래에서 직접 소리를 만들어보자.
파형 & 실시간 오실로스코프
440 Hz
ADSR 엔벨로프
Attack 0.05sDecay 0.20sSustain 0.60Release 0.50s
미니 피아노 — 눌러서 노트 On/Off 체험
건반을 누르면(mousedown) 오실레이터가 시작되며 게인이 Attack → Decay → Sustain 순서로 올라가고,
손을 떼면(mouseup) 현재 게인 값에서 Release 구간을 따라 0으로 줄어든 뒤 오실레이터가 정지한다.
갑자기 0으로 끊으면 "딸깍" 클릭 잡음이 나기 때문에, 실제 신디사이저도 항상 이렇게 부드러운 램프로 음량을 바꾼다.