diff --git a/sim/fakes/bl00mbox.py b/sim/fakes/bl00mbox.py
index a7f292e72284f2240f79138afb07738bd7b8765b..48327a29a4f9a54515073cd84b4c7800557748db 100644
--- a/sim/fakes/bl00mbox.py
+++ b/sim/fakes/bl00mbox.py
@@ -1,41 +1,50 @@
-class tinysynth:
-    def __init__(self, a):
-        pass
+import pygame
+from _sim import path_replace
 
-    def decay_ms(self, a):
-        pass
 
-    def decay(self, a):
+class Channel:
+    def __init__(self, id):
         pass
 
-    def waveform(self, a):
-        pass
+    def new(self, a, *args, **kwargs):
+        return a(self, *args, **kwargs)
 
-    def tone(self, note):
+    def clear(self):
         pass
 
-    def start(self):
-        pass
+    mixer = None
+    channel_num = 0
+    volume = 8000
 
-    def sustain(self, a):
-        pass
 
-    def attack_ms(self, a):
-        pass
+class patches:
+    class sampler:
+        class Signals:
+            class Trigger:
+                def __init__(self, sampler):
+                    self._sampler = sampler
 
-    def release_ms(self, a):
-        pass
+                def start(self):
+                    self._sampler._sound.set_volume(
+                        self._sampler._channel.volume / 32767
+                    )
+                    self._sampler._sound.play()
 
-    def volume(self, a):
-        pass
+            def __init__(self, sampler):
+                self._sampler = sampler
+                self._trigger = patches.sampler.Signals.Trigger(sampler)
 
-    def stop(self):
-        pass
+            output = None
 
+            @property
+            def trigger(self):
+                return self._trigger
 
-class Channel:
-    def __init__(self, id):
-        pass
+        def __init__(self, channel, path):
+            self._sound = pygame.mixer.Sound(path_replace(path))
+            self._signals = patches.sampler.Signals(self)
+            self._channel = channel
 
-    def clear(self):
-        pass
+        @property
+        def signals(self):
+            return self._signals