Perpustakaan Python yang dapat menghasilkan suara yang dimainkan oleh instrumen terutama gitar dan piano. Menggunakan Pyaudio sebagai ketergantungannya.
Anda hanya perlu mengetahui sintaks Python dasar untuk menggunakan perpustakaan ini.
Jika di mesin Anda sebelumnya, Anda belum pernah menginstal Pyaudio maka lakukan ini:
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0
Unduh binari dari sini
Sekarang lakukan ini
pip install PyAudio‑0.2.11‑cp39‑cp39m‑win_amd64.whl
Kemudian
python3 -m pip install PyMusic-Instrument
Memainkan catatan piano.
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 PyAudioBermain string gitar.
guitar = Instrument ( 44100 )
guitar . record_key ( 25 , duration = 0.5 ) # A
guitar . play ()
guitar . clear_sample () # clears the sample
guitar . close ()Anda dapat melihat di sini nomor kunci untuk frekuensi yang sesuai.
Atau Anda juga dapat memplot grafik
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 ()Atau spectogram
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/