Chapter 14

연주 스튜디오

마지막 장은 작업실입니다. 지금까지는 책이 들려주고 여러분이 따라 쳤다면, 이제는 여러분이 치고 컴퓨터가 듣습니다. 디지털 피아노나 MIDI 건반을 브라우저에 연결하고, 손과 귀 사이의 지연이 어디서 생기는지 이해한 다음, 카운트인과 메트로놈에 맞춰 녹음하고, 피아노 롤에서 타이밍을 들여다보고, 양자화해서 악보로 옮기고, MIDI 파일과 WAV 파일로 내보냅니다. 마지막으로 드럼·베이스·왼손 반주가 도는 잼 스테이션에서 이 책의 모든 것을 한꺼번에 쓰고, 그 연습을 기록으로 남기는 법까지 다룹니다.

MIDI 건반 연결하기

MIDI(Musical Instrument Digital Interface)는 1983년에 나온 전자 악기 사이의 통신 규약입니다. 중요한 점은 MIDI가 소리가 아니라 동작을 보낸다는 것입니다. 디지털 피아노의 건반을 누르면 "60번 건반을 세기 100으로 눌렀다"는 3바이트 메시지가 나가고, 소리는 받는 쪽(여기서는 이 책의 가상 피아노)이 만듭니다. 그래서 같은 MIDI 연주를 다른 음색으로 다시 들을 수 있고, 박자를 바꾸거나 틀린 음만 고칠 수도 있습니다. MIDI의 원리와 역사는 MusicBook의 MIDI 장에 자세히 있습니다.

그림 14-1. 피아노에서 쓰는 세 가지 MIDI 메시지. 첫 바이트(상태, 최상위 비트 1)의 위 4비트가 종류(9 = 노트 온, 8 = 노트 오프, B = 컨트롤 체인지), 아래 4비트가 채널(0–15)이다. 뒤따르는 데이터 바이트는 최상위 비트가 0이라 0–127만 쓴다. 벨로시티 0인 노트 온은 노트 오프로 취급한다. 댐퍼 페달은 CC 64번이고 값 64 이상이면 '밟음'이다.

벨로시티는 건반이 눌리는 속도를 0–127로 잰 값입니다. 건반 안의 두 접점(또는 광센서)이 차례로 닿는 시간 간격으로 측정하므로, 엄밀히는 '힘'이 아니라 '속도'입니다(3장의 해머 속도와 같은 개념). 사람마다, 건반마다 손의 무게가 달라서 같은 ff로 쳐도 나오는 숫자가 다릅니다. 그래서 대부분의 디지털 피아노와 소프트웨어에는 벨로시티 곡선(Velocity curve)이 있습니다. 입력 vin∈[0,1]v_\text{in}\in[0,1]을 vout=vinγv_\text{out} = v_\text{in}^{\gamma}로 바꾸면 γ<1\gamma<1은 가볍게(약하게 쳐도 크게), γ>1\gamma>1은 무겁게(세게 쳐야 크게) 만듭니다.

t전송=3×10 비트31 250 비트/초≈0.96 ms,vout=vinγ,CC64≥64⇒페달 밟음t_\text{전송} = \frac{3 \times 10\ \text{비트}}{31\,250\ \text{비트/초}} \approx 0.96\ \text{ms}, \qquad v_\text{out} = v_\text{in}^{\gamma}, \qquad \text{CC64} \ge 64 \Rightarrow \text{페달 밟음}
전통적인 5핀 DIN MIDI는 초당 31,250비트로, 1바이트를 시작·정지 비트 포함 10비트로 보낸다. 열 손가락으로 화음을 동시에 치면 메시지 열 개가 차례로 나가므로 마지막 음은 약 10 ms 늦는다. USB MIDI는 이보다 훨씬 빠르다. 하프 페달을 지원하는 건반은 CC64를 0–127 사이의 연속값으로 보낸다.

