Creating a CV Deadzone Window

Hello Friends,

Is it possible with the 0.4 units to create a CV Deadzone window like the following (Maybe even with a smoother interpolation instead of a discontinuity)?

I have tried with the deadband filter but it is designed for another purpose (will continually create a deadzone in steps).

One might find this useful in assigning sweetspots or only modulating a control beyond deadzones.

1 Like

Ok I’m halfway there.

CV Source -> [Track & Hold {Gate <- (x)}, Type: low]

  • (x) <- [Bump Scanner]

It will create a deadzone at the width of the Bump Scanner. My only problem now is setting deadzone value to 0 instead of last Bump Scanner min/max and eliminating the discontinuity.

Have you tried putting your graph into a sample and then loading that sample into a Sample Scanner?

Hi Brian. Thanks for your reply. I think that is the solution however I was hesitant to try it. Joe’s video on creating a stepped quantizer transfer function (all within the 301) was useful as a guide but i am struggling on drawing something more continuous?

Does the forum have a favorite tool to draw arbitrary functions? I had tried waveedit and other online single cycle wave form editors but I find they mostly only allow me to draw with a mouse pointer. Are there any tools that allow drawing with formulas (like a graphing calculator?).

I know based on the docs you are working on tools to help create LUTs and such so this might just be a temporary hurdle after all.

1 Like

Personally, I would use a scientific computing environment, like Octave or SciPy. Both of these environments let you describe and plot arbitrary functions and have ways to write data to wave files.

Oh, and I guess Audacity has a drawing tool: but I’ve never used it.

However, I bet my suggestions are outdated and there are even slicker tools now (Julia perhaps?). Help please!


Great suggestions. I use python a bit and searching on google has led me to the following. Will give it a shot this weekend.


import wave
import struct
import math

FILENAME = "wave_table.wav"

WAV_FILE =, 'w')
WAV_FILE.setparams((1, 2, 44100, FRAME_COUNT, 'NONE', 'not compressed'))


for i in xrange(FRAME_COUNT):
    for ii in xrange(FRAME_SIZE):

        VALUE = math.sin((float(ii)/FRAME_SIZE) * (i+128)/256 * 2 * math.pi) * 65535

        if VALUE < 0:
            VALUE = 0

        VALUE -= 32768

        VALUES += struct.pack('h', VALUE)


print "Created " + FILENAME