diff --git a/python_payload/apps/simple_drums/__init__.py b/python_payload/apps/simple_drums/__init__.py
index 96896c2dcbe207e7fc7a27578c10fecb1293e5d6..adf37280d9314a3089bd6cba022ba305ca873fe0 100644
--- a/python_payload/apps/simple_drums/__init__.py
+++ b/python_payload/apps/simple_drums/__init__.py
@@ -41,17 +41,24 @@ class SimpleDrums(Application):
         super().__init__(app_ctx)
         # ctx.rgb(0, 0, 0).rectangle(-120, -120, 240, 240).fill()
         self.blm = bl00mbox.Channel()
-        self.seq = self.blm.new(bl00mbox.patches.step_sequencer)
-        self.hat = self.blm.new(bl00mbox.patches.sampler, "hihat.wav")
-        # Dot(10, 10, -30, 0, self._track_col(0)).draw(0,ctx)
+        self.num_samplers = 3
+        self.seq = self.blm.new(bl00mbox.patches.step_sequencer, self.num_samplers)
+
         self.kick = self.blm.new(bl00mbox.patches.sampler, "kick.wav")
-        # Dot(20, 20, 0, 40, self._track_col(1)).draw(0,ctx)
-        self.snare = self.blm.new(bl00mbox.patches.sampler, "snare.wav")
-        # Dot(30, 30, 2, -20, self._track_col(2)).draw(0,ctx)
+        self.hat = self.blm.new(bl00mbox.patches.sampler, "hihat.wav")
+        self.close = self.blm.new(bl00mbox.patches.sampler, "hihat.wav")
+        #self.ride = self.blm.new(bl00mbox.patches.sampler, "hihat.wav")
+        #self.crash = self.blm.new(bl00mbox.patches.sampler, "kick.wav")
+        #self.snare = self.blm.new(bl00mbox.patches.sampler, "snare.wav")
+
         self.kick.sampler.signals.trigger = self.seq.seqs[0].signals.output
         self.hat.sampler.signals.trigger = self.seq.seqs[1].signals.output
-        self.snare.sampler.signals.trigger = self.seq.seqs[2].signals.output
-        self.track_names = ["kick", "hihat", "snare"]
+        self.close.sampler.signals.trigger = self.seq.seqs[2].signals.output
+        #self.ride.sampler.signals.trigger = self.seq.seqs[3].signals.output
+        #self.crash.sampler.signals.trigger = self.seq.seqs[4].signals.output
+        #self.snare.sampler.signals.trigger = self.seq.seqs[5].signals.output
+
+        self.track_names = ["kick", "hihat", "close", "ride", "crash", "snare"]
         self.ct_prev = captouch.read()
         self.track = 0
         self.seq.bpm = 80
@@ -68,11 +75,17 @@ class SimpleDrums(Application):
     def _track_col(self, track: int) -> Tuple[int, int, int]:
         rgb = (20, 20, 20)
         if track == 0:
-            rgb = (0, 255, 0)
+            rgb = (120, 0, 137)
         elif track == 1:
-            rgb = (0, 0, 255)
+            rgb = (0, 75, 255)
         elif track == 2:
-            rgb = (255, 0, 0)
+            rgb = (0, 130, 27)
+        elif track == 3:
+            rgb = (255, 239, 0)
+        elif track == 4:
+            rgb = (255, 142, 0)
+        elif track == 5:
+            rgb = (230, 0, 0)
         return rgb
 
     def draw(self, ctx: Context) -> None:
@@ -83,7 +96,7 @@ class SimpleDrums(Application):
                 dots.append(
                     Dot(
                         48 + groupgap,
-                        40,
+                        10+10*self.num_samplers,
                         int((12 * 4 + groupgap) * (1.5 - i)),
                         0,
                         (0.15, 0.15, 0.15),
@@ -91,10 +104,10 @@ class SimpleDrums(Application):
                 )
         st = self.seq.seqs[0].signals.step.value
 
-        for track in range(3):
+        for track in range(self.num_samplers):
             rgb = self._track_col(track)
             rgbf = (rgb[0] / 256, rgb[1] / 256, rgb[2] / 256)
-            y = 12 * (track - 1)
+            y = int(12 * (track - (self.num_samplers - 1)/2))
             for i in range(16):
                 trigger_state = self.seq.trigger_state(track, i)
                 size = 2
@@ -105,11 +118,11 @@ class SimpleDrums(Application):
                 x = int(x)
                 dots.append(Dot(size, size, x, y, rgbf))
                 if (i == st) and (track == 0):
-                    dots.append(Dot(size / 2, size / 2, x, 24, (1, 1, 1)))
+                    dots.append(Dot(size / 2, size / 2, x, 15 + 5 * self.num_samplers, (1, 1, 1)))
 
-        dots.append(Dot(1, 40, 0, 0, (0.5, 0.5, 0.5)))
-        dots.append(Dot(1, 40, 4 * 12 + groupgap, 0, (0.5, 0.5, 0.5)))
-        dots.append(Dot(1, 40, -4 * 12 - groupgap, 0, (0.5, 0.5, 0.5)))
+        dots.append(Dot(1, 70, 0, 0, (0.5, 0.5, 0.5)))
+        dots.append(Dot(1, 70, 4 * 12 + groupgap, 0, (0.5, 0.5, 0.5)))
+        dots.append(Dot(1, 70, -4 * 12 - groupgap, 0, (0.5, 0.5, 0.5)))
 
         ctx.rgb(0, 0, 0).rectangle(-120, -120, 240, 240).fill()
         for i, dot in enumerate(dots):
@@ -118,15 +131,15 @@ class SimpleDrums(Application):
         ctx.font = ctx.get_font_name(4)
         ctx.font_size = 30
 
-        ctx.move_to(0, 65)
+        ctx.move_to(0, 55)
         col = [x / 255 for x in self._track_col(self.track)]
         ctx.rgb(*col)
         ctx.text(self.track_names[self.track])
 
         ctx.font_size = 18
 
-        ctx.move_to(0, 102)
-        next_track = (self.track + 1) % 3
+        ctx.move_to(0, 105)
+        next_track = (self.track + 1) % self.num_samplers
         col = [x / 255 for x in self._track_col(next_track)]
         ctx.rgb(*col)
         ctx.text(self.track_names[next_track])
@@ -139,16 +152,18 @@ class SimpleDrums(Application):
         ctx.text(str(self.seq.bpm) + " bpm")
 
         ctx.font_size = 15
+        ctx.rgb(0.6, 0.6, 0.6)
 
         ctx.move_to(0, -85)
-
-        ctx.rgb(0.6, 0.6, 0.6)
         ctx.text("(hold) stop")
 
         ctx.move_to(0, -100)
         ctx.text("tap tempo")
 
-        ctx.move_to(0, 85)
+        ctx.move_to(0, 75)
+        ctx.text("(hold) clear")
+
+        ctx.move_to(0, 90)
         ctx.text("next:")
 
     def think(self, ins: InputState, delta_ms: int) -> None:
@@ -171,7 +186,7 @@ class SimpleDrums(Application):
                     ):
                         self.seq.trigger_toggle(self.track, i * 4 + j)
         if ct.petals[5].pressed and not (self.ct_prev.petals[5].pressed):
-            self.track = (self.track + 1) % 3
+            self.track = (self.track - 1) % self.num_samplers
         if ct.petals[0].pressed and not (self.ct_prev.petals[0].pressed):
             if self.stopped:
                 self.seq.bpm = self.bpm
diff --git a/python_payload/bl00mbox/_patches.py b/python_payload/bl00mbox/_patches.py
index bb85b1ca7e031f65fefea93c5901ba444a5a4771..5a5da75685f31f0e77b41fdb4a78d9e3a0b230f4 100644
--- a/python_payload/bl00mbox/_patches.py
+++ b/python_payload/bl00mbox/_patches.py
@@ -149,14 +149,15 @@ class sampler(_Patch):
 
 
 class step_sequencer(_Patch):
-    def __init__(self, chan):
+    def __init__(self, chan, num_channels = 4):
         self.seqs = []
-        for i in range(4):
+        for i in range(num_channels):
             seq = chan.new_bud(56709)
             seq.table = [-32767] + ([0] * 16)
             if len(self.seqs):
                 self.seqs[-1].signals.sync_out = seq.signals.sync_in
             self.seqs += [seq]
+        seq.signals.bpm.value = 120
         self._bpm = 120
 
     def __repr__(self):