PyGame playing MP3 or MIDI music

Links to Python scripts.

Moderators: KDoiron, ChrJim, mawe, python

PyGame playing MP3 or MIDI music

Postby EneUran on Sat Dec 27, 2008 9:56 am

Here is an example on how to use module pygame to play music files of type MP3 or MIDI:
Code: Select all
# play a MP3 or MIDI music file using module pygame
# (does not create a GUI frame in this case)
# pygame is free from: http://www.pygame.org/
# Tested with pygame-1.8.0 by:  Ene Uran

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 MP3 or MIDI music file you have ...
# (if not in working folder, use full path)
music_file = "Drumtrack.mp3"
#music_file = "ChancesAre.mid"

# set up the mixer
freq = 44100     # audio CD quality
bitsize = -16    # unsigned 16 bit
channels = 2     # 1 is mono, 2 is stereo
buffer = 2048    # number of samples (experiment to get right sound)
pygame.mixer.init(freq, bitsize, channels, buffer)

# optional volume 0 to 1.0
pygame.mixer.music.set_volume(0.75)

try:
    play_music(music_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

Call me for my phone number.
User avatar
EneUran
Python Super User
Python Super User
 
Posts: 199
Joined: Thu Mar 22, 2007 3:51 pm
Location: Burbank

Return to Python Scripts

Who is online

Users browsing this forum: No registered users and 3 guests


Sponsored by Dreamlink Web hosting and Traduzioni Rumeno Italiano and ASSP Deluxe for cPanel.