diff --git a/python_payload/bl00mbox/_patches.py b/python_payload/bl00mbox/_patches.py
index 6b8bf13d0aa2f6477c659a77f5b3d9f4e602b3f6..4c2e0c533216782976376eb0221a8503917c7b6e 100644
--- a/python_payload/bl00mbox/_patches.py
+++ b/python_payload/bl00mbox/_patches.py
@@ -115,7 +115,7 @@ class sampler(_Patch):
 
             self._len_frames = f.getnframes()
             self.plugins.sampler = chan.new(
-                bl00mbox.plugins._sampler_ram, self._len_frames
+                bl00mbox.plugins._sampler_ram, self.memory_len
             )
 
             f.close()
@@ -123,7 +123,7 @@ class sampler(_Patch):
         else:
             self._len_frames = int(48 * init_var)
             self.plugins.sampler = chan.new(
-                bl00mbox.plugins._sampler_ram, self._len_frames
+                bl00mbox.plugins._sampler_ram, self.memory_len
             )
 
         self.signals.trigger = self.plugins.sampler.signals.trigger
@@ -158,7 +158,7 @@ class sampler(_Patch):
             table = self.plugins.sampler.table_bytearray
             for i in range(
                 2 * self.buffer_offset_i16,
-                (self.memory_len + self.buffer_offset_i16) * 2,
+                (self.sample_len + self.buffer_offset_i16) * 2,
                 100,
             ):
                 table[i : i + 100] = f.readframes(50)
@@ -166,7 +166,7 @@ class sampler(_Patch):
             # somewhat fast path for stereo
             table = self.plugins.sampler.table_int16_array
             for i in range(
-                self.buffer_offset_i16, self.memory_len + self.buffer_offset_i16
+                self.buffer_offset_i16, self.sample_len + self.buffer_offset_i16
             ):
                 frame = f.readframes(1)
                 value = int.from_bytes(frame[0:2], "little")