알고리즘과 작곡
페이지 정보
작성자 최고관리자 작성일18-02-21 11:24관련링크
본문
Think about that 2012/02/24 13:38
algorithm [ǽlgərìðm]
알고리듬, 일련의 산법, 연산
a precise rule specifying how to solve some problem
어떤 문제를 해결할 때, 입력된 자료에서 원하는 부분의 출력을 유도하는 규칙의 집합, 여러 단계의 유한 집합으로 구성되어 있고, 각 단계는 하나 또는 그 이상의 연산
전통적으로 기술은 예술의 표현방식의 지표를 넓혀 주는 역할을 했다. 벽에 그리던 그림을 종이의 발명으로 종이에 그릴 수 있게 되어 있고 악보로만 전해지던 음악을 녹음기의 발명으로 소리로 영원히 남겨 놓을 수 있게 되었다. 그것은 오늘날도 마찬가지로 다양한 소프트웨어들이 개인의 예술 창작 활동을 편리하게 하고 있다.
이들은 기술이 예술의 도구로 이용되는 예이다. 그러나 기술과 예술의 만남은 단순히 한 쪽이 다른 쪽의 도구로 이용되는 이상의 결과를 가져오기도 한다. 한 예로 오늘날 흔히 접할 수 있는 전자음악의 역사는 100년이 되지 않는다. 전자 음악을 만들 수 있는 도구 - 컴퓨터가 이전 시대에는 없었기 때문이다. 마찬가지로 사진이나 영화 등 현대에서는 당연하게 영유하는 많은 예술 창작물도 200년 전에는 찾아 볼 수 없었다.
사진, 영화, 컴퓨터게임, 전자 음악 등 현대의 많은 예술 장르들은 기술의 발달이 있은 후에야 비로소 탄생할 수 있다. 새로운 악기가 생기면 그로 인해 새로운 음악 스타일이 탄생한다. 이것은 기술과 예술이 만나는 또 다른 접점이다.
예술의 발전은 새로운 기술의 개발을 촉구하고 기술의 발전은 새로운 예술의 탄생을 도래한다. 이처럼 기술과 예술은 서로에게 밀접히 영향을 주며 함께 발전하는 관계에 있다. 이러한 현상을 생물학의 용어를 빌려 ‘공진화(함께 진화하다)’라고 표현하기도 한다.
기술과 예술의 공진화는 지금도 계속 진행 중이다. 유사 이래 어느 시대보다도 기술의 발전 속도가 빠른 지금, 새로운 예술장르에 대한 연구도 활발히 진행 중이다.
최근에 예술적 지평을 넓혀 주는 데 가장 큰 역할을 담당하는 기술은 무엇보다 디지털 기술이다. 컴퓨터와 인터넷의 발달은 예전에는 생각도 못했던 많은 작업들을 가능하게 하였다. 대표적인 신 장르인 ‘미디어 아트’의 경우 컴퓨터와 TV 등 여러 전자 장비를 이용하여 이전에는 선보이지 못했던 다양한 표현을 가능하게 한다. 우리나라의 대표적 미디어 아트 예술가로는 백남준이 있다.
미디어 아트는 예술가의 내면세계에 따라 다양한 형태로 나타나며 단순히 전자 장비의 이용뿐만 아니라 사용자를 직접 작품에 참여시켜 사용자의 움직임이나 행동에 따라 작품의 형태가 달라지게 하는 점도 큰 특징이다. 이러한 미디어 아트의 특징은 인터랙션(사용자와의 상호 작용) 기술이 있기에 가능하다.
사용자가 작품에 참여할 수 있는 것은 설치예술뿐만이 아니다. 전통적으로 종이 위에 쓰여 지고 일방적으로 독자에게 전달되는 것으로 생각되었던 문학작품에도 새로운 시도는 이루어지고 있다. 참여문학(participatory fiction)이라 일컬어지는 이것은 html 문서의 형태로 독자에게 제공된다. 독자는 링크를 따라가며 다양한 순서와 다양한 관점에서 작가의 의도를 파악할 수 있게 된다. 이러한 문학 작품을 창작하는 것을 돕기 위한 소프트웨어도 개발되었다.
인터넷의 발달도 예술 작품의 형성에 큰 영향을 미쳤다. 이것은 일인미디어(한 사람이 자신의 글이나 작품을 공개할 수 있는 개인 소유의 공간. 블로그 등이 대표적)로 대변되는 요즘의 유행과도 관계가 있다. 자신의 작품을 공개하기 위해 공식적인 전시나 잡지의 통로를 빌릴 수 있는 과거와는 달리 요즘은 인터넷을 통해 누구나 자기 작품을 공개 홍보할 수 있기 때문이다. 인터넷의 영향을 받은 대표적인 신예술 장르 중 하나인 ‘넷아트’의 경우 처음에는 단순히 작가의 작품의 사진이나 일부를 공개하는 목적으로 이용되었으나 최근에는 웹페이지의 구성과 내용 그 자체가 예술적 성격을 띠게 되었다.
지금까지 예로 든 예술 작품들은 모두 예술가들의 손을 거쳐 창작되는 작품이라는 점에서 디지털 이전 시대의 예술과 공통점을 가진다. 그러나 디지털 기술의 발달로 탄생된 예술 장르 중 일부는 이와는 전혀 다른 개념의 것이 있다. 인간의 손을 거치지 않는 예술, 즉 컴퓨터가 창작하는 예술이다.
가끔 뉴스 기사나 과학 잡지에서 로봇이 그림을 그리거나 컴퓨터가 음악을 만들고 글을 쓴다는 이야기를 본 적이 있을 것이다. 이러한 작업에서 예술가, 즉 인간의 개입은 전혀 없거나 최소한으로 제한된다. 처음에 몇 가지 변수를 설정하면(예 : 어떤 음악을 만들고 싶은가, 혹은 어떤 느낌의 그림을 그리고 싶은가) 그 다음에는 인간의 개입 없이 컴퓨터가 자신의 예술 작품을 창작해 내는 것이다. 인공 지능 기술과 컴퓨터가 발명되기 이전에는 상상할 수 없었던 장르이다.
이들 인공지능 예술에 사용된 기술을 한 가지로 설명하긴 어렵다. 이들 작품은 아직 실험적인 단계에 있으며 컴퓨터가 진정으로 창의력이나 사고 과정을 가지고 예술 작품을 만들기보다는, 예술가(혹은 기술자)가 미리 정해 놓은 어떤 규칙에 따라 작품을 만드는 경우가 많다. 각 작품에 사용된 규칙이나 과정은 작품마다 다르며 얼마나 현실세계를 잘 반영한 규칙을 만드느냐에 따라 결과가 달라진다.
음악을 컴퓨터가 자동으로 작곡하는 연구는 그 중 가장 활발히 연구되는 분야이다. 음악 자체가 수학성을 가지기에 컴퓨터가 발명되기 이전 시대부터 특정 규칙에 따라 음악을 작곡하려는 시도는 많았다. (바흐의 대위법이나 모차르트의 작곡 규칙 등) 자동 작곡은 이러한 규칙들을 컴퓨터로 옮겨 작곡 과정을 자동화하며 시작되었다.
오늘날에 이르러서는 이 과정이 인공지능 기술과 결합하여 보다 복잡하고 다양해졌다. 작곡가의 작곡 할 때의 사고 과정을 흉내 내는 것에서부터 인공생명체를 도입하는 방법까지 다양한 기술이 사용된 이들 인공지능 작곡은 전자 음악과 함께 컴퓨터 음악의 한 축을 형성하고 있다.
예술과 기술의 공진화, 예술의 도구로 사용되는 기술, 기술이 창조한 예술. 기술과 예술이 만나 형성하는 세 가지 접점에서 사용된 최첨단 기술은 어떤 형태일까?
‘알고리즘’은 전산학이나 수학에서 사용하는 용어로 쉽게 생각할 때 컴퓨터 프로그램의 내부 구조라 할 수 있다. 세 개의 수를 서로 비교해 가장 큰 숫자를 찾기 위해서 컴퓨터 프로그램은 내부적으로 두 개의 수를 먼저 비교하고 그 중 큰 수와 나머지 하나의 수를 비교한다. 이 과정을 바로 ‘알고리즘’이라 하며, 원하는 결과를 얻기 위해 프로그램이 수행하는 과정과 규칙을 가리킨다.
‘알고리즘 작곡’은 인간이 정한 규칙이나 특정한 제약 조건에 맞추어 컴퓨터가 자동적으로 작곡하는 과정을 뜻한다. 이것은 대위법과 같이 고전적인 음악 규칙에 맞추어 작곡되는 경우뿐만 아니라 심리학이나 인공지능의 개념을 채택하여 보다 자유롭게 컴퓨터가 작곡하도록 하는 경우도 포함한다. 즉, 흔히 컴퓨터가 자동으로 작곡하는 경우를 포괄하여 ‘알고리즘 작곡’이라고 한다고 볼 수 있다.
알고리즘 작곡의 역사는 1000년경까지 거슬러 올라간다. 텍스트 문서나 성당의 비율, 황금비 등 여러 가지 요소들에서부터 멜로디를 뽑아내는 방법을 연구하였으며 유명한 캐논, 푸가 등의 고전 음악들이 알고리즘 작곡 기법을 사용하여 작곡되었다. 모차르트는 2개의 주사위를 굴려 미리 만들어진 마디들의 조합을 이용해 미뉴엣을 만들었는데 이것은 가장 잘 알려진 알고리즘 작곡법에 의한 작품으로 유명하다.
20세기 이후에는 과학적 사고가 보편화되며 작곡에 수학적 기법을 직접적으로 도입하는 시도가 많아졌다. 이에 이용된 기술은 음렬주의, 확률, 통계적 기법 등으로 최근에는 진화나 신경망 등 생물학과 관련된 개념을 차용해 알고리즘 작곡에 응용하려는 시도도 많이 보인다.
음악과 수학이 자주 같이 언급되는 것은 음악 그 자체가 내재하고 있는 수학성 때문이다. 음악이 음악처럼 들리기 위해서 필요한 요소는 무엇일까? 가만히 관찰해 보면 듣기 좋은 음악에는 일종의 ‘구조’가 있는 것을 알 수 있다. 시작에 해당하는 음악 구절과 코러스에 해당하는 반복 부분, 클라이맥스에 해당하는 부분과 결말에 해당하는 부분이 대표적 예이다. 잘 만들어진 음악은 일종의 메시지를 가지고 있고 그것은 언어와 비슷한 형태의 구조를 가진다.
이러한 음악적 구조는 수학의 ‘형식언어’라는 개념을 빌려 나타낼 수 있다. 형식 언어는 언어의 문법구조를 나타내기 위한 개념으로 자연 언어(영어, 한국어 등 일상적으로 사용하는 언어) 뿐만 아니라 프로그래밍 언어 등을 표현하기 위해 주로 사용된다.
음악을 일종의 언어로 볼 때 음악의 구조는 일종의 문법으로 나타낼 수 있다. 일단 문법이 정해지면 문법에 맞추어 수없이 많은 문장을 언어에서 만들 수 있듯이 음악도 마찬가지로, 어떤 규칙에 따라 문법을 정해 놓으면 그에 따라 수도 없이 많은 음악을 만들어 낼 수 있다.
음악이 본질적으로 내재하고 있는 수학성은 그뿐만이 아니다. 음악이 음악처럼 들리기 위해서는 ‘반복’과 ‘새로움’의 두 가지 요소가 필수적인데, 음악 구절의 반복은 수학의 프랙탈 구조와 종종 비견되곤 한다. 멜로디나 음악 구절의 반복과 새로움을 적절하게균형을 맞추는 것이 음악의 핵심이라 할 수도 있으며, 프랙탈의 핵심 역시 반복에 있기 때문이다.
프랙탈은 전체 그림의 모양의 일부를 확대했을 때 전체 그림과 똑 같은 모양이 반복해서 나타나는 그림을 뜻한다. 흔히 볼 수 있는 눈의 결정이 대표적인 프랙탈이다. 눈의 결정은 그 자체로 하나의 그림이지만 결정 중 일부를 확대해 보면 전체 모양과 똑 같은 모양을 발견할 수 있다. 즉, 프랙탈은 자기 자신을 끊임없이 반복해서 복제해 내는 그림으로 그 자체로도 예술성을 띄고 있으며 음악 구조분석 등 다른 예술에도 응용되곤 한다.
프랙탈을 이용해 작곡할 수 있는 가장 기본적인 방법은 그림의 한 부분 한 부분에 소리의 파형이나 음악 구조를 대응시키는 것이다.
한 가지 예로 빨간색은 도, 흰색은 레 식의 대응법을 생각할 수 있다. 그러나 이러한 방법으로 의미 있는 음악을 생성해 내는 것은 매우 어렵다. 음악은 시간 예술인데 비해 프랙탈을 비롯한 그림은 시간예술이 아니기 때문이다. 대신 프랙탈은 알고리즘 작곡의 다른 시사점을 던져 준다.
프랙탈의 알고리즘 작곡에서의 가치는, 그것이 직접 작곡에 응용되기보다는 프랙탈을 생성해 내는 수학식을 응용하여 음악을 생성해 낼 수도 있다는 점에 있다.
프랙탈은 보통 간단한 수학식에 의해 만들어 지는데 이 식에 음악 변수나 멜로디, 리듬 등을 대응하면 적절한 반복으로 의미 있는 결과를 얻을 수 있다. 특히 프랙탈의 대표적인 특성인 ‘자기 반복(스스로를 반복해서 전체를 나타내는 특성)’을 작곡에 응용하는 방식은 많이 시도되었다. 대표적으로는 18세기 중반에 조나단 세바스찬 바흐가 작곡한 푸가가 유명하다.
알고리즘 작곡의 이해를 쉽게 하기 위해서 간단한 규칙에 기반 한 예제를 들어 보겠다. 알고리즘 작곡 연구자 Eduardo Reck Miranda가 제시한 이 시스템에서는 확률에 기반하여 임의적으로 화음들이 생성되며 이것을 간단한 규칙으로 늘어놓고 리듬을 부여할 것이다. 명심할 것은 이 방법만이 알고리즘 작곡의 전부가 아니라는 것이다. 이것은 이해를 쉽게 하기 위해 단순화한 예제이며 실제로는 훨씬 다양한 방법을 사용하여 여러 가지 실험이 이루어지고 있다.
이 작곡 시스템은 크게 두 부분으로 되어 있다. 음악의 전체적인 모양을 만드는 첫 번째 부분과 음악을 좀 더 아름답게 다듬는 두 번째 부분이 그것으로, 첫 번째 부분에서는 대력적인 음악의 박자와 화음을 결정하고 두 번째 부분에서는 화음을 다듬어 부드러운 멜로디를 생성해 낸다.
첫 번째 부분에서 맨 처음에 하는 일은 음악에서 사용하는 9가지 화음을 생성하는 것이다. 이것은 으뜸음, 딸림음, 버금딸림음과 그것들의 변형을 말하며 이 화음들이 음악 구성의 기본 단위이다
다음에 컴퓨터는 이 화음들 중 몇 개를 골라서 늘어 놓는다. 이 대 임의적으로 화음들을 뽑아내어 아무렇게나 배치해서 무작위적인 멜로디를 만들 수도 있고 일정한 규칙을 사용하여 보다 섬세하고 복잡하게 음악을 구성할 수도 있다. 아무런 규칙을 주지 않고 컴퓨터가 임의로 화음을 골라 배치하는 경우 듣기 좋은 소리가 나오는 경우가 드물기 때문에 실제로는 거의 음악이론에 근거한 특정한 규칙을 사용한다.
다음으로 할 일은 이 화음들에 리듬을 부여하는 것이다. 앞에서 박자 없이 쭉 늘어놓기만 한 화음들을 몇 그룹으로 묶어서 장단을 부여한다. 예를 들어 첫 번째 부분에서는 세마치 장단, 두 번째 부분에서는 보사노바 등이 그것이다. 이 과정에서 음표 하나하나의 길이가 결정된다.
리듬까지 결정이 되면 마지막으로 곡의 박자를 정하고 전체를 마디로 나누어 배치한다. 각 부분에 적절하게 음의 세기나 연주할 악기 등을 결정하면 첫 번째 부분의 결과물이 나온다.
여기에서 작곡을 끝내도 되겠지만 음악을 보다 자연스럽게 만들고 싶다면 두 번째 부분에서 여러 가지 처리를 해주어도 된다. 예를 들어 뚜렷한 멜로디가 없이 화음만 연주되는 부분이 어색하다고 느껴지면 두 번째 부분에서 멜로디를 생성하는 규칙을 첨가하면 된다. 혹은 화음이 너무 자주 변하지 않도록 조절하거나 스타카토, 붙임줄 증의 음악적 효과도 넣을 수 있다.
두 번째 부분에서 어떤 식으로 처리를 하느냐에 따라 첫 번째 부분이 같은 곡도 다른 느낌을 가질 수 있다. 이 과정을 지나면 드디어 음악이 완성된다. 카논과 푸가 등 많은 고전 음악들을 이와 유사한 수학적 방법론으로 작곡할 수 있다.
⊙ KAIST 이선희
⊙ Composing music with computers/Eduardo Reck Miranda
논문들 중
- A method for composing simple traditional music by computer/Gary M. Radar
- Who or what is making the music: Music creation in a machine age/Tang-chun Li
- Sounds of artificial life/Eduardo Reck Miranda
- A multiagent approach for musical interactive systems/Wulfhorst, Nakayama, Vicari
- BoB: an interactive improvisational music companion/Belinda Thom
- A computer participant in musical improvisation/William F. Walker
- Automatic composition of music by means of grammatical evolution/Puente, Alfonso, Moreno
- A machine learning approach to musical style recognition/Dannenberg, Thom, Watson
- Predicting chordal transitions in jazz/Belinda Thom
- SaxEx: a case-based reasoning systemfor generating expressive musical performances/Arcos, Mantaras, Serra
- GenJam: A genetic algorithm for generating jazz solos/John A. Biles
- Looking for new, not known music only: Music retrieval by melody style/Kuo, Shan
- Composing with genetic algorithms/Bruce L. Jacob
- The computer as accompanist/Buxton, Dannenberg
- A beat tracking system for acoustic signals of music/Goto, Muraoka
- Music and computer composition/James Anderson Moorer
- Harmonic Analysis from the computer representation of a musical score/Prather
- SmartMusicKIOSK: Music Listening Station with chorus-search function/Masatako Goto
- A comparison of melodic database retrieval techniques using sung queries/Hu, Dannenberg
- Music ranking techniques evaluated/Uitdenbogerd, Zobel
algorithm [ǽlgərìðm]
알고리듬, 일련의 산법, 연산
a precise rule specifying how to solve some problem
어떤 문제를 해결할 때, 입력된 자료에서 원하는 부분의 출력을 유도하는 규칙의 집합, 여러 단계의 유한 집합으로 구성되어 있고, 각 단계는 하나 또는 그 이상의 연산
전통적으로 기술은 예술의 표현방식의 지표를 넓혀 주는 역할을 했다. 벽에 그리던 그림을 종이의 발명으로 종이에 그릴 수 있게 되어 있고 악보로만 전해지던 음악을 녹음기의 발명으로 소리로 영원히 남겨 놓을 수 있게 되었다. 그것은 오늘날도 마찬가지로 다양한 소프트웨어들이 개인의 예술 창작 활동을 편리하게 하고 있다.
이들은 기술이 예술의 도구로 이용되는 예이다. 그러나 기술과 예술의 만남은 단순히 한 쪽이 다른 쪽의 도구로 이용되는 이상의 결과를 가져오기도 한다. 한 예로 오늘날 흔히 접할 수 있는 전자음악의 역사는 100년이 되지 않는다. 전자 음악을 만들 수 있는 도구 - 컴퓨터가 이전 시대에는 없었기 때문이다. 마찬가지로 사진이나 영화 등 현대에서는 당연하게 영유하는 많은 예술 창작물도 200년 전에는 찾아 볼 수 없었다.
사진, 영화, 컴퓨터게임, 전자 음악 등 현대의 많은 예술 장르들은 기술의 발달이 있은 후에야 비로소 탄생할 수 있다. 새로운 악기가 생기면 그로 인해 새로운 음악 스타일이 탄생한다. 이것은 기술과 예술이 만나는 또 다른 접점이다.
예술의 발전은 새로운 기술의 개발을 촉구하고 기술의 발전은 새로운 예술의 탄생을 도래한다. 이처럼 기술과 예술은 서로에게 밀접히 영향을 주며 함께 발전하는 관계에 있다. 이러한 현상을 생물학의 용어를 빌려 ‘공진화(함께 진화하다)’라고 표현하기도 한다.
기술과 예술의 공진화는 지금도 계속 진행 중이다. 유사 이래 어느 시대보다도 기술의 발전 속도가 빠른 지금, 새로운 예술장르에 대한 연구도 활발히 진행 중이다.
최근에 예술적 지평을 넓혀 주는 데 가장 큰 역할을 담당하는 기술은 무엇보다 디지털 기술이다. 컴퓨터와 인터넷의 발달은 예전에는 생각도 못했던 많은 작업들을 가능하게 하였다. 대표적인 신 장르인 ‘미디어 아트’의 경우 컴퓨터와 TV 등 여러 전자 장비를 이용하여 이전에는 선보이지 못했던 다양한 표현을 가능하게 한다. 우리나라의 대표적 미디어 아트 예술가로는 백남준이 있다.
미디어 아트는 예술가의 내면세계에 따라 다양한 형태로 나타나며 단순히 전자 장비의 이용뿐만 아니라 사용자를 직접 작품에 참여시켜 사용자의 움직임이나 행동에 따라 작품의 형태가 달라지게 하는 점도 큰 특징이다. 이러한 미디어 아트의 특징은 인터랙션(사용자와의 상호 작용) 기술이 있기에 가능하다.
사용자가 작품에 참여할 수 있는 것은 설치예술뿐만이 아니다. 전통적으로 종이 위에 쓰여 지고 일방적으로 독자에게 전달되는 것으로 생각되었던 문학작품에도 새로운 시도는 이루어지고 있다. 참여문학(participatory fiction)이라 일컬어지는 이것은 html 문서의 형태로 독자에게 제공된다. 독자는 링크를 따라가며 다양한 순서와 다양한 관점에서 작가의 의도를 파악할 수 있게 된다. 이러한 문학 작품을 창작하는 것을 돕기 위한 소프트웨어도 개발되었다.
인터넷의 발달도 예술 작품의 형성에 큰 영향을 미쳤다. 이것은 일인미디어(한 사람이 자신의 글이나 작품을 공개할 수 있는 개인 소유의 공간. 블로그 등이 대표적)로 대변되는 요즘의 유행과도 관계가 있다. 자신의 작품을 공개하기 위해 공식적인 전시나 잡지의 통로를 빌릴 수 있는 과거와는 달리 요즘은 인터넷을 통해 누구나 자기 작품을 공개 홍보할 수 있기 때문이다. 인터넷의 영향을 받은 대표적인 신예술 장르 중 하나인 ‘넷아트’의 경우 처음에는 단순히 작가의 작품의 사진이나 일부를 공개하는 목적으로 이용되었으나 최근에는 웹페이지의 구성과 내용 그 자체가 예술적 성격을 띠게 되었다.
지금까지 예로 든 예술 작품들은 모두 예술가들의 손을 거쳐 창작되는 작품이라는 점에서 디지털 이전 시대의 예술과 공통점을 가진다. 그러나 디지털 기술의 발달로 탄생된 예술 장르 중 일부는 이와는 전혀 다른 개념의 것이 있다. 인간의 손을 거치지 않는 예술, 즉 컴퓨터가 창작하는 예술이다.
가끔 뉴스 기사나 과학 잡지에서 로봇이 그림을 그리거나 컴퓨터가 음악을 만들고 글을 쓴다는 이야기를 본 적이 있을 것이다. 이러한 작업에서 예술가, 즉 인간의 개입은 전혀 없거나 최소한으로 제한된다. 처음에 몇 가지 변수를 설정하면(예 : 어떤 음악을 만들고 싶은가, 혹은 어떤 느낌의 그림을 그리고 싶은가) 그 다음에는 인간의 개입 없이 컴퓨터가 자신의 예술 작품을 창작해 내는 것이다. 인공 지능 기술과 컴퓨터가 발명되기 이전에는 상상할 수 없었던 장르이다.
이들 인공지능 예술에 사용된 기술을 한 가지로 설명하긴 어렵다. 이들 작품은 아직 실험적인 단계에 있으며 컴퓨터가 진정으로 창의력이나 사고 과정을 가지고 예술 작품을 만들기보다는, 예술가(혹은 기술자)가 미리 정해 놓은 어떤 규칙에 따라 작품을 만드는 경우가 많다. 각 작품에 사용된 규칙이나 과정은 작품마다 다르며 얼마나 현실세계를 잘 반영한 규칙을 만드느냐에 따라 결과가 달라진다.
음악을 컴퓨터가 자동으로 작곡하는 연구는 그 중 가장 활발히 연구되는 분야이다. 음악 자체가 수학성을 가지기에 컴퓨터가 발명되기 이전 시대부터 특정 규칙에 따라 음악을 작곡하려는 시도는 많았다. (바흐의 대위법이나 모차르트의 작곡 규칙 등) 자동 작곡은 이러한 규칙들을 컴퓨터로 옮겨 작곡 과정을 자동화하며 시작되었다.
오늘날에 이르러서는 이 과정이 인공지능 기술과 결합하여 보다 복잡하고 다양해졌다. 작곡가의 작곡 할 때의 사고 과정을 흉내 내는 것에서부터 인공생명체를 도입하는 방법까지 다양한 기술이 사용된 이들 인공지능 작곡은 전자 음악과 함께 컴퓨터 음악의 한 축을 형성하고 있다.
예술과 기술의 공진화, 예술의 도구로 사용되는 기술, 기술이 창조한 예술. 기술과 예술이 만나 형성하는 세 가지 접점에서 사용된 최첨단 기술은 어떤 형태일까?
‘알고리즘’은 전산학이나 수학에서 사용하는 용어로 쉽게 생각할 때 컴퓨터 프로그램의 내부 구조라 할 수 있다. 세 개의 수를 서로 비교해 가장 큰 숫자를 찾기 위해서 컴퓨터 프로그램은 내부적으로 두 개의 수를 먼저 비교하고 그 중 큰 수와 나머지 하나의 수를 비교한다. 이 과정을 바로 ‘알고리즘’이라 하며, 원하는 결과를 얻기 위해 프로그램이 수행하는 과정과 규칙을 가리킨다.
‘알고리즘 작곡’은 인간이 정한 규칙이나 특정한 제약 조건에 맞추어 컴퓨터가 자동적으로 작곡하는 과정을 뜻한다. 이것은 대위법과 같이 고전적인 음악 규칙에 맞추어 작곡되는 경우뿐만 아니라 심리학이나 인공지능의 개념을 채택하여 보다 자유롭게 컴퓨터가 작곡하도록 하는 경우도 포함한다. 즉, 흔히 컴퓨터가 자동으로 작곡하는 경우를 포괄하여 ‘알고리즘 작곡’이라고 한다고 볼 수 있다.
알고리즘 작곡의 역사는 1000년경까지 거슬러 올라간다. 텍스트 문서나 성당의 비율, 황금비 등 여러 가지 요소들에서부터 멜로디를 뽑아내는 방법을 연구하였으며 유명한 캐논, 푸가 등의 고전 음악들이 알고리즘 작곡 기법을 사용하여 작곡되었다. 모차르트는 2개의 주사위를 굴려 미리 만들어진 마디들의 조합을 이용해 미뉴엣을 만들었는데 이것은 가장 잘 알려진 알고리즘 작곡법에 의한 작품으로 유명하다.
20세기 이후에는 과학적 사고가 보편화되며 작곡에 수학적 기법을 직접적으로 도입하는 시도가 많아졌다. 이에 이용된 기술은 음렬주의, 확률, 통계적 기법 등으로 최근에는 진화나 신경망 등 생물학과 관련된 개념을 차용해 알고리즘 작곡에 응용하려는 시도도 많이 보인다.
음악과 수학이 자주 같이 언급되는 것은 음악 그 자체가 내재하고 있는 수학성 때문이다. 음악이 음악처럼 들리기 위해서 필요한 요소는 무엇일까? 가만히 관찰해 보면 듣기 좋은 음악에는 일종의 ‘구조’가 있는 것을 알 수 있다. 시작에 해당하는 음악 구절과 코러스에 해당하는 반복 부분, 클라이맥스에 해당하는 부분과 결말에 해당하는 부분이 대표적 예이다. 잘 만들어진 음악은 일종의 메시지를 가지고 있고 그것은 언어와 비슷한 형태의 구조를 가진다.
이러한 음악적 구조는 수학의 ‘형식언어’라는 개념을 빌려 나타낼 수 있다. 형식 언어는 언어의 문법구조를 나타내기 위한 개념으로 자연 언어(영어, 한국어 등 일상적으로 사용하는 언어) 뿐만 아니라 프로그래밍 언어 등을 표현하기 위해 주로 사용된다.
음악을 일종의 언어로 볼 때 음악의 구조는 일종의 문법으로 나타낼 수 있다. 일단 문법이 정해지면 문법에 맞추어 수없이 많은 문장을 언어에서 만들 수 있듯이 음악도 마찬가지로, 어떤 규칙에 따라 문법을 정해 놓으면 그에 따라 수도 없이 많은 음악을 만들어 낼 수 있다.
음악이 본질적으로 내재하고 있는 수학성은 그뿐만이 아니다. 음악이 음악처럼 들리기 위해서는 ‘반복’과 ‘새로움’의 두 가지 요소가 필수적인데, 음악 구절의 반복은 수학의 프랙탈 구조와 종종 비견되곤 한다. 멜로디나 음악 구절의 반복과 새로움을 적절하게균형을 맞추는 것이 음악의 핵심이라 할 수도 있으며, 프랙탈의 핵심 역시 반복에 있기 때문이다.
프랙탈은 전체 그림의 모양의 일부를 확대했을 때 전체 그림과 똑 같은 모양이 반복해서 나타나는 그림을 뜻한다. 흔히 볼 수 있는 눈의 결정이 대표적인 프랙탈이다. 눈의 결정은 그 자체로 하나의 그림이지만 결정 중 일부를 확대해 보면 전체 모양과 똑 같은 모양을 발견할 수 있다. 즉, 프랙탈은 자기 자신을 끊임없이 반복해서 복제해 내는 그림으로 그 자체로도 예술성을 띄고 있으며 음악 구조분석 등 다른 예술에도 응용되곤 한다.
프랙탈을 이용해 작곡할 수 있는 가장 기본적인 방법은 그림의 한 부분 한 부분에 소리의 파형이나 음악 구조를 대응시키는 것이다.
한 가지 예로 빨간색은 도, 흰색은 레 식의 대응법을 생각할 수 있다. 그러나 이러한 방법으로 의미 있는 음악을 생성해 내는 것은 매우 어렵다. 음악은 시간 예술인데 비해 프랙탈을 비롯한 그림은 시간예술이 아니기 때문이다. 대신 프랙탈은 알고리즘 작곡의 다른 시사점을 던져 준다.
프랙탈의 알고리즘 작곡에서의 가치는, 그것이 직접 작곡에 응용되기보다는 프랙탈을 생성해 내는 수학식을 응용하여 음악을 생성해 낼 수도 있다는 점에 있다.
프랙탈은 보통 간단한 수학식에 의해 만들어 지는데 이 식에 음악 변수나 멜로디, 리듬 등을 대응하면 적절한 반복으로 의미 있는 결과를 얻을 수 있다. 특히 프랙탈의 대표적인 특성인 ‘자기 반복(스스로를 반복해서 전체를 나타내는 특성)’을 작곡에 응용하는 방식은 많이 시도되었다. 대표적으로는 18세기 중반에 조나단 세바스찬 바흐가 작곡한 푸가가 유명하다.
알고리즘 작곡의 이해를 쉽게 하기 위해서 간단한 규칙에 기반 한 예제를 들어 보겠다. 알고리즘 작곡 연구자 Eduardo Reck Miranda가 제시한 이 시스템에서는 확률에 기반하여 임의적으로 화음들이 생성되며 이것을 간단한 규칙으로 늘어놓고 리듬을 부여할 것이다. 명심할 것은 이 방법만이 알고리즘 작곡의 전부가 아니라는 것이다. 이것은 이해를 쉽게 하기 위해 단순화한 예제이며 실제로는 훨씬 다양한 방법을 사용하여 여러 가지 실험이 이루어지고 있다.
이 작곡 시스템은 크게 두 부분으로 되어 있다. 음악의 전체적인 모양을 만드는 첫 번째 부분과 음악을 좀 더 아름답게 다듬는 두 번째 부분이 그것으로, 첫 번째 부분에서는 대력적인 음악의 박자와 화음을 결정하고 두 번째 부분에서는 화음을 다듬어 부드러운 멜로디를 생성해 낸다.
첫 번째 부분에서 맨 처음에 하는 일은 음악에서 사용하는 9가지 화음을 생성하는 것이다. 이것은 으뜸음, 딸림음, 버금딸림음과 그것들의 변형을 말하며 이 화음들이 음악 구성의 기본 단위이다
다음에 컴퓨터는 이 화음들 중 몇 개를 골라서 늘어 놓는다. 이 대 임의적으로 화음들을 뽑아내어 아무렇게나 배치해서 무작위적인 멜로디를 만들 수도 있고 일정한 규칙을 사용하여 보다 섬세하고 복잡하게 음악을 구성할 수도 있다. 아무런 규칙을 주지 않고 컴퓨터가 임의로 화음을 골라 배치하는 경우 듣기 좋은 소리가 나오는 경우가 드물기 때문에 실제로는 거의 음악이론에 근거한 특정한 규칙을 사용한다.
다음으로 할 일은 이 화음들에 리듬을 부여하는 것이다. 앞에서 박자 없이 쭉 늘어놓기만 한 화음들을 몇 그룹으로 묶어서 장단을 부여한다. 예를 들어 첫 번째 부분에서는 세마치 장단, 두 번째 부분에서는 보사노바 등이 그것이다. 이 과정에서 음표 하나하나의 길이가 결정된다.
리듬까지 결정이 되면 마지막으로 곡의 박자를 정하고 전체를 마디로 나누어 배치한다. 각 부분에 적절하게 음의 세기나 연주할 악기 등을 결정하면 첫 번째 부분의 결과물이 나온다.
여기에서 작곡을 끝내도 되겠지만 음악을 보다 자연스럽게 만들고 싶다면 두 번째 부분에서 여러 가지 처리를 해주어도 된다. 예를 들어 뚜렷한 멜로디가 없이 화음만 연주되는 부분이 어색하다고 느껴지면 두 번째 부분에서 멜로디를 생성하는 규칙을 첨가하면 된다. 혹은 화음이 너무 자주 변하지 않도록 조절하거나 스타카토, 붙임줄 증의 음악적 효과도 넣을 수 있다.
두 번째 부분에서 어떤 식으로 처리를 하느냐에 따라 첫 번째 부분이 같은 곡도 다른 느낌을 가질 수 있다. 이 과정을 지나면 드디어 음악이 완성된다. 카논과 푸가 등 많은 고전 음악들을 이와 유사한 수학적 방법론으로 작곡할 수 있다.
⊙ KAIST 이선희
⊙ Composing music with computers/Eduardo Reck Miranda
논문들 중
- A method for composing simple traditional music by computer/Gary M. Radar
- Who or what is making the music: Music creation in a machine age/Tang-chun Li
- Sounds of artificial life/Eduardo Reck Miranda
- A multiagent approach for musical interactive systems/Wulfhorst, Nakayama, Vicari
- BoB: an interactive improvisational music companion/Belinda Thom
- A computer participant in musical improvisation/William F. Walker
- Automatic composition of music by means of grammatical evolution/Puente, Alfonso, Moreno
- A machine learning approach to musical style recognition/Dannenberg, Thom, Watson
- Predicting chordal transitions in jazz/Belinda Thom
- SaxEx: a case-based reasoning systemfor generating expressive musical performances/Arcos, Mantaras, Serra
- GenJam: A genetic algorithm for generating jazz solos/John A. Biles
- Looking for new, not known music only: Music retrieval by melody style/Kuo, Shan
- Composing with genetic algorithms/Bruce L. Jacob
- The computer as accompanist/Buxton, Dannenberg
- A beat tracking system for acoustic signals of music/Goto, Muraoka
- Music and computer composition/James Anderson Moorer
- Harmonic Analysis from the computer representation of a musical score/Prather
- SmartMusicKIOSK: Music Listening Station with chorus-search function/Masatako Goto
- A comparison of melodic database retrieval techniques using sung queries/Hu, Dannenberg
- Music ranking techniques evaluated/Uitdenbogerd, Zobel