브라우저는 Web MIDI(Web MIDI API)로 USB에 꽂힌 건반을 읽을 수 있습니다. Chrome·Edge 같은 Chromium 계열 브라우저와 최근의 Firefox에서 동작하고, Safari(아이폰·아이패드 포함)는 지원하지 않습니다. 또 보안상 https 페이지에서만, 사용자가 허락했을 때만 열립니다. 아래 모니터는 건반에서 들어오는 메시지를 16진수 그대로 보여 줍니다. MIDI 건반이 없어도 화면 건반을 누르면 똑같은 형식의 메시지를 만들어 보여 주니, 구조를 익히는 데는 충분합니다.

SIMULATOR

MIDI 모니터: 메시지 · 벨로시티 곡선 · 서스테인 페달

MIDI 건반을 USB로 연결한 뒤 'MIDI 연결'을 누르세요. 없으면 화면 건반으로 해 보세요.
벨로시티 곡선
화면 건반: 건반 앞쪽(아래)을 누를수록 셉니다. Space = 서스테인 페달(CC64).
입력 장치없음
마지막 벨로시티(입력 → 출력)—
서스테인 CC640 뗌
'MIDI 연결'은 브라우저의 허락 창을 띄웁니다. 연결된 건반은 이 장의 모든 시뮬레이터 중 마지막으로 연결 버튼을 누른 곳으로 소리가 갑니다(벨로시티 곡선은 모두에 적용). 지원하지 않는 브라우저에서는 안내 문구만 나오고 나머지는 화면 건반으로 동작합니다. 해볼 것: ① 같은 세기로 치면서 곡선을 바꿔 출력 점이 어디로 가는지 보기 ② 페달을 밟고 뗄 때 CC64 값이 0/127로만 오는지, 중간값(하프 페달)도 오는지 확인 ③ 건반을 '쿵' 하고 칠 때 노트 온과 노트 오프 사이 시간을 로그로 보기. 모델: 그래프의 곡선은 vγv^\gamma, 점은 최근 입력.
연습법 · 내 손에 맞는 곡선 찾기 디지털 피아노의 곡선 설정은 '손가락 힘 기르기'와 '소리 내기 편함' 사이의 선택입니다. 어쿠스틱 피아노로 옮겨 갈 계획이라면 너무 가벼운 곡선은 피하세요. 테스트: 눈을 감고 pppp–mfmf–ffff를 다섯 번씩 친 뒤 로그의 벨로시티를 봅니다. 세 무리가 겹치지 않고 각각 ±10 안쪽에 모이면 곡선이 손에 맞는 것이고, ffff가 127에 몰려 붙으면 너무 가볍습니다.

지연: 손과 귀 사이의 몇 밀리초

어쿠스틱 피아노에서 건반을 누른 뒤 해머가 현을 치기까지는 수 ms–수십 ms가 걸리고(여리게 칠수록 늦습니다), 소리가 1 m를 날아가는 데 약 2.9 ms가 걸립니다. 피아니스트는 이 지연에 평생 적응해 있어서 느끼지 못합니다. 디지털 환경에서는 여기에 새로운 지연이 더해집니다. MIDI 전송, 운영체제의 입력 처리, 소리를 합성하는 오디오 버퍼, 출력 장치(특히 블루투스 이어폰은 100–200 ms에 이르기도 합니다)가 차례로 시간을 잡아먹습니다.

그림 14-2. 건반에서 귀까지의 지연 사슬(대략의 값). 막대 길이는 ms에 비례. 유선 헤드폰과 작은 버퍼를 쓰면 전체가 10 ms 안팎에 들어오지만, 블루투스 출력 하나가 나머지를 모두 합친 것보다 길 수 있다. 연주용으로는 유선 출력이 거의 필수다.
t버퍼=Nfs,128/48 000≈2.7 ms,1024/44 100≈23 ms,d환산=343 m/s×tt_\text{버퍼} = \frac{N}{f_s}, \qquad 128/48\,000 \approx 2.7\ \text{ms}, \qquad 1024/44\,100 \approx 23\ \text{ms}, \qquad d_\text{환산} = 343\ \text{m/s} \times t
NN: 버퍼 크기(샘플), fsf_s: 샘플링 주파수. 오디오 장치는 버퍼 하나를 채우는 동안 다음 버퍼를 재생하므로 실제 지연은 보통 버퍼 2–3개 분량이다. 마지막 식은 지연을 '스피커에서 그만큼 떨어져 앉은 것'으로 바꿔 본 거리.

