Eine Python -Bibliothek, die Sounds erzeugen kann, die von Instrumenten hauptsächlich Gitarre und Klavier gespielt werden. Es verwendet Pyaudio als Abhängigkeit.
Sie müssen nur die grundlegende Python -Syntax kennen, um diese Bibliothek zu verwenden.
Wenn Sie zuvor in Ihrem Computer Pyaudio noch nie installiert haben, dann tun Sie Folgendes:
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0
Laden Sie die Binärdateien von hier herunter
Jetzt mach das
pip install PyAudio‑0.2.11‑cp39‑cp39m‑win_amd64.whl
Dann
python3 -m pip install PyMusic-Instrument
Klaviernotizen spielen.
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 PyAudioGitarrenschnüre spielen.
guitar = Instrument ( 44100 )
guitar . record_key ( 25 , duration = 0.5 ) # A
guitar . play ()
guitar . clear_sample () # clears the sample
guitar . close ()Hier können Sie sich die Schlüsselnummern für die entsprechende Frequenz ansehen.
Alternativ können Sie auch das Diagramm zeichnen
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 ()Oder das Spektogramm
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/