In [1]:
from IPython.display import display, Audio

In [2]:
# 可以直接播放 .mp3
# Audio('./abc.mp3', autoplay=True)

In [3]:
import numpy as np

In [4]:
# 正弦波音樂, 常見的播放頻率是 44.1k , 48k
rate = 48000
x = np.arange(0, 1, 1/rate)
Audio(np.sin(x*2*np.pi*200), rate=rate, autoplay=True)


Out[4]:

In [5]:
import time
# 因為八度音是頻率跳兩倍,共 12 個半音
ftable_full=np.logspace(0,np.log10(2),13)*262
# 對應到 do, re, me
ftable = ftable_full[[0,2,4,5,7,9,11]]
music = []
for s in [5,3,3,4,2,2,1,2,3,4,5,5,5]:
    x = np.arange(0, .5, 1/rate)
    display(Audio(np.sin(x*2*np.pi*ftable[s-1]), rate=rate, autoplay=True))
    time.sleep(0.5)



In [6]:
# 用 concatenate
music = []
for s in [5,3,3,4,2,2,1,2,3,4,5,5,5]:
    x = np.arange(0, .5, 1/rate)
    music.append(np.sin(x*2*np.pi*ftable[s-1]))
Audio(np.concatenate(music), rate=rate, autoplay=True)


Out[6]:

Q

改變音長