얼마나 늦어야 느껴질까요? 흔히 10 ms 안쪽은 대부분 눈치채지 못하고, 20–30 ms를 넘으면 '건반이 무겁다', '소리가 따라온다'는 느낌이 들기 시작한다고 합니다. 빠른 패시지나 스타카토일수록 민감합니다. 흥미로운 사실은 사람이 메트로놈에 맞춰 손가락을 두드릴 때 보통 클릭보다 수십 ms 먼저 두드린다는 것입니다(음의 비동기, negative mean asynchrony). 뇌가 손끝의 촉각과 귀의 소리가 도착하는 시간 차이를 미리 보정하기 때문으로 설명됩니다. 아래 실험에서 지연을 일부러 늘려 이 보정이 어떻게 무너지는지 느껴 보세요.

SIMULATOR

지연 체험기와 탭 테스트

샘플링 주파수
탭 테스트: 클릭에 맞춰 아무 건반(또는 A 키)을 누르세요.
버퍼 하나 · 장치 보고값—
추정 총 지연(거리 환산)—
탭 평균 ± 표준편차—
건반을 누르면 눌림 표시는 바로, 소리는 '추가 지연'만큼 늦게 납니다. 버퍼·샘플링 주파수 손잡이는 계산용이며 실제 장치 설정은 바꾸지 않습니다('장치 보고값'은 브라우저가 알려 주는 출력 지연, 지원하지 않으면 —). 탭 테스트는 90 BPM 클릭 16번(처음 4번은 준비)에 맞춰 누른 시각과 클릭의 차이를 그래프로 그립니다(음수 = 먼저 누름). 해볼 것: ① 지연 0에서 탭 테스트 → 평균이 음수인지 확인 ② 지연 100 ms로 다시 → 손이 자동으로 더 일찍 누르는지 ③ 지터 30 ms에서 빠른 음계를 쳐 보고 일정한 지연보다 더 거슬리는지. 모델: 지연은 오디오 시계에 음을 늦게 예약해 흉내 낸 것.

녹음: 카운트인에서 악보까지

자기 연주를 녹음해 듣는 것은 가장 강력한 피드백입니다. 연주하는 동안 뇌는 손을 움직이는 데 바빠서 귀가 들은 것을 절반쯤 흘려 버립니다. MIDI 녹음은 여기에 '보는' 피드백을 더합니다. 음 하나하나의 시작 시각, 길이, 세기가 숫자로 남기 때문입니다. 녹음의 흐름은 다음과 같습니다. ① 카운트인: 녹음 전에 한두 마디 클릭을 들려주어 템포를 몸에 넣습니다. ② 녹음: 메트로놈에 맞춰 칩니다. ③ 피아노 롤(Piano roll): 가로 = 시간, 세로 = 음높이인 그림으로 결과를 봅니다. 자동 피아노의 구멍 뚫린 종이 두루마리에서 온 이름입니다. ④ 양자화(Quantization): 음의 시작을 가장 가까운 격자(8분음표, 16분음표 …)로 옮깁니다. ⑤ 악보 변환: 양자화된 음을 음표로 적습니다.

그림 14-3. 8분음표 격자에 대한 양자화. 위 = 녹음된 그대로(사람의 흔들림), 가운데 = 강도 50%(격자 쪽으로 반만), 아래 = 강도 100%(격자에 딱). 점선은 격자, 화살표는 각 음이 움직인 거리. 강도를 100% 미만으로 두면 '틀린' 흔들림은 줄이면서 사람다운 결은 남길 수 있다.
t′=t+s (g⋅round⁡(t/g)−t),erms=1n∑i(ti−g⋅round⁡(ti/g))2t' = t + s\,\big(g\cdot\operatorname{round}(t/g) - t\big), \qquad e_\text{rms} = \sqrt{\frac{1}{n}\sum_i \big(t_i - g\cdot\operatorname{round}(t_i/g)\big)^2}
tt: 음의 시작(박), gg: 격자(1/2박 = 8분음표, 1/4박 = 16분음표), s∈[0,1]s\in[0,1]: 강도. ermse_\text{rms}: 격자에서 벗어난 정도(타이밍 오차의 제곱평균제곱근). 격자를 너무 굵게 잡으면 16분음표가 8분음표로 뭉개지고, 너무 잘게 잡으면 흔들림이 그대로 남는다. 격자 선택이 곧 "이 곡에서 가장 짧은 음표가 무엇인가"에 대한 가정이다.
SIMULATOR

