What are the key differences between the Sound and Music classes in Pygame? What are the limitations of each? In what situation would one use one or the other? Is there a benefit to using them in an unintuitive way such as using Sound objects to play music files or visa-versa? Are there specifically issues with channel limitations, and do one or both have the potential to be dropped from their channel unreliably? What are the risks of playing music as a Sound?
In a game,
music would be the a way to play background music and
sound the way to play sound effects (ej. jumping, firing, etc).
Music is a special streaming channel of the Mixer. This means the file is streamed from disk in small chuncks and not loaded at once.
Pygame only supports one Music at a time but you can have several Sound objects playing at once, as long as you have available channels.
Music allows you to
queue songs and
set_endevent to receive an event when the track ends. Note that this can also be achieved by with Sounds using the Channel object.
If you need multiple sounds playing at a time, ie: music player with crossfade, you should use Channels + Sounds. If you only need one background music at a time and mayble multiple sound effects, use Music and Sounds.