 
   setVelocity: (self) ->
 
-  setVolume: (self) ->
+  setVolume: (self, volume) ->
+    self.element.volume = volume
 
   setVolumeLimits: (self) ->
 
   stop: (self) ->
+    self.element.load()
 
-  tell: (self) ->
-
+  tell: (self, time_unit = "seconds") ->
+    switch time_unit
+      when "seconds" then self.element.currentTime
+      when "samples" then 0


  setDirection: (self) ->

  setLooping: (self) ->

  setPitch: (self) ->


  getVelocity: (self) ->

  getVolume: (self) ->
    self.element.volume

  getVolumeLimits: (self) ->

  isLooping: (self) ->
    !!self.element.getAttribute("loop")

  isPaused: (self) ->
    self.element.paused

  isPlaying: (self) ->
    !self.element.paused

  isRelative: (self) ->

  isStatic: (self) ->

  isStopped: (self) ->
    self.isPaused(self) and self.currentTime == 0

  pause: (self) ->
    self.element.pause()

  play: (self) ->
    self.element.play()

  resume: (self) ->
    self.element.play()

  rewind: (self) ->
    self.element.currentTime = 0

  seek: (self, offset, time_unit = "seconds") ->
    switch time_unit
      when "seconds" then self.element.currentTime = offset

  setAttenuationDistances: (self) ->