녹음기: 카운트인 → 피아노 롤 → 양자화 → 악보 → 재생

—
녹음을 누르면 카운트인 뒤에 녹음이 시작됩니다.
카운트인
녹음 길이
양자화 격자
음 수0
타이밍 오차 rms (원본 → 양자화)—
벨로시티 범위—
녹음: 화면 건반(C4–C6), 컴퓨터 키보드 A–K(Z/X 옥타브, Space 페달) 또는 MIDI 건반. 녹음은 정한 길이가 지나면 저절로 끝나고, 도중에 ■ 버튼으로 멈출 수도 있습니다. 피아노 롤의 흐린 막대 = 녹음 원본, 진한 막대 = 양자화 결과. 격자·강도를 바꾸면 롤·악보·재생이 곧바로 바뀝니다. 녹음이 없으면 「환희의 송가」(베토벤) 첫 네 마디를 일부러 흔들리게 친 예시를 불러와 보세요. 악보 변환은 단순화한 것입니다: 가온 다 이상은 높은음자리표, 아래는 낮은음자리표, 같은 시각의 음은 화음으로 묶고, 마디를 넘는 음은 마디 끝에서 자르며, 셋잇단 격자는 16분음표로 근사해 적습니다. 이 녹음은 아래 '파일로 남기기'에서 저장할 수 있습니다.
연습법 · 녹음은 '들을 거리'를 정하고 무작정 녹음하고 들으면 "별로네"로 끝납니다. 듣기 전에 하나만 정하세요: ① 박 — 피아노 롤에서 음 시작이 격자 앞에 몰리는지(서두름) 뒤에 몰리는지(끌림) ② 셈여림 — 벨로시티 범위가 20 이하라면 표정이 없다는 뜻 ③ 레가토 — 롤에서 막대 사이에 틈이 보이는지. 같은 4마디를 하루 세 번, 일주일 녹음해 rms 오차가 줄어드는지 기록해 보세요(아래 연습 기록).

양자화의 득과 실: 기계 같은 연주, 사람 같은 연주

양자화를 100%로 걸면 박은 완벽해지지만 음악은 대개 더 나빠집니다. 사람의 연주가 격자에서 벗어나는 방식은 무작위 잡음만이 아니기 때문입니다. 숙련된 피아니스트도 음 시작이 수 ms–수십 ms씩 흔들리지만, 그 상당 부분은 의도된 구조입니다. 프레이즈 끝에서 느려지고(프레이즈 끝 늘이기), 마디의 첫 박을 조금 세게 치고, 선율의 정점을 향해 점점 세졌다가 풀립니다. 연주 표현을 측정한 연구들(예: 레프(B. H. Repp)의 피아노 연주 분석)은 서로 다른 연주자들도 이런 타이밍 곡선의 큰 모양을 놀랄 만큼 비슷하게 공유한다는 것을 보여 주었습니다.

그래서 음악 소프트웨어의 휴머나이즈(Humanize) 기능, 즉 양자화한 음에 무작위 흔들림을 더하는 기능은 반쪽짜리 해법입니다. 무작위 흔들림은 '기계 같음'을 줄여 줄 뿐 '음악다움'을 만들지는 못합니다. 아래 실험에서 바흐 시대의 「미뉴에트 G장조」(페촐트 작, 공유 저작물) 첫 네 마디로 두 종류의 차이를 비교해 보세요. 무작위 흔들림 σ\sigma만 올린 소리와, 흔들림은 0으로 두고 박 강세·프레이즈 셈여림·끝 늘이기 같은 구조만 넣은 소리 가운데 어느 쪽이 더 사람 같은가요?

