Home | ER-101 | ER-102 | ER-301 | Wiki | Contact

Question about the functionality of the sample scanner

So I have been spending the day finally getting around to learning to make samples for the sample scanner and doing some waveshaping. I implemented a wavefolder that sounds pretty decent. I might make it into a custom unit later. I also tried to implement a tanh curve for some soft clipping. I notice that when the input voltage exceeds a certain level it starts scanning the beginning of the sample. This works great for folders as it allows it to fold a wave over itself over and over, and doesn’t introduce discontinuities because the initial and final value are the same.

With a sigmoid function this leads to large discontinuities in the wave, since the beginning of the wave and the end are quite far apart. You can use this behavior for some really cool pwm type tones, but it would be nice to be able to drive it more without that happening. It would be nice if when you send it more than 5ish volts it just outputs the value at the end of the sample, and the same with negative voltages, essentially clipping your signal, rather than wrapping back to the beginning. This could maintain the tonality of the input, and also allow you to drive it more without discontinuities in your output signal.

I guess I am requesting a toggle in the sample scanner that lets you choose to this behavior.

P.S. Thanks to bgribble over on this topic for providing me the code for generating the waves. I modified it a bit so I could understand it a bit more. Hopefully I can figure out pitches soon and make a quantizer with some specific features I want.

Agreed that a switch for how to handle out of bounds inputs would be great. In the meantime, you have a couple of things you can do:

  • Adjust the input range with a VCA or (better) limiter before the sample scanner
  • tune the sample scanner’s Width parameter

You may need to regenerate the sample with a different horizontal scaling factor to make the mapping work like you want if you use Width this way.