title: What is the issue with this sound manager?
body: <p>i've been writing this sound manager. No errors are given what so ever, but the sounds don't play.
  I can't for the life of me see why the sounds aren't playing, i would apreciate it if someone could point me in the right direction to fixing my code.
  Cheers in advance and here is the code itself.</p>
  <pre><code>import openal
  import math
  import time
  import threading
  
  def make_orientation(alpha,beta):
      alpha=math.radians(alpha)
      beta=math.radians(beta)
      x = math.cos(alpha) * math.cos(beta)
      z = math.sin(alpha) * math.cos(beta)
      y = math.sin(beta)
      return (x, y, z, 0, 1, 0)
  openal.oalInit()
  
  class sound():
      def __init__(self):
          self.filename=&quot;&quot;
          self.source=None
          self.vol=1.0
          self.pitch=1.0
          self.x=0.0
          self.y=0.0
          self.z=0.0
          self.looping=False
      def load(self, path):
          self.source=openal.oalOpen(path)
          self.source.set_position((self.x,self.y,self.z))
          self.source.set_gain(self.vol)
          self.source.set_pitch(self.pitch)
          self.source.set_looping(self.looping)
      def play(self):
          if not self.is_active():
              return False
          self.source.play()
          return True
      
      def play_wait(self):
          if not self.is_active():
              return False
          self.source.play()
          while self.is_playing():
              time.sleep(0.005)
          return True
      
      def is_active(self):
          if self.source!=None:
              return True
          else:
              return False
          
      
      def is_playing(self):
          if self.source.get_state()==True:
              return True
          else:
              return False
          
      
      def set_sound_args(self, x=0.0, y=0.0, z=0.0, vol=1.0, pitch=1.0, looping=False):
          self.x=x
          self.y=y
          self.z=z
          self.vol=vol
          self.pitch=pitch
          self.looping=looping
      
      def destroy(self):
          del self.source
          self.source = None
          del self
      
  
  class SoundPool():
      def __init__(self):
          self.sounds=[]
      
      def append(self, sound):
          if sound.source is None:
              pass
          else:
              self.sounds.append(source)
          
      
      def destroy(self,path):
          for sound in self.sounds:
              if sound.filename == path:
                  sound.destroy()
                  self.sounds.pop(sound)
              else:
                  pass
              
          
      
      def destroyall(self):
          for sound in self.sounds:
              sound.destroy()
              self.sounds.pop(sound)
          
              
          
      
  
  class sm():
      def __init__(self):
          self.pool=SoundPool()
      
      def checkloaded(self, path):
          for i in self.pool.sounds:
              if i.filename == path:
                  return i
              else:
                  return None
              
          
      
      def play_stationary(self, path, vol=1.0, pitch=1.0, looping=False):
          checked = self.checkloaded(path)
          if checked is None:
              Sound=sound()
              Sound.set_sound_args(0.0,0.0,0.0, vol=vol, pitch=pitch, looping=looping)
              self.pool.append(Sound)
              Sound.play()
          else:
              i.play()
          
  </code></pre>
  <p>Just as a note, this is not completely finished but the main functionality is done although it doesn't work.</p>