ti연주=ti악보+δ구조(ti)⏟끝 늘이기 등+σzi⏟무작위,zi∼N(0,1)t_i^{\text{연주}} = t_i^{\text{악보}} + \underbrace{\delta_\text{구조}(t_i)}_{\text{끝 늘이기 등}} + \underbrace{\sigma z_i}_{\text{무작위}}, \qquad z_i \sim \mathcal{N}(0,1)
δ구조\delta_\text{구조}: 프레이즈를 따라 매끄럽게 변하는 의도된 어긋남, σ\sigma: 무작위 흔들림의 크기(ms). 양자화는 둘을 구별하지 못하고 함께 지운다.
SIMULATOR

휴머나이즈 비교기: 무작위 흔들림 vs 구조적 표현

타이밍 어긋남 rms—
벨로시티 범위—
마지막 마디 늘어남—
그래프: 막대 = 음마다 악보 시각에서 어긋난 정도(ms, 위 = 늦게), 점 = 벨로시티(위 = 세게). 오른손은 원곡 선율, 왼손은 이 책이 단순화한 반주(점2분음표)입니다. 재생 중에도 설정이 다음 음부터 반영됩니다. 해볼 것: ① '기계'로 듣기 ② σ = 30 ms만 올려 듣기(서툰 느낌) ③ σ = 0으로 두고 세 가지 구조를 모두 켜기(음악적인 느낌) ④ 구조 + σ = 8 ms. 모델: 정규분포 흔들림(시드 고정), 끝 늘이기는 마지막 마디에서 박 간격이 점점 길어지는 2차 곡선.

파일로 남기기: MIDI와 WAV

녹음은 두 가지 파일로 남길 수 있습니다. 표준 MIDI 파일(Standard MIDI File, SMF, .mid)은 연주 '동작'의 기록입니다. 수 KB로 아주 작고, 악보 프로그램이나 DAW에서 열어 음을 고치거나 다른 악기로 바꿀 수 있습니다. WAV는 소리 그 자체, 즉 1초에 44,100번 잰 공기 압력의 숫자 열입니다. 어디서나 재생되지만 크고(16비트 모노 1분 ≈ 5.3 MB), 녹음된 소리를 '음 단위로' 고칠 수는 없습니다.

그림 14-4. 형식 0 표준 MIDI 파일의 구조. 머리 청크 MThd(형식, 트랙 수, 4분음표당 틱 수) 뒤에 트랙 청크 MTrk가 오고, 트랙은 '델타 시간 + 이벤트'의 연속이다. 델타 시간은 앞 이벤트로부터의 틱 수를 가변 길이 수(VLQ)로 적는다. 템포(메타 이벤트 FF 51)는 4분음표 하나의 길이를 마이크로초로 준다.
VLQ(n):n=∑kck 128k,  각 바이트=ck (+128 뒤에 더 있으면),480→83 60,템포=60 000 000BPM μs\text{VLQ}(n): n = \sum_k c_k\,128^k,\ \ \text{각 바이트} = c_k\ (+128\ \text{뒤에 더 있으면}), \qquad 480 \to \texttt{83 60}, \qquad \text{템포} = \frac{60\,000\,000}{\text{BPM}}\ \mu\text{s}
480 = 3·128 + 96 → 첫 바이트 3 + 128 = 0x83, 둘째 96 = 0x60. 작은 델타(127 이하)는 1바이트로 끝나므로 촘촘한 연주도 파일이 작다. 120 BPM의 템포 값은 500,000 µs = 0x07A120.

아래 내보내기 도구는 이 장에서 마지막으로 만든 테이크(녹음기 또는 잼 스테이션)를 받아, 페이지 안에서 직접 SMF 바이트를 쓰고(작은 SMF 작성기), WAV는 OfflineAudioContext로 같은 가상 피아노 소리를 실시간보다 빠르게 '오프라인 렌더링'해서 만듭니다. 파일은 여러분의 컴퓨터로만 저장되고 어디에도 올라가지 않습니다.

