아래 보고서는 제가 학교에서 과제용으로 제출했던 '음악과 신호처리' 보고서 중 일부입니다. 조사하여 작성하는 동안 제게 꽤 유용한 내용들이 많아서 제 블로그에도 올려놓고 싶어서 게시하게 되었습니다. 그림 등은 저작권의 이유로 링크로 대체되었습니다. 그럼에도 혹시라도 문제가 생길 경우 바로 이 글을 삭제하겠습니다. 출처 등은 이 글의 마지막 부분에 기재하였습니다.
1. 서론
음악은 인류의 역사와 함께하며 지속적으로 발전해왔다. 특히 한국에서는 ‘음악은 국가가 허락한 유일한 마약’이라는 이야기도 나올 정도로 음악은 흥을 만들어주고, 감정을 진정시키거나 증폭시켜주는 역할을 수행해왔다. 전 세계적으로 민요, 힙합, 재즈, 트로트 등 장르는 조금씩 다르지만 음악은 계속 발전해왔으며, 지금도 이 순간에도 계속 발전하고 있다. 이처럼 인간은 직접 악기를 만들거나 작곡하는 등 음악을 적극적으로 발전시켜왔으며, 이는 다른 동물들과 다른 인간들만의 특성 중 하나라고 일컬을 수 있을 것이다.
데이터의 처리 방식이 아날로그에서 디지털로 넘어오면서, 음악의 발전 속도는 매우 크게 발전했다고 말할 수 있다. 예를 들면, 음악의 국가 간 경계가 점점 허물어져 한국의 판소리가 외국인들에게 최근 큰 각광을 받고 있으며, BTS 등의 K-POP 그룹들도 큰 인기도 얻고 있다. 또한 한국에서도 손 쉽게 다른 국가의 음악을 쉽게 들을 수 있게 되었다.
또한 음악 데이터를 디지털로 표현할 수 있게 되었기 때문에 언제 어디서나 원하는 때에 원하는 음악을 들을 수 있게 되었다. LP판에서 CD, USB로 앨범의 크기가 점점 작아지고 휴대성이 높아졌으며, 최근엔 그냥 일반 기기에서 직접 음악을 다운로드받아 재생하거나, 다운로드 과정 없이 스트리밍을 통해 음악을 즐기고 있다.
본 '음악과 신호처리' 보고서에서는, 음악에서 신호처리가 어떤 방식으로 수행되는지를 중심으로 이야기가 서술될 것이다.
2. 본론
본론은 크게 음악의 특성과, 음악의 신호처리 방식, 실생활에서의 예로 구성되어 있다. 음악의 특성은 신호처리를 접목하기 이전부터 존재했던 음악의 고유한 특성들을 다뤘으며, 음악의 신호처리 방식은 아날로그 음악 데이터를 어떻게 효과적으로 디지털 환경에서 처리할 수 있는지 그 방법들을 다루었다. 마지막으로 실생활에서의 예는 실제 실생활에서 ‘음악의 신호처리’가 어떻게 구현되고 있는지를 서술하였다.
1) 음악의 특성
1. 주파수
음악의 주파수는 후에 서술될 음악의 특성을 이해하는 데 매우 중요한, ‘음악과 신호처리’의 기초가 되는 특성이고, 따라서 주파수를 이해하는 것이 매우 중요하다 할 수 있다.
주파수를 이야기하기 앞서, 현대의 12음계(C, C#, D, D#, E, F, F#, G, G#, A, A#, B)를 기준으로 피아노 악보를 보는 방법을 간단히 소개할 필요가 있다. 높은음자리와 낮은음자리를 기준으로 음표를 악보에 나타내면 그림 1과 같다. 보통 높은음자리 악보는 오른손, 낮은음자리 악보는 왼손의 연주를 위한 악보이다. 또한 그림 1의 낮은 음자리의 아래 그림의 맨 오른쪽 음표 ‘도(C4)’와 그림 1의 높은 음자리의 위 그림의 맨 오른쪽 음표 ‘도(C4)’는 같은 음을 가리킨다. 피아노 건반 88개 중에서, 제일 왼쪽의 건반이 ‘라’ 음을 A0으로 표현하며, 제일 오른쪽 건반의 ‘도’ 음을 C8로 표현한다. 또한 건반의 가운데 즈음의 ‘라’ 음인 A4는 440Hz를 가리키며, 이 음을 기준으로 다른 음들의 주파수를 맞춘다. 눈치가 빠른 사람은 알겠지만, 음계를 알파벳과 숫자로 표현할 때 알파벳 뒤 숫자는 옥타브를 가리킨다. 숫자가 클수록 높은 주파수의 음을 가리키며, 서로 다른 두 음이 음계는 같고 주파수가 1 차이가 난다면, 이 두 음의 주파수 차이는 딱 2배 차이가 난다.
만약 높은음자리 악보나 낮은음자리 악보의 적정 범위 밖의 음을 표현하고 싶을 때는 어떻게 표현할까? 단순히 보조선을 많이 그어 표현하는 방법도 있지만, 보기도 불편하고, 쓰기도 불편하다는 단점이 있다. 이 때는 옥타브 기호를 높은음자리 악보의 위나, 낮은음자리 악보의 아래에 그림 2와 같이 삽입하여 가독성을 높일 수 있다.
한편 피아노의 검은 건반을 표현할 때는 #(샵) 기호나 ♭(플랫) 기호를 음표 옆에 붙여 그림 3와 같이 표현한다. 그리고 다시 원래 흰색 건반을 표현할 때는 옆에 제자리표를 붙인다. 더블샵과 더블플랫은 두 음을 올리거나 내리는 역할을 하는데, 실제 악보에서 많이 쓰이지는 않으니 더 이상의 설명은 생략하겠다.
한편 피아노의 검은 건반을 표현할 때는 #(샵) 기호나 ♭(플랫) 기호를 음표 옆에 붙여 그림 3와 같이 표현한다. 그리고 다시 원래 흰색 건반을 표현할 때는 옆에 제자리표를 붙인다. 더블샵과 더블플랫은 두 음을 올리거나 내리는 역할을 하는데, 실제 악보에서 많이 쓰이지는 않으니 더 이상의 설명은 생략하겠다.
기타의 경우엔 일반적으로 왼쪽 그림 4과 같이 아래줄부터 ‘미라레솔시미’로 줄을 조율하고, 기타의 플랫 부분을 누른 다음 기타줄을 튕겨 원하는 소리를 낸다. 참고로, 기타의 경우에는 그림 1의 악보보다는 타브 악보를 같이 사용하는 경우가 있다. 피아노의 오선 악보와 달리, 타브 악보는 6개의 줄로 이루어져 있으며, 각각의 악보 안 줄이 기타의 줄과 대응된다.
이제 12음계와, 12음계를 표현하는 방법에 대해 간략하게 배웠으니, 실제 주파수가 음악과 어떤 연관성이 있는지 차근차근 분석해보자. 음악을 수학적으로 정립한 고대 인물 중에는 피타고라스가 있었다. 피타고라스는 길을 걷다가 대장장이의 도구를 치는 소리를 듣고 사람이 듣기 좋은 소리에 일종의 규칙이 있음을 발견하였다. 그는 서로 다른 두 음계의 주파수 비가 정수비, 특히 1:2(한 옥타브 차이) 혹은 2:3(7개의 반음 차이)일 경우, 매우 아름다운 소리를 냄을 발견하고 이를 이용하여 여러 음들의 주파수를 찾아내었다. 그 주파수들의 결과가 그림 5와 같다. 참고로, 연속된 5개의 음(ex. 파도솔레라, 도솔레라미)을 선택해서 음악을 만들 수 있는데, 이는 동양권의 음악에 주로 쓰였던 계이름들이며, 한국의 ‘아리랑’도 이 다섯 개의 음 안에서 연주가 가능하다. 보통은 피아노의 검은 건반 5개로 표현된다.
피타고라스 시대로부터 시간이 점점 흐름에 따라, 한 음의 주파수와 다른 음의 주파수를 정확하게 표현한 수학 식이 발견되었으며, 바로 이다. 앞서 A4=440Hz인 것을 알았으므로, 이 식을 이용하면 피아노의 88개의 건반의 주파수를 전부 정확하게 구해낼 수 있다. 그러면 A0=27.5Hz, C8=4196Hz가 나온다.
피타고라스의 음계에 의하면, 이다. 이는 실제 값인 와 비교할 때, 약 0.0017Hz의 오차를 보인다. 주파수의 영역이 짧을수록 이 오차값은 실제 두드러지지 않지만, 넓은 영역의 주파수 영역을 다룰 경우 이 오차값은 큰 영향을 미치게 된다. 따라서 피타고라스 음계는 넓은 영역의 주파수에서 한계가 존재하지만, 음악의 조화는 주파수와 큰 연관이 있다는 중요한 사실을 입증했다는 것에는 이견이 없다.
한편 이 식을 이용해서 기타(또는 다른 현악기)를 분석해보면, 기타에서 한 줄의 길이를 L이라 할 때, 다음 k번째 반음을 나타내는 줄의 길이는 가 된다. 따라서 기타에서 줄을 나눌 때, 다음 반음의 파장의 길이(줄의 길이)가 이전 음의 파장의 길이(줄의 길이)보다 배 만큼 작게 한다.
특정한 주파수 음들의 조합을 이용하여 화음을 만들어 낼 수 있으며, 대부분의 작곡 과정에서 이 화음을 이용하여 듣기 좋은 노래를 만들어낸다. 화음은 무수히 많이 존재하지만, 여기서는 대표적인 몇 개의 화음만 소개하도록 하겠다. 장화음은 그림 6에서 나와있는 것처럼 3도음과 5도음 사이 반음이 존재하는 화음이며, 단화음은 1도음과 3도음 사이 반음이 존재하는 화음이다. 공식으로 설명하면, 장화음은 1도음을 기준으로 할 때 3도음은 1도음의 주파수에 배한 주파수, 5도음은 1도음의 주파수에 배한 주파수가 된다. 반면 단화음은 1도음을 기준으로 할 때 3도음은 1도음의 주파수에 배한 주파수, 5도음은 1도음의 주파수에 배한 주파수이다. 이 점을 이용하여 다장조에서 장/단화음들을 나타내면 그림 7과 같다. 이 때 순서대로 C(다장조), Dm(라단조), Em(마단조), F(바장조), G(사장조), Am(가단조), Bm(나단조) Chord(화음)로 나타낼 수 있다.
2. Harmonic
우리가 기타와 피아노에서 같은 주파수의 음이 들린다고 해도, 우리는 그 소리가 어떤 악기에서 나왔는지를 귀로 듣고 분별해낼 수 있다. 이는 악기마다 가지고 있는 성질이 조금씩 다르고, 그에 따라 두 악기가 소리가 같은 주파수임에도 파형이 조금씩 다르기 때문에 가능하다.
파형이 달라지는 주요 원인은 바로 Harmonic이다. Harmonic은 원천주파수(Fundamental Frequency)의 배수 주파수 성분을 말하는데, 그림 8에서 원천주파수는 피아노와 바이올린이 같지만, 음색이 달라지는 이유는 Harmonic의 조합이 악기마다 달라지기 때문이다.
2) 음악의 신호처리 방식
1. DFT(Discrete Fourier Transform)
DFT를 설명하기 전에 DTFT(Discrete Time Fourier Transform)를 먼저 설명하면, DTFT는 이산적인 값의 수열을 주파수 도메인의 연속 함수로 나타내는 푸리에 변환이다. DTFT식과 역변환 식은 다른 자료들에 충분히 설명이 되어 있으므로 여기서 자세한 설명은 생략한다(아래 참고문헌에 관련 링크를 기재하였다).
보통 시간 영역의 데이터를 푸리에 변환을 수행하면 주파수 특성을 볼 수 있기 때문에 음악의 특성을 분석하기에 매우 유용하다. 하지만 실제 컴퓨터 등 전자기기들은 DTFT의 시간 영역에서 연속적으로 무한한 데이터를 처리할 수 없다. 따라서 DFT를 수행하게 되는데, 이는 이산적인 값의 수열을 같은 길이의 이산적인 주파수 함수로 하는 푸리에 변환을 가리킨다. DFT식과 역변환 식은 다른 자료들에 충분히 설명이 되어 있으므로 여기서 자세한 설명은 생략한다.
2. FFT(Fast Fourier Transform)
DFT와 그 역변환을 빠르게 수행하는 효율적인 알고리즘이다. FFT식과 역변환 식은 다른 자료들에 충분히 설명이 되어 있으므로 여기서 자세한 설명은 생략한다(아래 참고문헌에 관련 링크를 기재하였다).
기존 DFT의 연산 수행 횟수는 N^2이지만, FFT는 연산 수행 횟수가 NlogN으로 크게 감소하여 N이 클수록 훨씬 빠르게 연산할 수 있다.
3. 샘플링 (44.1kHz), aliasing
사람의 가청 주파수는 대략 20Hz-20kHz이며, 사람에 따라 더 짧을 수도, 더 길 수도 있다. 다른 동물들의 가청 주파수는 오른쪽 그림 10과 같으며, 다양한 스펙트럼을 가지고 있음을 알 수 있다.
음악 디지털 데이터를 처리하거나 전송할 때 최대한 손실을 줄이기 위해서는 샘플링 주파수 fs가 최소한 20kHz의 2배보다 커야 한다. 그렇지 않을 경우 aliasing 현상이 일어나 원래의 소리와 매우 다른 소리가 나타날 가능성이 커진다. 따라서 음악 데이터의 일반적인 샘플링 주파수는 44.1kHz이다(아마 이 숫자를 어디선가 본 기억이 있을 것이다). 다만 요즘에는 디지털 기술이 더욱 더 발전함에 따라, 샘플링 주파수를 48kHz, 혹은 96kHz로 설정하여 더욱 더 정확한 소리를 제공하는 경우도 있다.
3) ‘음악과 신호처리’의 실생활에서의 예
1. 음악 검색 알고리즘
스마트폰 어플리케이션 중 노래를 찾아주는 어플리케이션을 써본 경험이 있을 것이다. 특히 ‘Shazam’이란 어플리케이션의 경우, 매우 높은 정확도를 보여주어 전 세계 사람들이 많이 쓰는 어플리케이션 기능 중 하나가 되었다. 그러면 어떤 방식으로 이 어플리케이션은 수많은 노래 데이터베이스 중 하나의 적절한 노래를 찾아 사용자에게 보여주는 것일까?
현재 음악 검색 알고리즘 중 가장 많이 쓰이는 기법은 Audio Fingerprinting(또는 Acoustic Fingerprinting)이다. 음악 신호 중 일부가 입력값으로 주어질 경우, 이를 분석하여 유사한 음원을 데이터베이스에서 검색한 뒤, 유사한 음원을 찾을 경우 출력값을 내보내어 사용자에게 보여주는 방식이다. 이 방식을 좀 더 자세히 들여다보면 그림 11과 같이 나타낼 수 있는데, 먼저 음악 데이터를 샘플링하여 디지털 신호로 나타낸 다음, 이 신호에 FFT를 수행하여 spectrogram으로 표현한다. 가로축을 시간, 세로축을 주파수 정보라 하면, 시간 구간 당 주파수 정보를 그림 11의 두 번째 그림처럼 볼 수 있다. 밝은 부분일수록 음원에서 그 부분의 주파수 특성이 크게 나타난다는 것을 의미한다. 이렇게 변환한 spectrogram을 이용해 음계 정보를 뽑아내 그림 11의 세 번째 그림처럼 chromagram을 만들 수 있다. 이 때 chromagram에서 밝게 표시될수록 이 곡에서 많이 나오는 음이라는 뜻이고, 이를 이용해 코드 진행까지 알 수 있게 된다.
하지만 이 방식엔 단점이 존재하는데, 신호적으로 거의 완벽히 유사한 음원들만 검색이 가능하다. 즉, 카페나 길거리에서 흘러나오는 노래는 크게 잡음이 없을 경우 인식할 수 있지만, 콘서트에서 가수가 노래한 곡은 음원의 곡과 신호적 특징이 일치하지 않기 때문에 검색이 쉽지 않다. 따라서 이 점을 보완하는 알고리즘이 계속 연구되고 있는데, 그 중 하나가 허밍 기반 음악 검색(QBSH; Query-by-Singing/Humming)이다. 이 검색 방법은 앞의 Audio Fingerprinting 방식과 달리, 직접 부른 노래들에 대해서도 검색이 가능하다는 장점이 있다. 하지만 아직까지는 크게 상용화 단계까지 진행되지는 않았으며, 계속 연구되고 있는 기술이다. 이 기술이 상용화가 성공할 경우, 온라인 음악 검색 시장에 주요한 기술로 사용될 수 있을 것으로 기대된다.
2. 조율
조율에는 다양한 방식이 있는데, 여기서는 기타에서 주로 쓰이는 조율 방식에 대해 소개해 보고자 한다. 기계가 발달하지 않았을 때는, 일단 기타의 다섯 번째 줄의 ‘라’ 음을 다른 조율된 악기 등을 이용하여 맞추고, 이웃한 줄과의 음 간격이 대략 4개에서 5개 정도이기 때문에, 5번째 줄의 ‘라’ 음을 기준으로 6번째 줄에 5번째 플랫을 눌러 소리를 비교하고, 5번째 줄의 5번째 플랫을 눌러 4번째 줄의 ‘레’음을 비교하는 식으로 조율을 맞췄다. 이렇게 조율을 하게 될 경우, 사람의 귀에 의존하여 조율을 하게 되기 때문에 오차가 크게 존재할 수 있으며, 1번째 줄로 갈수록 사람마다 조율된 소리의 주파수 값이 조금씩 다를 수 있다.
디지털 기술이 많이 발전되고, 이를 이용한 조율 기계가 많이 보급되면서, 그림 12와 같이 진동판이 내장되어 있는 전자 조율 기계를 현대에 많이 사용하게 되었다. 오른쪽 그림과 같이 기타의 머리 부분에 기계를 물린 뒤, 줄을 튕기면 이 튕긴 줄의 음이 어떤 주파수를 갖고 있으며, 조율을 어떻게 수행해야 하는지도 자세히 알려준다. 가격이 비교적 저렴하며, 앞선 방식으로 5번째 줄을 기준으로 조율을 할 때보다 더 정확한 조율을 할 수 있게 되었다.
이 조율 기계조차 없는 경우, 스마트폰의 여러 어플리케이션을 이용하여 조율을 수행할 수도 있다. 스마트폰에서 기타의 소리를 마이크를 통해 인식한 다음, DFT 혹은 FFT를 수행하고, 그 결과 기타 소리의 주파수를 찾아내어 어떻게 조율해야 할지를 내부적으로 프로그램의 알고리즘을 거쳐 사용자에게 화면으로 알려준다.
3. MIDI(Musical Instrument Digital Interface)
MIDI는 악기 디지털 인터페이스로 번역될 수 있으며, 전자 악기끼리 디지털 신호를 주고 받기 위해 각 신호를 규칙화한 일종의 규약이다. 하지만 현재는 MIDI라는 용어 자체가 하나의 상품이나 제품의 이름처럼 사용되고 있다. 단자는 그림 13와 같이 생겼으며, 단방향으로만 메시지를 전달할 수 있기 때문에 양방향 전송을 위해선 두 개의 케이블이 필요하다. 요즘에는 이 단자 외에 USB, 3.5mm 오디오 잭과 같은 유선 단자나, Wifi, Bluetooth를 활용한 무선 MIDI도 많이 사용되고 있다. MIDI는 후에 서술할 DAW와 함께 사용되어 디지털 오디오의 연주, 녹음 등에 더욱 더 큰 힘을 실어주기도 한다.
참고로, Arduino와 MIDI 악기 쉴드를 활용하여 자신만의 악기를 직접 만드는 방법도 있다고 한다. 인터넷에 관련된 정보가 나와있으니 궁금하면 찾아보기 바란다.
4. DAW(Digital audio workstation)
DAW는 디지털 오디오의 재생, 녹음 및 편집 등의 작업을 위한 워크스테이션을 말한다. 보통 컴퓨터 소프트웨어의 형태로 많이 사용되며, 주로 사용되는 프로그램으로는 큐베이스, Logic pro X, FL studio 등이 있다.
필자는 Apple 사에서 유료로 제공하는 Logic pro X를 많이 쓰며, 특정 주파수 필터링, 오토튠, 음의 코드 분석 등 여러 다양한 기능을 제공한다. 또한 수많은 종류의 가상악기와, 무료로 사용할 수 있는 수많은 Apple loop도 장점이다. 또한 Apple 사에서 만든 프로그램이기 때문에 Apple 사에서 제조한 모바일 기기와 연동이 가능하다는 것도 큰 장점이다.
3. 결론
서론에서 언급했듯이, 음악은 인류와 함께 점진적으로 발전되어 왔으며, 음악에 신호처리가 접목된 후 그 발전 속도는 매우 빨라졌다. 그래서 본론에서 음악의 주요 특성인 주파수를 피아노와 기타의 예를 함께 들어 설명하였고, 악기마다 음이 다르게 들리는 이유를 파형과 harmonic을 이용하여 설명하였다. 또한 음악에 어떤 신호처리 방식이 적용되었는지 알 수 있었고, 마지막으로 ‘음악과 신호처리’가 실생활에서 어떻게 쓰이고 있는지를 음악 검색 알고리즘 중 Audio/Acoustic Fingerprinting 기술과, 조율, MIDI, DAW를 통해 알아보았다. 당연한 이야기지만, 여기에 서술된 것들은 음악과 신호처리의 모든 것을 다루는 것이 아니며, 지금 이 순간에도 음악은 신호처리에 힘입어 다양하게 발전하고 있다. 앞서 본론의 음악 검색 알고리즘에서 언급했던 허밍 기반 음악 검색의 예만으로도 이 점을 분명히 알 수 있다. 아직 ‘음악과 신호처리’에서 닿지 못한 미지의 영역이 많이 있으며, 이 영역들에 하나씩 다가갈수록 우리가 음악을 향유하는 질이 더욱 더 올라갈 것이다. 앞으로 디지털 기술의 발전에 힘입어 음악이 어떤 방식으로 발전될지 기대된다.
‘아는 만큼 보인다’는 속담처럼, 우리가 ‘음악과 신호처리’의 여러 특성들을 모르고 음악을 들을 때에는 단순히 음악을 소비하기만 했다면, ‘음악과 신호처리’와 관련된 지식을 지닌 채로 음악을 듣게 되는 순간, 작곡가나 작사가, 또는 가수의 의도를 파악하는 관점이 더욱 더 풍부해질 것이다. 혹은 자신이 직접 악기를 만들거나, 음악을 만들기도 더 수월해지고, 음악 그 자체가 더욱 더 재미있어질 것이다. 본 필자를 포함한 여러 독자들이 이 글을 읽고 궁극적으로 음악에 더욱 더 깊은 관심을 갖게 되길 바라고, 음악을 다채롭게 소비하는 동시에 다양한 음악을 생산하는 주체가 되길 바라며 글을 마친다.
댓글
댓글 쓰기