Difference between revisions of "Playing multiple sounds at once"

From ESE205 Wiki
Jump to navigation Jump to search
Line 5: Line 5:
 
= Introduction =
 
= Introduction =
 
This tutorial will explain different methods attempted in getting multiple sounds to play concurrently, as well as the method that was most valuable.
 
This tutorial will explain different methods attempted in getting multiple sounds to play concurrently, as well as the method that was most valuable.
 +
= Steps =
 +
* Pick wav files desired to be played.
 +
* Load wav files in code and save it to a variable that can be called later.
 +
* Find a line of code that will play the sound.
 +
* Find a line of code that will allow the sound to be played while different notes are being played at the same time. 
  
 
= Libraries tested =  
 
= Libraries tested =  
Line 14: Line 19:
  
 
= Pydub and Pygame=  
 
= Pydub and Pygame=  
 +
These two libraries were used in finding the best way to play a sound by itself.
 +
 +
Using pydub:
 +
Using pygame:
 +
firstSound = pygame.mixer.Sound('/home/pi/laserharp-sounds/samples/ambi_dark.wav')
 +
secondSound = pygame.mixer.Sound('/home/pi/laserharp-sounds/samples/ambi_choir.wav')
 +
firstSound.play()
 +
secondSound.play()
 +
 +
                                  or
 +
firstSound = pygame.mixer.music('/home/pi/laserharp-sounds/samples/ambi_dark.wav')
 +
secondSound = pygame.mixer.music('/home/pi/laserharp-sounds/samples/ambi_choir.wav')
 +
firstSound.play()
 +
secondSound.play()
 +
 
= Multiprocessing and Multithreading =  
 
= Multiprocessing and Multithreading =  
 
= Multithreading with Swmixer=
 
= Multithreading with Swmixer=

Revision as of 19:31, 25 April 2019


Introduction

This tutorial will explain different methods attempted in getting multiple sounds to play concurrently, as well as the method that was most valuable.

Steps

  • Pick wav files desired to be played.
  • Load wav files in code and save it to a variable that can be called later.
  • Find a line of code that will play the sound.
  • Find a line of code that will allow the sound to be played while different notes are being played at the same time.

Libraries tested

  • pydub
  • multiprocessing
  • multithreading
  • swmixer
  • pygame

Pydub and Pygame

These two libraries were used in finding the best way to play a sound by itself.

Using pydub: Using pygame:

firstSound = pygame.mixer.Sound('/home/pi/laserharp-sounds/samples/ambi_dark.wav')
secondSound = pygame.mixer.Sound('/home/pi/laserharp-sounds/samples/ambi_choir.wav')
firstSound.play()
secondSound.play()
                                  or
firstSound = pygame.mixer.music('/home/pi/laserharp-sounds/samples/ambi_dark.wav')
secondSound = pygame.mixer.music('/home/pi/laserharp-sounds/samples/ambi_choir.wav')
firstSound.play()
secondSound.play()

Multiprocessing and Multithreading

Multithreading with Swmixer

Pygame with Channels

Link to project

Laser Harp