본문 바로가기

Youtube(Y)

원주율 음악 만들기: 소스코드, 결론

 

원주율 음악은 이렇게 만듭니다.

 

 

 

파이썬 소스코드 (파이썬 3 입니다.)

 

 

 

import random
file1 = open("pi_original.txt", "r")
file2 = open("pi_write.txt", "w")
data = file1.read()
#print(data)

#초기값 설정
data2 = "MML@t120"
file2.write(data2)

for i in data :
    if i == "0" :
        data2 = "o3g#"
    elif i == "1" :
        data2 = "o3a"
    elif i == "2":
        data2 = "o3b"
    elif i == "3" :
        data2 = "o4c"
    elif i == "4" :
        data2 = "o4d"
    elif i == "5":
        data2 = "o4e"
    elif i == "6":
        data2 = "o4f"
    elif i == "7" :
        data2 = "o4g#"
    elif i == "8" :
        data2 = "o4a"
    elif i == "9" :
        data2 = "o4b"
    file2.write(data2)

    j = random.randint(1,24)
    if 1 < j < 12 :
        data3 = ""
    elif 12 < j < 19 :
        data3 = "8"
    elif j == 20 :
        data3 = "2"
    elif 20 < j < 23 :
        data3 = "."
    elif j == 24:
        data3 = "8."
    file2.write(data3)

file2.close()
file1.close()

pimusic.py
0.00MB

 

 

 

pi_original.txt 에는 10진수로 된 원주율 수치가 들어 있습니다.

원주율의 수치는 인터넷에서 누구나 쉽게 찾아볼 수 있습니다.

 

원주율 수치 그대로를 가지고는 음악을 재생할 방법이 없으므로, 음악을 재생할 수 있는 형태로 변형이 필요합니다.

따라서 각 원주율의 수치 1~9 까지를 음악을 재생할 수 있는 형태로 변형시켜야 합니다. 위에 나온 해당 매칭 방법은, 영화 <이상한 나라의 수학자> 에서 매칭했던 것과 같은 방법으로 알려져 있습니다.

 

변환된 pi_write.txt 는 MML 음악으로 재생이 가능한 형태입니다.

게임 <마비노기> 에서 MML 음악을 재생할 수 있습니다. 물론 게임을 통해서가 아니라 컴퓨터상에서 별도의 MML 재생 프로그램이 존재합니다. 다만 여기서는 유튜브 컨텐츠로 원주율 음악을 재생시켜야 하므로, 마비노기를 직접 실행시켜서 MML 음악을 재생합니다.

 

결론적으로 말하면 파이썬 프로그래밍으로 생성된 원주율 음악은 영화 <이상한 나라의 수학자> 에서 들리는 아름다운 곡의 선율과는 상당한 차이가 있습니다. 해당 영화에서는 원주율의 앞부분 일부만을 컴퓨터로 생성한 후, 사람의 편집 과정을 거쳤을 것이라 추정됩니다.

 

자세한 코딩 과정 해설은 나중에 영상을 따로 만들어서 설명드리겠습니다.

 

pi_original.txt
0.01MB
pi_write.txt
0.04MB

 

참고: 컴퓨터 프로그래밍을 통해 자동으로 생성된 음악이므로, 해당 음악에서 별도의 저작권은 없습니다.

 

 

 

2022.7.30. 10:50 작성.