One Shot Record Buffer

Goal:
I have a 2 second audio buffer. I want to send a trigger/gate to the 301 and it will record into the buffer from the start, fill the 2 second buffer, then stop recording automatically.

As far as I can get:
I have a Dub Looper inside a custom unit. The custom unit as a ‘trigger’ control called “Record Now” that is triggered by a gate on G1. The Dub Looper has the settings ‘Engage Latch’ set to ‘on’ and ‘Punch Latch’ set to ‘off’. I have the input for the Dub Looper’s ‘Reset’ control set to my “Record Now” custom control so that every time I hit the gate on G1 the record head moves back to the start of the buffer. So far, so good.

Here’s where it gets tricky: how do I get the Dub Looper’s ‘Punch’ control to stay engaged for EXACTLY 2 seconds (the length of my buffer)? My first thought was to set the input for the ‘Punch’ control also to my “Record Now” custom control just like the ‘reset’ control and then place an ADSR after it with a 2 second release but the threshold gets weird around the bottom. If I set the threshold to 0.01 it never turns off, but if I set it around 0.035 it turns off, but a fraction too soon, I can see the gap where the buffer hasn’t recorded the full 2 seconds at the end. I tried using a Grid Quantizer, same issue.

Now, before you suggest setting the Dub Looper’s “Punch Latch” setting to ‘on’ and using a 2 second delay with a 0.5 wet setting, I will admit it does work. BUT in an ideal world, being the sloppy performer that I am, let’s say I accidentally hit the G1 trigger a second time before it’s completed the 2 second recording cycle things get a little wacky. The record head moves back to the beginning, but then there’s a second short burst of recording that happens a second time due to the repeated delay. What I would prefer is that the record head moves back to the beginning and the 2 second count down starts over again. This essentially happens with the above ADSR option.

Your insights are appreciated as always.

1 Like

Record 2 triggers at the desired time interval into a buffer (*). Play this buffer back using a Raw Player (Play Duration = once, Play Extent = all, fade = 0) into the Dub Looper’s punch control. Reset the Raw Player and the Dub Looper with G1.

(*) If you prefer latching is off, then record a gate that is high for the desired time interval.

5 Likes

Many thanks, that I can do! I keep forgetting the recorded CV trick, excited to add that to my repertoire.

1 Like

OK, finally finding a moment to play with this. I opted to go for the latching route. I created a .wav using Audition that starts with a 2 second high gate (-3db) and then has a 1 second low (-infinity). I use a Raw Player to latch it to the ‘Punch’ parameter.

It works, but I’m getting an unexpected behaviour: after the sample plays through the playback head doesn’t stop at the end of the sample but instead jumps back to the beginning at sits there and hence is outputting a high gate. Or at least that’s what I’m interpreting as happening.

I could edit the .wav and have it start with 1 or 2 samples of low, but that feels like the wrong solution for whatever reason. :slight_smile:

Yeah, even with the .wav starting at low for 1ms or so, it’s still outputting high when the player is not running.

Gah, ignore me. For whatever reason Audition added one sample of high at the end of the file, maybe to make it loop cleanly. Once I removed that it works perfect.

Here’s maybe a better question: is there an app on the mac that people would recommend for drawing your own modulation waveforms? Something where in addition to freehanding them one could also perfectly enter in 2 seconds of high, 1 second of low?

1 Like

I know it doesn’t suit everyone, but this how I would do it in Python:

import numpy
import scipy.io.wavfile

rate = 48000
samples = numpy.append(numpy.ones(rate*2),numpy.zeros(rate))
scipy.io.wavfile.write("test.wav",rate,samples)
1 Like

Alternatively, you could skip that pesky computer and make this sample directly on the ER-301.

Insert a Clock(sec) unit. Set it to 4 sec, 0.5 width
Insert a Dub Looper right after it. Create a new buffer, 4s. Engage, punch, crossfade to 0
Set the Sync on the clock and the reset on the dub looper to the same external gate/trigger signal
Fire the gate to sync them, so it records one full 4s clock cycle. Save the buffer to SD

Clear the chain
Insert a raw player, load the buffer into it
Go into the slice menu
Position your cursor at the 3.000s mark (zoom in may be required for exact positioning)
Hold shift and move to the end of the sample to select the last 1 sec of the sample
Go into the menu and CUT

Re-save the file to SD.

6 Likes