SIMULATOR

내보내기: SMF 작성기와 WAV 오프라인 렌더러

아직 테이크가 없습니다. 위 녹음기나 아래 잼 스테이션에서 녹음하거나, '예시 테이크'를 넣으세요.
—
SMF 크기—
WAV 크기(16비트 모노 44.1 kHz)—
렌더링 시간 · 길이—
16진수 덤프 색: 주색 = 청크 이름(MThd·MTrk), 주황 = 길이·머리 정보, 초록 = 델타 시간, 진한 글자 = 이벤트(9n 노트 온, 8n 노트 오프, FF 메타). 처음 120바이트만 보여 줍니다. 저장한 .mid는 MuseScore 같은 악보 프로그램에서 열어 악보로 볼 수 있습니다. 렌더링은 음마다 피아노 소리를 합성하므로 몇 초 걸릴 수 있습니다. 모델: 형식 0, 채널 1, 4분음표당 480틱, WAV는 최대 진폭을 0.9로 맞춘 16비트 PCM.

잼 스테이션: 반주 루프 위에서 연주하기

이제 모든 것을 한곳에 모읍니다. 잼 스테이션은 여러분이 고른 키·진행·스타일·템포로 드럼·베이스·왼손 반주를 돌리고, 여러분은 오른손으로 선율을 즉흥 연주합니다. 건반에는 지금 코드의 구성음(빨강 = 근음, 청록 = 3·5·7도, 숫자는 코드 근음에서의 도수)과 고른 스케일의 음(테두리 원)이 표시되어, 어떤 음이 '착지하기 좋은 음'인지 보입니다. 13장에서 배운 질문–대답, 코드톤 착지, 9장의 진행, 6장의 음계를 모두 여기서 씁니다.

즉흥 연습에도 제약이 필요합니다. 한 번에 하나만 정하세요. (1) 코드톤만 써서 각 마디 첫 박에 근음 또는 3도 놓기 (2) 2마디 연주 + 2마디 쉼 (3) 4분음표 리듬만 (4) 한 음에서 시작해 반음 위·아래로만 움직이기. 그리고 ● 테이크 녹음으로 남기세요. 테이크의 '코드톤 적중률'은 친 음 가운데 그 순간 코드의 구성음 비율입니다. 높다고 좋은 연주는 아니지만, 코드를 듣고 있는지에 대한 좋은 지표입니다.

SIMULATOR

잼 스테이션: 키 · 진행 · 스타일 · 템포 · 테이크 녹음

1 · 1
—
마디 · 박 / 지금 코드
스타일
건반에 표시할 스케일
믹스
지금 코드 구성음 · 스케일—
테이크없음
코드톤 적중률—
▶ 반주로 진행이 반복되고 ■로 멈춥니다. 재생 중에도 키·진행·스타일·템포·믹스를 바꾸면 곧 반영됩니다(진행 길이가 바뀌면 처음부터). ● 테이크 녹음은 반주를 처음부터 다시 시작하며 녹음하고, 다시 누르면(또는 16바퀴 뒤) 끝납니다. 테이크는 피아노 롤에 그려지고 위의 '파일로 남기기'에서 MIDI·WAV로 저장할 수 있습니다. 오른손 연주: 화면 건반(C4–C6), 컴퓨터 키보드 A–K(Z/X 옥타브, Space 페달), MIDI 건반. 모델: 반주 피아노·사용자 피아노는 따로 울리는 두 대의 가상 피아노, 베이스는 MB.play 신스 베이스, 드럼은 MB.drum. 녹음 중에 템포를 바꾸면 테이크의 박 위치가 어긋납니다.
연습법 · 잼 15분 루틴 ① 3분: 반주 없이 오늘의 키 스케일과 코드톤(1–3–5–7) 오르내리기. ② 4분: 반주를 켜고 코드톤만, 마디 첫 박에 착지. ③ 4분: 스케일 전체로 질문–대답(2마디씩). ④ 4분: 테이크 녹음 한 번, 그리고 듣기. 들을 때는 "좋았던 2마디"를 하나 찾아 다음 날 그 2마디로 시작하세요. 자기 연주에서 출발하는 것이 가장 빠르게 '자기 소리'를 만드는 길입니다.

