Sign in to follow this  
Followers 0
BINREV SPYD3R

HPR - HPR0991: Making a Music Sampler with Midi and Pygame

1 post in this topic

Pygame Midi documentation: http://www.pygame.org/docs/ref/midi.htmlPygame Mailing List: http://www.pygame.org/wiki/infoMidi.py sample from pygame example folder: https://bitbucket.org/pygame/pygame/src/25e3f2cee879/examples/midi.pySampler/Sound Looper made from python, pygame and midi: http://www.pygame.org/project-BadPenni+-+MIDI+Triggered+Sound+Looper-1734-.html Sample values that populate midi_events variable: Middle C note key press (notice the data1 is 60 and data2 is 127) <Event(34-Unknown {'status': 144, 'vice_id': 2, 'timestamp': 6701, 'data1': 60, 'data3': 0, 'data2': 127})> Middle C note key release (notice the data1 is 60 and data2 is 0) <Event(34-Unknown {'status': 128, 'vice_id': 2, 'timestamp': 6764, 'data1': 60, 'data3': 0, 'data2': 0})> Middle C# note key press (notice the data1 is now 61) <Event(34-Unknown {'status': 144, 'vice_id': 2, 'timestamp': 206684, 'data1': 61, 'data3': 0, 'data2': 127})>Python code snippet that pulls the note number from the midi_events list and appends an "off" string if it is a key release. if str(midi_events[0][0][2]) != "0": midinote = str(midi_events[0][0][1]) else: midinote = str(midi_events[0][0][1]) + "off"Controlling sounds with if statements and our midinote variable: distbassrollloop = pygame.mixer.Sound("7FullCircleDistBassRollLoop.wav") distsnarerollloop = pygame.mixer.Sound("7FullCircleDistSnareRollLoop.wav") distbass = pygame.mixer.Sound("7FullCircleDistBassPad.wav") distsnare = pygame.mixer.Sound("7FullCircleDistSnare.wav") if midinote == "48": distbass.play() if midinote == "49": distbassrollloop.play(1000) if midinote == "49off": distbassrollloop.stop() if midinote == "50": distsnare.play() if midinote == "51": distsnarerollloop.play(1000) if midinote == "51off": distsnarerollloop.stop()Contact info: bgryderclock on Google+: https://plus.google.com/u/0/114032638902983586355 bgryderclock on Twitter: https://twitter.com/bgryderclock bgryderclock on Identica: http://identi.ca/bgryderclockLinkshttp://www.pygame.org/docs/ref/midi.htmlhttp://www.pygame.org/wiki/infohttps://bitbucket.org/pygame/pygame/src/25e3f2cee879/examples/midi.pyhttp://www.pygame.org/project-BadPenni+-+MIDI+Triggered+Sound+Looper-1734-.htmlhttps://plus.google.com/u/0/114032638902983586355https://twitter.com/bgryderclockhttp://identi.ca/bgryderclock

Go to this episode

-1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0