무한소수음악(원주율, 황금비, 피보나치수열)
₩0
특정 패턴의 무한소수(원주율, 황금비, 피보나치수열)를 특정한 음으로 맵핑시켰을 때 음악을 들을 수 있도록 제작된 음악 코드.
영화 ‘이상한 나라의 수학자’ 에서 영감을 받아서 제작된 소스코드임.
해당 소스코드의 음 맵핑 방법은 영화에서 소개하는 맵핑 방법과 동일함.
소스코드의 결과로 산출된 음악 코드는 마비노기(게임)에서 재생 / 또는 MML 재생 프로그램으로 재생 가능.
pi_original.txt 에는 10진수로 된 원주율 수치가 들어 있습니다.
원주율의 수치는 인터넷에서 누구나 쉽게 찾아볼 수 있습니다.
원주율 수치 그대로를 가지고는 음악을 재생할 방법이 없으므로, 음악을 재생할 수 있는 형태로 변형이 필요합니다.
따라서 각 원주율의 수치 1~9 까지를 음악을 재생할 수 있는 형태로 변형시켜야 합니다. 위에 나온 해당 매칭 방법은, 영화 <이상한 나라의 수학자> 에서 매칭했던 것과 같은 방법으로 알려져 있습니다.
변환된 pi_write.txt 는 MML 음악으로 재생이 가능한 형태입니다.
게임 <마비노기> 에서 MML 음악을 재생할 수 있습니다. 물론 게임을 통해서가 아니라 컴퓨터상에서 별도의 MML 재생 프로그램이 존재합니다. 다만 여기서는 유튜브 컨텐츠로 원주율 음악을 재생시켜야 하므로, 마비노기를 직접 실행시켜서 MML 음악을 재생합니다.
결론적으로 말하면 파이썬 프로그래밍으로 생성된 원주율 음악은 영화 <이상한 나라의 수학자> 에서 들리는 아름다운 곡의 선율과는 상당한 차이가 있습니다. 해당 영화에서는 원주율의 앞부분 일부만을 컴퓨터로 생성한 후, 사람의 편집 과정을 거쳤을 것이라 추정됩니다.
goldenratio_original.txt 에는 10진수로 된 황금비 수치가 들어 있습니다.
황금비의 수치는 인터넷에서 누구나 쉽게 찾아볼 수 있습니다. …… 다만… 문제가 있습니다.
황금비의 수치는 원주율의 수치처럼 수치가 긴 것이 공유되어 있지 않습니다. 따라서, 황금비로는 2~3분의 음악을 다 채울 수 없었고 결국 1분짜리 음악이 만들어졌습니다.
황금비 음악을 만드는 원리는 원주율 음악과 대동소이 합니다. 따라서 별도로 설명할 만한 부분이 거의 없습니다.
이번에는 10진수로 된 피보나치수열 수치가 들어 있는 부분이 없습니다.
대신 fibo 함수로 피보나치수열 수치를 만듭니다. 함수 내부에서 만들어지는 값이므로 숫자값이고,
그래서 if문에는 문자열 자료형이 아닌 숫자 자료형을 가지고 비교를 하게 됩니다.
문제는 fibo 함수는 반복할수록 계속 값이 커지게 되는데, 그래서 i = 8~10 정도가 되면 fibo에서 return하는 값이 10 이상인 값이 됩니다.
음악으로 맵핑할 값은 0부터 9까지 이므로, 10이 넘는 값이 들어오면 1자리수씩 짤라줘야 합니다.
그래서 이를 위한 while 문을 하나 더 만들고, 10으로 나눠서 몫과 나머지를 활용하여
if문을 돌려서 MML 음악을 맵핑, 구현해야 합니다.
이 부분의 프로그래밍 구현이 기존 원주율 음악 소스코드와 가장 큰 차이점이라 할 수 있습니다.
참고: 컴퓨터 프로그래밍을 통해 자동으로 생성된 음악이므로, 해당 음악에서 별도의 저작권은 없습니다.
상품평
아직 상품평이 없습니다.