연습 기록과 목표

연습은 측정할 때 늘어납니다. GuitarBook 14장에서 다룬 의도적 연습의 네 요소(구체적 목표, 집중, 즉각적 피드백, 능력보다 조금 위)는 피아노에서도 똑같습니다. 연습 일지는 그중 '피드백'을 몇 주 단위로 늘려 줍니다. 무엇을 몇 분, 몇 BPM으로 했는지 한 줄씩 남기면, 정체된 곳과 늘어난 곳이 숫자로 드러납니다. 또 학습 연구는 한 번에 몰아서 하는 연습보다 나눠서 자주 하는 연습(간격 효과)이 오래 남는다는 것을 반복해서 보여 주었습니다. 주 2회 2시간보다 매일 20분이 낫다는 뜻입니다. 아래 일지의 '연속 연습일'은 이 규칙성을 재는 숫자입니다.

SIMULATOR

연습 일지: 기록 · 타이머 · 주간 목표

00:00
기록은 이 브라우저에만 저장됩니다(서버로 보내지 않음).
    막대 = 날마다 연습한 분, 점선 = 주간 목표 ÷ 7. 오늘은 진하게 표시됩니다.
    최근 7일 / 목표—
    연속 연습일—
    총 기록 · 총 시간—
    타이머를 멈추면 흐른 시간(분, 올림)이 '시간' 칸에 들어갑니다. 기록 옆의 × 로 하나씩 지울 수 있고, '모두 지우기'는 한 번 더 눌러야 실행됩니다. 기록은 브라우저 저장소(localStorage)에 남으며, 사생활 보호 모드처럼 저장소를 쓸 수 없는 환경에서는 이 탭을 닫으면 사라집니다(안내 문구가 표시됨). 다른 기기로 옮기려면 JSON으로 내보내 보관하세요.
    연습법 · 목표는 '과정'으로 "이번 달에 쇼팽 녹턴 완성"은 결과 목표라 매일의 행동을 알려 주지 않습니다. 대신 과정 목표를 쓰세요: "주 5일, 하루 25분, 그중 10분은 왼손만". 주간 목표는 지킬 수 있는 수준의 80%로 잡고, 3주 연속 달성하면 10–15% 올립니다. 템포 사다리(12장)와 같은 원리입니다.

    다음 단계

    이 책을 끝까지 왔다면 여러분은 피아노가 어떻게 소리를 내는지(현·해머·향판·비조화성), 악보를 어떻게 읽는지, 손가락을 어떻게 쓰는지, 화음과 진행이 어떻게 엮이는지, 그리고 그것을 여러 스타일로 어떻게 반주하는지를 알게 되었습니다. 다음은 순전히 연습의 몫입니다. 막히는 곳이 생기면 해당 장으로 돌아가세요.

    소리와 음악 이론을 더 깊이 알고 싶다면 MusicBook의 시퀀서와 스튜디오 장에서 MIDI와 녹음을 신호 처리 관점으로, 리하모니제이션 장에서 진행을 바꾸는 법을 볼 수 있습니다. 기타도 함께 배우고 있다면 GuitarBook의 잼 스테이션에서 같은 진행을 기타로 반주해 보세요. 두 악기로 같은 화성을 보면 이해가 한 겹 더 깊어집니다.

    마지막으로 한 가지. 원리를 아는 것은 연습을 대신하지 못하지만, 연습을 덜 막막하게 만듭니다. 막혔을 때 무엇을 바꿔 볼지 가설을 세울 수 있기 때문입니다. 측정하고, 조금 고치고, 다시 측정하세요. 오늘 15분이라도 건반 앞에 앉으세요. 그리고 내일 다시 앉으세요.

    핵심 정리

    1. MIDI는 소리가 아니라 동작을 보낸다. 노트 온 9n 음 세기, 노트 오프 8n(또는 세기 0인 노트 온), 서스테인 Bn 40 값(64 이상 = 밟음). 데이터 바이트는 0–127.
    2. 벨로시티는 건반이 눌리는 속도이고, 곡선 vγv^\gamma로 손에 맞춘다(γ<1\gamma<1 가볍게, γ>1\gamma>1 무겁게). Web MIDI는 Chromium 계열·Firefox에서, https와 사용자 허락 아래 동작한다.
    3. 지연 = MIDI 전송(DIN 3바이트 ≈ 1 ms) + 입력 처리 + 오디오 버퍼(N/fsN/f_s, 보통 2–3개) + 출력 장치. 10 ms 안쪽이면 대개 느끼지 못하고, 블루투스 출력은 연주에 부적합하다.
    4. 녹음 흐름: 카운트인 → 녹음 → 피아노 롤 → 양자화 t′=t+s(g round(t/g)−t)t' = t + s(g\,\mathrm{round}(t/g) - t) → 악보. 격자는 '가장 짧은 음표'에 대한 가정이고, 강도를 100% 미만으로 두면 사람다운 결이 남는다.
    5. 사람의 어긋남은 무작위 잡음 + 구조적 표현(박 강세, 프레이즈 셈여림, 끝 늘이기)이다. 무작위 휴머나이즈는 기계 같음을 줄일 뿐 음악다움을 만들지 못한다.
    6. SMF = MThd(형식·트랙 수·4분음표당 틱) + MTrk(VLQ 델타 시간 + 이벤트). 템포 = 60,000,000/BPM µs. WAV는 소리 그 자체(16비트 모노 44.1 kHz ≈ 88 KB/초).
    7. 잼 스테이션에서는 한 번에 하나의 제약을 걸어 즉흥하고, 테이크를 녹음해 들으며 코드톤 착지를 확인한다.
    8. 연습은 기록할 때 는다. 몰아서보다 나눠서 자주, 결과 목표보다 과정 목표, 지킬 수 있는 수준의 80%에서 시작해 조금씩 올린다.

    확인 퀴즈

    MIDI 메시지 90 3C 00의 뜻은?

    상태 0x90 = 노트 온, 채널 0(사람 표기로 1). 0x3C = 60 = C4. 벨로시티 0인 노트 온은 노트 오프로 취급하는 것이 MIDI 규약이다(전송량을 줄이는 '러닝 스테이터스'와 함께 자주 쓰인다).

    샘플링 주파수 48 kHz에서 버퍼 512샘플 두 개 분량의 지연은?

    512/48,000 = 10.67 ms, 두 개면 21.3 ms. 이 정도면 많은 사람이 '무겁다'고 느끼기 시작한다. 128샘플로 줄이면 버퍼 두 개가 5.3 ms.

    박 단위 시각 1.62에서 시작한 음을 8분음표 격자(g = 0.5), 강도 50%로 양자화하면?

    가장 가까운 격자는 1.5. t′=1.62+0.5×(1.5−1.62)=1.56t' = 1.62 + 0.5 \times (1.5 - 1.62) = 1.56. 강도 100%면 1.5, 0%면 그대로 1.62.

    16분음표가 많은 곡을 8분음표 격자로 100% 양자화했을 때 생기기 쉬운 문제는?

    격자는 곡의 가장 짧은 음표 이하여야 한다. 격자보다 짧은 음 둘은 같은 칸이나 엉뚱한 칸으로 옮겨진다. 양자화는 타이밍만 바꾸고 음높이·세기는 건드리지 않는다.

    120 BPM을 표준 MIDI 파일의 템포 메타 이벤트(FF 51 03 tt tt tt)로 적으면 tt tt tt는?

    템포는 4분음표 하나의 마이크로초: 60,000,000 / 120 = 500,000 = 0x07A120. 0x0F4240 = 1,000,000(60 BPM).

    자기 연주를 '사람답게' 만드는 데 가장 효과가 적은 것은?

    무작위 흔들림은 기계 같은 느낌을 줄이지만 크면 서툴게 들린다. 사람다운 표현의 핵심은 음악의 구조(프레이즈, 박, 정점)를 따르는 체계적인 어긋남이다.