Last active
April 21, 2022 11:27
-
-
Save naotokui/29073690279056e9354e6259efbf8f30 to your computer and use it in GitHub Desktop.
Play MIDI file in Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# see: https://www.daniweb.com/programming/software-development/code/216976/play-a-midi-music-file-using-pygame | |
# sudo pip install pygame | |
# on ubuntu | |
# sudo apt-get install python-pygame | |
import pygame | |
def play_music(music_file): | |
""" | |
stream music with mixer.music module in blocking manner | |
this will stream the sound from disk while playing | |
""" | |
clock = pygame.time.Clock() | |
try: | |
pygame.mixer.music.load(music_file) | |
print "Music file %s loaded!" % music_file | |
except pygame.error: | |
print "File %s not found! (%s)" % (music_file, pygame.get_error()) | |
return | |
pygame.mixer.music.play() | |
while pygame.mixer.music.get_busy(): | |
# check if playback has finished | |
clock.tick(30) | |
# pick a midi music file you have ... | |
# (if not in working folder use full path) | |
midi_file = './data/clean_midi/808 State/Pacific 202.mid' | |
freq = 44100 # audio CD quality | |
bitsize = -16 # unsigned 16 bit | |
channels = 2 # 1 is mono, 2 is stereo | |
buffer = 1024 # number of samples | |
pygame.mixer.init(freq, bitsize, channels, buffer) | |
# optional volume 0 to 1.0 | |
pygame.mixer.music.set_volume(0.8) | |
try: | |
play_music(midi_file) | |
except KeyboardInterrupt: | |
# if user hits Ctrl/C then exit | |
# (works only in console mode) | |
pygame.mixer.music.fadeout(1000) | |
pygame.mixer.music.stop() | |
raise SystemExit |
When i run this file it shows that audio device is not available
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
would this work with any midi file or just from pygame