diff --git a/src/buffer.rs b/src/buffer.rs
index 86ef90ef..5cd3dc4e 100644
--- a/src/buffer.rs
+++ b/src/buffer.rs
@@ -117,7 +117,7 @@ impl<'a> Buffer<'a> {
     /// The stored slices must point to live data when this object is passed to the plugins' process
     /// function. The rest of this object also assumes all channel lengths are equal. Panics will
     /// likely occur if this is not the case.
-    pub unsafe fn with_raw_vec(&mut self, update: impl FnOnce(&mut Vec<&'a mut [f32]>)) {
+    pub unsafe fn set_slices(&mut self, update: impl FnOnce(&mut Vec<&'a mut [f32]>)) {
         update(&mut self.output_slices);
     }
 }
@@ -131,7 +131,7 @@ mod miri {
         let mut real_buffers = vec![vec![0.0; 512]; 2];
         let mut buffer = Buffer::default();
         unsafe {
-            buffer.with_raw_vec(|output_slices| {
+            buffer.set_slices(|output_slices| {
                 let (first_channel, other_channels) = real_buffers.split_at_mut(1);
                 *output_slices = vec![&mut first_channel[0], &mut other_channels[0]];
             })
@@ -159,7 +159,7 @@ mod miri {
         let mut real_buffers = vec![vec![0.0; 512]; 2];
         let mut buffer = Buffer::default();
         unsafe {
-            buffer.with_raw_vec(|output_slices| {
+            buffer.set_slices(|output_slices| {
                 let (first_channel, other_channels) = real_buffers.split_at_mut(1);
                 *output_slices = vec![&mut first_channel[0], &mut other_channels[0]];
             })
diff --git a/src/wrapper/clap/wrapper.rs b/src/wrapper/clap/wrapper.rs
index bc431748..23e3a50d 100644
--- a/src/wrapper/clap/wrapper.rs
+++ b/src/wrapper/clap/wrapper.rs
@@ -1788,7 +1788,7 @@ impl<P: ClapPlugin> Wrapper<P> {
             wrapper
                 .output_buffer
                 .borrow_mut()
-                .with_raw_vec(|output_slices| {
+                .set_slices(|output_slices| {
                     output_slices.resize_with(bus_config.num_output_channels as usize, || &mut [])
                 });
 
@@ -1812,7 +1812,7 @@ impl<P: ClapPlugin> Wrapper<P> {
                 Buffer::default,
             );
             for buffer in aux_input_buffers.iter_mut() {
-                buffer.with_raw_vec(|channel_slices| {
+                buffer.set_slices(|channel_slices| {
                     channel_slices
                         .resize_with(bus_config.aux_input_busses.num_channels as usize, || {
                             &mut []
@@ -1827,7 +1827,7 @@ impl<P: ClapPlugin> Wrapper<P> {
                 Buffer::default,
             );
             for buffer in aux_output_buffers.iter_mut() {
-                buffer.with_raw_vec(|channel_slices| {
+                buffer.set_slices(|channel_slices| {
                     channel_slices
                         .resize_with(bus_config.aux_output_busses.num_channels as usize, || {
                             &mut []
@@ -1989,7 +1989,7 @@ impl<P: ClapPlugin> Wrapper<P> {
                 //       flags?
                 let mut output_buffer = wrapper.output_buffer.borrow_mut();
                 let mut buffer_is_valid = false;
-                output_buffer.with_raw_vec(|output_slices| {
+                output_buffer.set_slices(|output_slices| {
                     // Buffers for zero-channel plugins like note effects should always be allowed
                     buffer_is_valid = output_slices.is_empty();
 
@@ -2095,7 +2095,7 @@ impl<P: ClapPlugin> Wrapper<P> {
 
                         // If the host passes weird data then we need to be very sure that there are
                         // no dangling references to previous data
-                        buffer.with_raw_vec(|slices| slices.fill_with(|| &mut []));
+                        buffer.set_slices(|slices| slices.fill_with(|| &mut []));
                         continue;
                     }
 
@@ -2113,7 +2113,7 @@ impl<P: ClapPlugin> Wrapper<P> {
                         ));
                     }
 
-                    buffer.with_raw_vec(|slices| {
+                    buffer.set_slices(|slices| {
                         for (channel_slice, channel_storage) in
                             slices.iter_mut().zip(storage.iter_mut())
                         {
@@ -2148,12 +2148,12 @@ impl<P: ClapPlugin> Wrapper<P> {
 
                         // If the host passes weird data then we need to be very sure that there are
                         // no dangling references to previous data
-                        buffer.with_raw_vec(|slices| slices.fill_with(|| &mut []));
+                        buffer.set_slices(|slices| slices.fill_with(|| &mut []));
                         continue;
                     }
 
                     let block_len = block_end - block_start;
-                    buffer.with_raw_vec(|slices| {
+                    buffer.set_slices(|slices| {
                         for (channel_idx, channel_slice) in slices.iter_mut().enumerate() {
                             *channel_slice = std::slice::from_raw_parts_mut(
                                 (*(*host_output).data32.add(channel_idx)).add(block_start)
diff --git a/src/wrapper/standalone/backend/cpal.rs b/src/wrapper/standalone/backend/cpal.rs
index 63b4e36b..4d75d4ae 100644
--- a/src/wrapper/standalone/backend/cpal.rs
+++ b/src/wrapper/standalone/backend/cpal.rs
@@ -325,7 +325,7 @@ impl Cpal {
         ];
         let mut buffer = Buffer::default();
         unsafe {
-            buffer.with_raw_vec(|output_slices| {
+            buffer.set_slices(|output_slices| {
                 // Pre-allocate enough storage, the pointers are set in the data callback because
                 // `channels` will have been moved between now and the next callback
                 output_slices.resize_with(channels.len(), || &mut []);
@@ -344,7 +344,7 @@ impl Cpal {
             // Things may have been moved in between callbacks, so these pointers need to be set up
             // again on each invocation
             unsafe {
-                buffer.with_raw_vec(|output_slices| {
+                buffer.set_slices(|output_slices| {
                     for (output_slice, channel) in output_slices.iter_mut().zip(channels.iter_mut())
                     {
                         // SAFETY: `channels` is no longer used directly after this, and it outlives
diff --git a/src/wrapper/standalone/backend/dummy.rs b/src/wrapper/standalone/backend/dummy.rs
index 90158c5b..4b429d9e 100644
--- a/src/wrapper/standalone/backend/dummy.rs
+++ b/src/wrapper/standalone/backend/dummy.rs
@@ -33,7 +33,7 @@ impl Backend for Dummy {
         ];
         let mut buffer = Buffer::default();
         unsafe {
-            buffer.with_raw_vec(|output_slices| {
+            buffer.set_slices(|output_slices| {
                 // SAFETY: `channels` is no longer used directly after this
                 *output_slices = channels
                     .iter_mut()
diff --git a/src/wrapper/standalone/backend/jack.rs b/src/wrapper/standalone/backend/jack.rs
index 66725ad4..3cd66cb0 100644
--- a/src/wrapper/standalone/backend/jack.rs
+++ b/src/wrapper/standalone/backend/jack.rs
@@ -40,7 +40,7 @@ impl Backend for Jack {
 
         let mut buffer = Buffer::default();
         unsafe {
-            buffer.with_raw_vec(|output_slices| {
+            buffer.set_slices(|output_slices| {
                 output_slices.resize_with(self.outputs.lock().len(), || &mut []);
             })
         }
@@ -104,7 +104,7 @@ impl Backend for Jack {
 
             // And the buffer's slices need to point to the JACK output ports
             unsafe {
-                buffer.with_raw_vec(|output_slices| {
+                buffer.set_slices(|output_slices| {
                     for (output_slice, output) in output_slices.iter_mut().zip(outputs.iter_mut()) {
                         // SAFETY: This buffer is only read from after in this callback, and the
                         //         reference passed to `cb` cannot outlive that function call
diff --git a/src/wrapper/vst3/wrapper.rs b/src/wrapper/vst3/wrapper.rs
index 01c4672e..1b509f51 100644
--- a/src/wrapper/vst3/wrapper.rs
+++ b/src/wrapper/vst3/wrapper.rs
@@ -402,7 +402,7 @@ impl<P: Vst3Plugin> IComponent for Wrapper<P> {
                     self.inner
                         .output_buffer
                         .borrow_mut()
-                        .with_raw_vec(|output_slices| {
+                        .set_slices(|output_slices| {
                             output_slices
                                 .resize_with(bus_config.num_output_channels as usize, || &mut [])
                         });
@@ -429,7 +429,7 @@ impl<P: Vst3Plugin> IComponent for Wrapper<P> {
                         Buffer::default,
                     );
                     for buffer in aux_input_buffers.iter_mut() {
-                        buffer.with_raw_vec(|channel_slices| {
+                        buffer.set_slices(|channel_slices| {
                             channel_slices.resize_with(
                                 bus_config.aux_input_busses.num_channels as usize,
                                 || &mut [],
@@ -444,7 +444,7 @@ impl<P: Vst3Plugin> IComponent for Wrapper<P> {
                         Buffer::default,
                     );
                     for buffer in aux_output_buffers.iter_mut() {
-                        buffer.with_raw_vec(|channel_slices| {
+                        buffer.set_slices(|channel_slices| {
                             channel_slices.resize_with(
                                 bus_config.aux_output_busses.num_channels as usize,
                                 || &mut [],
@@ -1324,7 +1324,7 @@ impl<P: Vst3Plugin> IAudioProcessor for Wrapper<P> {
                 // we'll skip the process function.
                 let mut output_buffer = self.inner.output_buffer.borrow_mut();
                 let mut buffer_is_valid = false;
-                output_buffer.with_raw_vec(|output_slices| {
+                output_buffer.set_slices(|output_slices| {
                     // Buffers for zero-channel plugins like note effects should always be allowed
                     buffer_is_valid = output_slices.is_empty();
 
@@ -1416,7 +1416,7 @@ impl<P: Vst3Plugin> IAudioProcessor for Wrapper<P> {
 
                         // If the host passes weird data then we need to be very sure that there are
                         // no dangling references to previous data
-                        buffer.with_raw_vec(|slices| slices.fill_with(|| &mut []));
+                        buffer.set_slices(|slices| slices.fill_with(|| &mut []));
                         continue;
                     }
 
@@ -1435,7 +1435,7 @@ impl<P: Vst3Plugin> IAudioProcessor for Wrapper<P> {
                         ));
                     }
 
-                    buffer.with_raw_vec(|slices| {
+                    buffer.set_slices(|slices| {
                         for (channel_slice, channel_storage) in
                             slices.iter_mut().zip(storage.iter_mut())
                         {
@@ -1470,12 +1470,12 @@ impl<P: Vst3Plugin> IAudioProcessor for Wrapper<P> {
 
                         // If the host passes weird data then we need to be very sure that there are
                         // no dangling references to previous data
-                        buffer.with_raw_vec(|slices| slices.fill_with(|| &mut []));
+                        buffer.set_slices(|slices| slices.fill_with(|| &mut []));
                         continue;
                     }
 
                     let block_len = block_end - block_start;
-                    buffer.with_raw_vec(|slices| {
+                    buffer.set_slices(|slices| {
                         for (channel_idx, channel_slice) in slices.iter_mut().enumerate() {
                             *channel_slice = std::slice::from_raw_parts_mut(
                                 (*(*host_output).buffers.add(channel_idx)).add(block_start)