Difference between revisions of "Playing multiple sounds at once"

From ESE205 Wiki
Jump to navigation Jump to search
Line 22: Line 22:
  
 
Using pydub:
 
Using pydub:
 +
from pydub import AudioSegment
 +
from pydub.playback import play
 +
sound = AudioSegment.from_wav('/home/pi/laserharp-sounds/samples/harpSound1.wav')
 +
play(sound)
 +
 +
 
Using pygame:
 
Using pygame:
 +
import pygame
 
  pygame.init()
 
  pygame.init()
 
  pygame.mixer.init()
 
  pygame.mixer.init()
Line 32: Line 39:
 
                                   or
 
                                   or
  
 +
import pygame
 
  pygame.init()
 
  pygame.init()
 
  pygame.mixer.init()
 
  pygame.mixer.init()

Revision as of 20:18, 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:

from pydub import AudioSegment
from pydub.playback import play
sound = AudioSegment.from_wav('/home/pi/laserharp-sounds/samples/harpSound1.wav')
play(sound)


Using pygame:

import pygame
pygame.init()
pygame.mixer.init()
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
import pygame
pygame.init()
pygame.mixer.init()
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