PyMusic Instrument
1.0.0
一个Python库,可以产生主要由吉他和钢琴演奏的乐器。它使用Pyaudio作为其依赖性。
您只需要了解基本的Python语法即可使用此库。
如果以前在计算机中您从未安装过Pyaudio,请执行此操作:
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0
从这里下载二进制文件
现在这样做pip install PyAudio‑0.2.11‑cp39‑cp39m‑win_amd64.whl
然后python3 -m pip install PyMusic-Instrument
弹钢琴笔记。
from Instrument import Instrument
piano = Instrument ( bit_rate = 44100 )
piano . record_key ( 52 , duration = 0.3 ) # C5
piano . record_chord ([( 52 , 56 , 61 )], duration = 0.3 ) # C5 E5 A5
piano . play ()
piano . close () # Terminates PyAudio弹吉他弦。
guitar = Instrument ( 44100 )
guitar . record_key ( 25 , duration = 0.5 ) # A
guitar . play ()
guitar . clear_sample () # clears the sample
guitar . close ()您可以在这里查看相应频率的关键号码。
另外,您也可以绘制图形
import matplotlib . pyplot as plt
key_colors = { 40 : [ "red" , 1 ], 42 : [ "blue" , 1 ], 44 : [ "green" , 1 ], 45 : [ "gray" , 1 ],
47 : [ "orange" , 1 ], 35 : [ "purple" , 1 ], (( 51 , 56 , 61 ),): [ 'black' , 1 ]}
# piano.graphing sample contains key, time take as an array, wave equation as an array.
for key , time , wave in piano . graphing_sample :
if key_colors [ key ][ 1 ]:
plt . plot ( time , wave , label = key , color = key_colors [ key ][ 0 ])
key_colors [ key ][ 1 ] = 0
else :
plt . plot ( time , wave , color = key_colors [ key ][ 0 ])
plt . show ()或幽灵
import librosa . display
amplitude = librosa . stft ( piano . sample )
db = librosa . amplitude_to_db ( abs ( amplitude ))
plt . figure ( figsize = ( 14 , 5 ))
librosa . display . specshow ( db , sr = 44100 , x_axis = 'time' , y_axis = 'hz' )
plt . colorbar ()
plt . show ()https://pymusic-instrument.readthedocs.io/en/latest/