선율과 알고리즘 작곡
선율(melody)은 시간 축 위에 놓인 음높이들의 수열입니다. 공학의 언어로 바꾸면 (음높이, 시작 시각, 길이) 세 값으로 된 이산 시계열이고, 그래서 시계열에 쓰는 도구, 곧 차분, 히스토그램, 상관, 스펙트럼, 확률 모델, 제약 탐색을 그대로 쓸 수 있습니다. 이 장에서는 선율을 측정하고 변형하고 생성해 봅니다. 사람이 쓴 선율이 왜 '선율답게' 들리는지 숫자로 확인하고, 그 숫자를 뒤집어 기계가 선율을 쓰게 합니다.
- 선율을 음정열·윤곽(파슨스 코드)으로 바꾸고, 순차/도약 비율과 '도약 후 반전'을 계산한다.
- 크룸핸즐–케슬러 조성 프로파일로 크룸핸즐–슈뮤클러 조 판정 알고리즘을 구현하고 한계를 설명한다.
- 동기의 이조·전위·역행·역행전위·확대·축소·반복 진행을 연산으로 정의하고 듣는다.
- n차 마르코프 체인을 학습시켜 선율을 생성하고, 희소성·엔트로피·과적합을 설명한다.
- 백색·브라운·1/f 잡음 선율의 스펙트럼과 자기상관을 비교한다(Voss & Clarke 1975).
- 음계·화음·종지 규칙과 2성 대위법 규칙을 제약 충족 문제로 보고 백트래킹으로 푼다.
선율은 시계열이다
악보에서 선율 한 줄을 떼어 내면 남는 것은 음표의 목록입니다. 각 음표는 음높이 \(p_i\)(MIDI 번호, 16장), 시작 시각 \(o_i\)(박 단위), 길이 \(d_i\)로 기술됩니다. 리듬은 11장에서 다뤘으니, 이 장은 주로 음높이 쪽, 그중에서도 이웃한 음 사이의 변화에 집중합니다.
윤곽을 문자로 적은 것이 파슨스 코드(Parsons Code)입니다. 데니스 파슨스(Denys Parsons)는 1975년 『The Directory of Tunes and Musical Themes』에서 첫 음을 *, 이후 음을 올라감 U, 내려감 D, 반복 R로 적어 약 1만 5천 개의 클래식 주제를 사전처럼 찾게 했습니다. 정보량은 음당 \(\log_2 3 \approx 1.58\)비트에 불과하지만 16음 정도면 대부분의 곡이 구별됩니다(\(3^{15} \approx 1.4\times10^7\)). 허밍으로 곡을 찾는 QBH(Query by Humming, Ghias et al. 1995)의 초기 시스템이 바로 이 표현을 썼습니다. 사람이 흥얼거릴 때 음정은 틀려도 방향은 대체로 맞기 때문입니다.
피아노 롤 편집기와 선율 통계
E4:1 D4:0.5 r:0.5(음이름:박, r은 쉼표)이고, 고쳐서 '불러오기'로 되돌릴 수 있습니다.걸음과 도약: 선율의 통계
세계 여러 지역의 민요와 성가를 대량으로 세어 보면 놀랄 만큼 일관된 규칙성이 나옵니다. 데이비드 휴런(David Huron)은 『Sweet Anticipation』(2006)에서 이를 다섯 가지로 요약했습니다.
| 경향 | 내용 | 근거 |
|---|---|---|
| 음높이 근접 (Pitch Proximity) | 작은 음정이 큰 음정보다 훨씬 흔하다. 음정 크기의 분포는 대략 지수적으로 감소한다. | Vos & Troost 1989, 여러 민요 말뭉치 |
| 순차 하행 (Step Declination) | 작은 음정은 내려가는 쪽이, 큰 음정은 올라가는 쪽이 많다. | Vos & Troost 1989 |
| 순차 관성 (Step Inertia) | 순차 진행 뒤에는 같은 방향으로 계속 가는 경우가 약간 더 많다. | Huron 2006 |
| 선율 회귀 (Melodic Regression) | 음역 가장자리에 있는 음 다음에는 가운데 쪽으로 돌아오는 음이 온다. 큰 도약 뒤의 '반전'은 대부분 이것으로 설명된다. | von Hippel & Huron 2000 |
| 선율 아치 (Melodic Arch) | 악구는 평균적으로 올라갔다가 내려오는 아치 모양이다. | Huron 1996, 에센 민요 말뭉치 6천여 곡 |
음악 이론에는 오래전부터 "큰 도약 뒤에는 반대 방향으로 순차 진행해 빈 곳을 메운다"는 갭–필(Gap-fill, Meyer 1973) 규칙이 있었습니다. 폰 히펠과 휴런(2000)은 이 현상의 상당 부분이 작곡가의 의도 없이도 생긴다는 것을 보였습니다. 선율의 음이 평균 \(\mu\), 표준편차 \(\sigma\)인 음역(tessitura) 안에서 무작위로 뽑힌다고만 가정해도, 큰 도약은 대개 음을 음역 가장자리로 데려가므로 다음 음은 확률적으로 가운데 쪽, 즉 반대 방향에 놓이게 됩니다.
아래 표는 이 장에서 쓰는 공유 저작물 다섯 곡의 음정을 이 페이지의 스크립트가 직접 센 결과입니다. 표본은 작지만 '순차가 대부분'이라는 경향은 분명합니다.
| 곡 | 음 수 | 동음 | 순차(1–2) | 도약(3–4) | 큰 도약(≥5) | 평균 |Δ| |
|---|
조성 위계와 키 찾기
장조 선율에서 12개 음이 모두 같은 대접을 받지는 않습니다. 크룸핸즐과 케슬러(Krumhansl & Kessler 1982)는 탐침음 실험(Probe-tone Paradigm)으로 이를 측정했습니다. 먼저 장조를 확립하는 짧은 맥락(음계나 종지)을 들려주고 이어서 12개 반음 중 하나를 들려준 뒤, 그 음이 맥락에 "얼마나 잘 맞는지"를 1–7점으로 평가하게 했습니다. 평균 점수가 아래의 조성 프로파일입니다.
| 반음 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 장조 | 6.35 | 2.23 | 3.48 | 2.33 | 4.38 | 4.09 | 2.52 | 5.19 | 2.39 | 3.66 | 2.29 | 2.88 |
| 단조 | 6.33 | 2.68 | 3.52 | 5.38 | 2.60 | 3.53 | 2.54 | 4.75 | 3.98 | 2.69 | 3.34 | 3.17 |
크룸핸즐–슈뮤클러 키 찾기 알고리즘(Krumhansl–Schmuckler Key-finding, Krumhansl 1990)은 이 프로파일을 템플릿으로 씁니다. 선율의 음높이 클래스별 총 길이를 12차원 벡터 \(\mathbf{x}\)로 만들고, 프로파일을 12가지로 회전시킨 24개 템플릿(장조 12, 단조 12) 각각과의 피어슨 상관을 구해 최댓값의 조를 고릅니다. 정합 필터(matched filter) 또는 템플릿 매칭과 같은 발상입니다.
크룸핸즐–슈뮤클러 키 찾기
동기와 그 변형
긴 곡도 대부분 몇 개의 짧은 동기(Motif)를 변형해 짜 맞춘 것입니다. 베토벤 교향곡 5번 1악장은 네 음짜리 '짧–짧–짧–길' 동기 하나로 500마디 가까이를 끌고 갑니다. 변형은 음높이–시간 평면 위의 기하 변환으로 정확히 정의됩니다.
조성 음악에서는 반음 단위의 정확한 전위보다 음계 안에서의 전위가 더 자연스럽게 들립니다. 장3도(4반음)를 위로 뛰는 동기를 음계 안에서 전위하면 3도 아래로 가되 그 3도는 장3도일 수도 단3도일 수도 있습니다. 음계 도수 \(s_i\)로 바꿔 \(s \mapsto 2s_0 - s\)를 하는 셈입니다. 반복 진행(Sequence)은 동기를 음계 도수 몇 칸씩 옮겨 가며 되풀이하는 것으로, 바로크 음악의 단골 기법입니다.
동기 변형기: P · T · I · R · RI · 확대 · 축소 · 반복 진행
악구: 질문과 대답
동기가 단어라면 악구(Phrase)는 문장입니다. 고전 시대 선율의 가장 흔한 틀은 두 가지입니다.
| 형식 | 구조(마디) | 끝맺음 | 예 |
|---|---|---|---|
| 악절 (Period) | 앞악구 4 + 뒷악구 4 | 앞: 반종지(V에서 멈춤, '질문') · 뒤: 정격종지(V→I, '대답') | 환희의 송가 첫 8마디, 반짝반짝 작은 별 |
| 악문 (Sentence) | 기본 동기 2 + 반복 2 + 전개 4 | 전개부에서 동기를 쪼개 가속한 뒤 종지 | 베토벤 피아노 소나타 1번 첫머리 |
| 두도막 / 세도막 | a a′ b a′ (각 4마디) | b에서 대조, 마지막 a′에서 정격종지 | 환희의 송가 16마디 전체, 달빛 아래 |
알고리즘 작곡의 관점에서 악구 구조는 장거리 의존성입니다. 8마디 뒤의 음이 지금의 음과 같아야 한다는 제약은 다음 절의 마르코프 체인처럼 바로 앞 몇 음만 보는 모델로는 표현되지 않습니다. 그래서 실용적인 생성 시스템은 '구조(a a′ b a′)를 먼저 정하고 각 칸을 채운다'는 계층적 방식을 쓰거나, 긴 문맥을 보는 모델(어텐션 기반 Music Transformer, Huang et al. 2018)을 씁니다.
마르코프 체인으로 선율 만들기
"다음 음은 바로 앞의 \(n\)개 음에만 의존한다"고 가정한 확률 모델이 \(n\)차 마르코프 체인(Markov Chain)입니다. 정보 이론을 음악에 처음 적용한 시도들(Pinkerton 1956, "Information Theory and Melody"; Brooks et al. 1957)이 바로 이것이었고, 같은 해 힐러와 아이작슨의 「일리악 모음곡」(Illiac Suite, 1957)은 컴퓨터가 마르코프 체인과 대위법 규칙으로 쓴 최초의 곡으로 기록됩니다.
모델이 얼마나 '예측 가능한' 선율을 만드는지는 엔트로피율(Entropy Rate)과 퍼플렉서티(Perplexity)로 잽니다. 생성 과정의 정상 엔트로피율은 생성 전이·백오프가 만드는 정상 문맥 분포로 가중해야 합니다. 이 실험의 표시는 학습 문맥 빈도로 가중한 조건부 엔트로피라서 온도 변경 후 정상 엔트로피율과 자동으로 같지는 않습니다. 퍼플렉서티 \(2^H\)는 "매 음마다 평균 몇 개의 후보 중에서 고르는 것과 같은가"로 읽습니다.
n차 마르코프 선율 생성기
랜덤 워크와 1/f 선율
보스와 클라크(Voss & Clarke 1975, Nature 258)는 바흐에서 비틀스, 라디오 방송까지 여러 음악의 음량과 음높이 변동을 분석해, 그 파워 스펙트럼이 넓은 대역에서 \(1/f\)에 가깝다고 보고했습니다. 그리고 1978년 JASA 논문에서 백색·\(1/f\)·\(1/f^2\) 잡음으로 만든 선율을 청취자에게 들려주었더니 \(1/f\) 선율이 가장 '음악적'이라는 평가를 받았다고 했습니다. 백색은 너무 무작위하고, 브라운(\(1/f^2\))은 너무 단조롭게 헤맨다는 것입니다.
\(1/f\) 수열을 만드는 가장 유명한 방법은 마틴 가드너가 1978년 Scientific American 칼럼에 소개한 보스의 주사위 알고리즘입니다. 주사위 \(K\)개를 두고, 2진 카운터의 \(k\)번째 비트가 바뀔 때마다 \(k\)번째 주사위를 다시 굴려 합을 출력합니다. 느린 주사위는 긴 시간 척도의 변동을, 빠른 주사위는 짧은 척도의 변동을 담당합니다. 매 단계 주사위 하나만 굴리도록 개선한 것이 보스–매카트니(Voss–McCartney) 알고리즘입니다.
백색 · 브라운 · 1/f · 평균 회귀 선율
제약 기반 선율 생성
확률 모델은 '무엇이 그럴듯한가'를 배우지만, 작곡 규칙의 상당수는 '무엇을 하면 안 되는가'로 주어집니다. 이런 규칙은 제약 충족 문제(Constraint Satisfaction Problem, CSP)로 쓰면 자연스럽습니다.
코드 진행 위의 제약 기반 선율 생성기
대위법: 규칙을 제약으로
두 개 이상의 독립된 선율을 동시에 엮는 기술이 대위법(Counterpoint)입니다. 요한 요제프 푹스(J. J. Fux)의 『파르나소스로 가는 계단』(Gradus ad Parnassum, 1725)은 주어진 정선율(Cantus Firmus)에 대선율을 붙이는 연습을 다섯 '류'(species)로 단계화했고, 하이든·모차르트·베토벤이 모두 이 책으로 공부했습니다. 1류 대위법(음표 대 음표)의 규칙은 거의 그대로 제약 목록입니다.
| 규칙 | 공학적 해석 |
|---|---|
| 수직 음정은 협화음(1, 3, 5, 6, 8도와 그 복음정). 2성부에서 완전4도는 불협화로 취급 | 각 열의 단항 제약: \((p^{cp}_i - p^{cf}_i) \bmod 12 \in \{0,3,4,7,8,9\}\) |
| 처음은 완전협화(1·5·8도), 끝은 1도나 8도 | 경계 조건 |
| 연속 5도·연속 8도 금지 | 이웃 열의 이항 제약: 두 성부가 같은 완전음정을 유지한 채 함께 움직이면 독립성이 사라진다(두 선이 한 선으로 융합된다) |
| 은복 5도·8도(같은 방향으로 움직여 완전음정에 도착) 금지 | 이항 제약: 방향 부호 \(\operatorname{sgn}\Delta^{cp} = \operatorname{sgn}\Delta^{cf}\)이면서 도착 음정이 완전음정이면 위반 |
| 반진행을 선호, 같은 불완전협화음(3도·6도)의 병진행은 3번까지 | 소프트 제약(점수) |
| 선율 안에서 증4도·7도·옥타브 초과 도약 금지, 도약 뒤 반대 방향 순차 | 단일 성부의 이항·삼항 제약 |
왜 연속 5도가 금지일까요? 6장에서 본 것처럼 완전5도와 8도는 배음이 많이 겹쳐 두 음이 하나로 융합되어 들립니다. 이 상태를 유지한 채 함께 움직이면 귀는 두 선율이 아니라 '음색이 두꺼운 한 선율'을 듣습니다. 휴런(2001, "Tone and Voice")은 대위법 규칙의 대부분이 청각 장면 분석(auditory scene analysis)에서 성부의 지각적 독립성을 최대화하는 조건으로 유도된다는 것을 보였습니다.
2성 1류 대위법 검사기와 자동 작곡
카논과 돌림노래: 시간 이동한 복사본
카논(Canon)은 한 선율을 일정 시간 \(\tau\) 늦춰(필요하면 음정 \(n\)만큼 옮겨) 다른 성부가 그대로 따라 하는 형식입니다. 끝없이 되풀이되는 카논이 돌림노래(Round)입니다.
돌림노래 플레이어: 자크 형제
핵심 정리
- 선율은 \((p_i, o_i, d_i)\)의 시계열이다. 음정열 \(\Delta_i\)는 이조 불변, 윤곽(파슨스 코드 U/D/R)은 그보다 더 거친 불변량으로 검색(QBH)에 쓰인다.
- 실제 선율은 작은 음정이 압도적이고(음높이 근접), 큰 도약 뒤에는 반전이 잦다. 반전의 상당 부분은 유한 음역에서의 평균 회귀로 설명된다(von Hippel & Huron 2000).
- 조성 위계는 탐침음 실험으로 측정된 크룸핸즐–케슬러 프로파일로 요약되고, 음높이 클래스 길이 히스토그램과 24개 회전 프로파일의 상관 최대값이 크룸핸즐–슈뮤클러 키 판정이다.
- 동기 변형은 음높이–시간 평면의 기하 변환이다. \(\{P,I,R,RI\}\)는 클라인 4원군이고, 조성 음악에서는 음계 도수 위의 전위·반복 진행이 자연스럽다.
- n차 마르코프 체인은 학습 선율의 국소 통계를 재현한다. 차수를 올리면 전이표가 희소해져 학습 곡을 베끼고(과적합), 온도는 엔트로피를 조절한다. 악구 같은 장거리 구조는 담지 못한다.
- 백색(β=0)·1/f(β=1)·브라운(β=2) 잡음 선율은 상관 길이가 다르다. 1/f가 '중간'의 성질을 갖지만, 스펙트럼은 2차 통계일 뿐 조성과 구조는 따로 필요하다.
- 작곡 규칙(음계, 강박 화음음, 도약 제한, 종지)과 대위법 규칙(연속 완전음정 금지 등)은 제약 충족 문제로 정식화되고, 백트래킹 탐색과 선호 가중치로 풀 수 있다.
확인 퀴즈
"도 도 솔 솔 라 라 솔"(반짝반짝 작은 별 첫머리)의 파슨스 코드는?
음정열이 [+2, +2, −4]인 동기의 역행전위(RI) 음정열은?
크룸핸즐–케슬러 장조 프로파일에서 으뜸음 다음으로 높은 값을 갖는 음은?
상태가 8개(한 옥타브 음계음)인 3차 마르코프 체인의 전이표는 모두 몇 칸인가?
보스–매카트니 알고리즘으로 만든 수열의 파워 스펙트럼 기울기(log–log)에 가장 가까운 것은?
2성 1류 대위법에서 정선율 D4→E4 위에 대선율 A4→B4를 놓았다. 무엇이 문제인가?