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

Sample Scanner


I guess it is more correct to say that it only goes down to 1/32.


I was figuring two of them in series (one set to 1/2) goes to 1/64. However, I guess that’s not a very convenient scenario for making adjustments.


That’s for the input everyone - hopefully going to try and put it together once I finish work.

The good news is that I already created the concatenated 64 waveforms so just need to get into the detail of the patch.


Ok, so after quite a bit of head scratching I’ve managed to make two new custom units using the ‘sample scanner’ unit.

  1. 1D Wable Scan (wave table oscillator)
  2. Wave Scaper (wave shaper/distortion unit)

The 64 waveform wav files come directly from the ‘Synthesis Technology WaveEdit’ software (Under ‘File’->‘Save Bank as …’. I’ve included two wav files, one for each unit - see the README file in the zip file below.

Sample-Scanner_Custom_Units.zip (50.8 KB)

I’m pretty pleased with these :smiley_cat: - here’s an Instagram video of the two being used one after the other. The wave table oscillator, with pitch and wave index being modulated by an ER101, is being run into the wave shaper, with the wave index being modulated by a skewed envelope, triggered also by the ER101, to bring some dynamics.

All comments and improvements welcome!


Awesome stuff. Wave Scaper works great, however I’m having mixed results with the wable scan, now trying to investigate why. I’ve spent some time already on sample scanner unit with waveedit files (i own a E352 as well) but couldn’t so far make it reliably loop it in a way that loop borders would perfectly embrace one of 64 waveforms - whatever i do loop borders would fall on non-zero crossing, generating unwanted harmonic content (in my system that is what’s also happening with 1d wable scan i believe)

ps: those ppg wavesets recently posted on waveedit online are gorgeous.


Glad you like the ‘wave Scaper’ :+1:t2:

The calculations to select the waveform and the generation of the waveform for the 1D Wable Scan is identical to the wave Scaper so I’m not sure why it wouldn’t be working as well as the Scaper. I’ll have another look tonight when I get time.


Could you please explain the purpose of the 2 rational VCAs? what are they dividing by 64? i’m having a brain glitch.


I would let go of the desire to build a perfect wavetable oscillator with Sample Scanner unit and instead embrace what is was designed for: processing and transforming incoming signals. :man_cook: You will still get wavetable-like results.

For example, have you tried replacing the saw with a triangle wave? Or sine?


absolutely! i was just playing with sine wave osc and one of the PPG wavesets loaded into the sample scanner unit as sound source -> optomix -> echophon (feedback loop through mannequins three sisters):


Check out above where I describe the patch for two waveforms with Brian but this is how it works.

Sample file with a number of single waveforms (N) concatenated that you decide when making the file (when building the patch I started with samples with 2 then 10 & then finally 64 waveforms to help me figure out how to get it working).

So if you want to scan a specific portion of the sample and in our case only one of our single waveforms then we want to scan only 1/N of the sample - to be able to do this we then need to condition the the incoming signal so that it’s peak-to-peak amplitude is also 1/N in size. Using an aliasing saw of amplitude of 1 results in a wave that goes from -1 to +1 so this is were the division by 64 comes in. After using the two rational VCAs the aliasing saw now ranges from -1/64 to +1/64 … So almost there but the range is still too big I.e. x 2 too big.
The final conditioning step is to add the limiter with an output of -7dB - this in effect divides the amplitude by 2 as needed (strictly speaking it should be 6.02dB but I reduced it slightly more by viewing the scope as I was getting occasional scanning of the next waveform) and stops any amplitudes larger passing.

Now the input audio has a peak-to-peak amplitude of 1/N. The next part is to then set the phase parameter and 64 stepped increments using the grid quantiser.
With the center parameter = 0 then the phase parameter to address the first waveform is -0.492 (derived as follows: 1/64 = 0.015625, so each waveform is 0.015625 in width and the centre of the waveform is 0.015625/2 = 0.0078125, and with the centre of the sample set to 0 then the sample with respect to the phase spans -0.5 to 0.5 so the centre of the first waveform will be -0.5 + 0.0078125 = −0.4921875 which rounds to -0.492 which you see is the bias value for the phase parameter).

Hope that explains how it works.


Yep, that’s my main intention - the wavetable was for a bit of fun to see if it could be done :grinning:


Oh yes!!! Thanks a lot. This is very comprehensive, now I understand everything.


I’d love if there was a step by step guide with examples added to the wiki? I want in on cosmo arps! I think an idiot’s guide would be helpful. While I can see that this type of info is nice to have for those wondering:

This unit is not a wavetable synthesizer. There is no phase accumulator.

…I really don’t understand a thing :smile:



The input presented at the unit’s input literally selects a position in the sample. The unit outputs the sample’s value at that position. That’s the most important part of the unit’s mechanism. The rest is just moving and stretching the sample around on the input range. So if you loaded a stair-case sample then the output would be a quantization (or discretization) of the input.

I agree that the current description on the wiki could be made clearer.