Sample Scanner

We have a thread for the bump scanner so thought we needed one for the sample scanner too as I’ve finally just got round to setting up a single cycle waveform experiment and it works pretty well!

Getting some great results although I am not sure how they relate to 1V/oct perhaps someone who cares more about that than I do has a sensible answer? :slight_smile:

The trick seems to be assigning a saw wave to the centre parameter and reducing the ‘level’ to 0.10 or something, assign v/oct input to the saw wave. Use the ‘phase’ parameter to scan the wavetable.

Okay it’s not exactly a wavetable synth, but certainly making a lot of nice noises - perhaps with a bit more of a scientific approach it could be setup to behave even better? :smiley:

Edit: using the saw to modulate center is not right, see the post from @udbhav below :smiley:


I’d love better explanations of these units. i mean, their parameters.

1 Like

Think of the assigned sample as a strip of magnetic tape, then:

center: the start position of the tape head
width: the area of tape the play head moves across, the area is equally distributed on either side of center
height: is effectively amplitude
fade: (I think) is how the two ends of the width interpolate
phase: is an offset for center

I’m not sure how good this is, happy to be corrected, but it seems to work as an analogy!


Tried, but can’t really make this behave nicely. There’s no doubt that some amazing sounds can be made, but I cannot kinda sensible relationship between the sample scanner settings and the driving saw tooth wave settings that consistently makes sense for single cycle waveforms.

Would love to hear if anyone else has managed to solve this one?

I have also just tried it with a vocal sample and it doesn’t seem to behave how I imagined, which would actually explain quite a few things.

A slow oscillating sine on the center is fine, but as soon as the center parameter itself is adjusted there’s a jump. It almost makes me think this should be triggered with voltages… going to try that now!

Edit: well, that’s also interesting, but also not what I expect :smiley:

One thing I have realised which helps is that the width parameter changes how fast the sample plays back too.

Making some crazy sounds though, going to stop trying to work it out and just play, I am sure all will become clear!

I am just getting started with this myself. I am getting predictable behavior with a single cycle waveform. Here I load a single cycle AKWF and scan it with the aliasing saw unit, controlling the pitch with my keyboard (v/o on A1). At the end, you can see that the waveform coming out (on the mordax scope) matches what’s in the “edit sample” view of the 301.

I have tried scanning just portions of a wave table (used ROMB from Synthech Wave Edit). I’m not quite sure what I’m seeing there. It is a wave table made up of 64 single cycles, so I changed the gain on the aliasing saw to 0.031 (sweep 1/64 of the total sample), and adjusted the center control on the sample scanner unit up and down.

I would have expected to see the wave shapes that I see in the table in wave edit as I hit the exact right center points, but I don’t, really. Not sure if I’m not thinking about it correctly, or if the precision that I can set on the amplitude of the saw isn’t quite high enough. (2/64 = 0.03125), and I’m always catching part of an adjacent wave in the table…


I’m getting predictable results here as well, it sounds great! Set up an aliasing saw unit as the input to the sample scanner unit, not as the modulator of center.

Here it is driving a single cycle waveform with modulation of center and width with some slow sines (plus delay to make up for the cheesy sequence).


Aha!!! This is where I’ve been going wrong I think - thank you!!! Will try later :slight_smile:

I don’t care how cheesy it is, I will always have a soft spot for cosmological arpeggios. :nerd_face:


DAMN, that was the key !
Thanks !!

Sorry guys for the lack of instruction on this unit. It was almost an afterthought, a palette cleanser for my brain as I shifted from one critical task to another.

  • As @udbhav has stated, the unit’s input is used to the scan the sample.
  • The center parameter controls where the center of the sample should be placed on the input range.
  • The width parameter controls how much of the input range the sample covers.
  • If you understand the Bump Scanner, then the Sample Scanner is exactly the same with the (entire) sample taking the place of the bump.

Here is a diagram that assumes that the assigned sample is one cycle of a sine wave:

Edit: Don’t be fooled! This diagram is not showing the output signal. The x-axis is not time, but rather the input signal. The diagram shows how the output signal is derived from the input signal. The graph should be read like a lookup table.


That’s okay, nice to have a little puzzle to work out - to hell with unambiguous UI and instruction (I’m joking of course!) :smiley:

Oh and phase sets where the sample begins inside the window (i.e. the “bump”).

  • phase = 0: Sample starts at the beginning of the window (as in the diagram).
  • phase = 0.5: Sample starts at the midpoint of the window.
  • phase = 1: Same as phase = 0.

FYI, the sample is extended periodically in both directions to accommodate non-zero phase offsets. So if you want to modulate phase make sure you use samples whose endpoints match or else you will get a click.

(Hmm, the current phase range is 0 to 1. Maybe it would have been more natural to use -1 to 1.)


heres one i did before

The chain was Just Friends Oscillator (static no CV pitching) -> Fold -> Sample Scanner (loaded with 1 single cycle, single sample Cello Wavetable) - i was CV’ing the Sample Scanner settings not the Oscillator. i scanned the width with an lfo also.


Nice :slight_smile:

1 Like

I’m still getting variable results, even using the proper input :smiley:

I think @Joe’s approach of working out how many waveforms are in the sample chain and dividing is probably the most sensible and I need to try harder.

There’s no doubt it sounds awesome when dialled in to suit, but this is a combination of:

Saw Osc v/oct coming from sequencer
f0 base setting

I find 3600 on the v/oct and around about 40Hz on the f0 seems to work well, i.e. the lowest possible note from the V/oct is ~40Hz. This obviously needs quantifying for true pitch representation.

Then set the gain on the output of the Saw Osc to be very low using both Level and the Gain setting above that wherever that is, either a mixer channel or the custom unit control.

Finally the width seems to like a very low setting too!

All together when it’s right it’s amazing, endless timbres that do morph int one another when adjusting the phase parameter.

However, whenever I try and modulate the phase parameter I get a lot of unwanted noise and I am unsure why.

That’s all… just a little update on where i have managed to get up to. Certainly usable and definitely a leap forward, especially considering this was almost an afterthought, but still not exactly the behaviour I am looking for :smiley:

1 Like

My experiment was more educational, to help me figure out exactly how it worked. If I understand the difference between this and a wavetable VCO correctly, we wouldn’t be able to simulate a wavetable VCO with this unit.

From an audio rate signal perspective (for things the sample player can’t already do), seems like the primary use cases would be:

  • phase distortion of a single cycle waveform
  • wave mapping distortion of any audio input

** The above should not be taken as any kind of gospel - really just trying to confirm my understanding. :slight_smile:

Here’s how I’m understanding your definition of width:

A width of 1 means scanning from 0 to 1 would return the entire sample, and a width of 0.1 means that scanning from 0 to 0.1 would also give you the entirety of the sample. That seems like the opposite of how @Joe was using it, where a width of 0.1 would mean scanning from 0 to 1 would give you back a 10% slice of the sample.

Let’s say I have a sample with 2 single cycle waveforms (A and B) of the same length end to end. If I set the center to 0.5, and the width to 2, would that mean a saw ramping from 0 to 1 would read the entirety of waveform A? Similarly, changing the center to 0 would mean I’d be reading waveform B? Or should width actually be 0.5 in this case?

@Joe what part doesn’t let you use this for wavetables, the interpolation? Can we do that with fade?

PS. If I got my understanding backwards, I’d say “The width parameter controls how much of the sample the input range covers.” is a more accurate definition of width.

Yes, exactly. Rather than interpolating the values of samples of two adjacent wave forms based on some some ‘position’ type control, you’re doing something more like truncating each waveform and concatenating them together. Which I think is what’s causing @anon83620728’s noise as he modulates the phase - all kinds of non-contiguous values getting swept across.

I don’t think the fade would = interpolation. But again, I’m still getting my head around this guy too. Happy to be corrected!

As far as I can tell the width defines what portion of the input signal you want to pay attention to. If you set it to 1.0, any input value from -1.0 to 1.0 will output some value based on a lookup of the value of the sample that’s loaded.

If you set the width to something less than 1.0 (assuming 0 fade and center 0) and sweep the input with a ramp from -1.0 to 1.0, part of the input range (the highest and lowest values) will just output 0 instead of whatever value the sample has at that point.

Ahhhh, in that case, wouldn’t you want to change the amplitude and offset of the saw that’s doing the scanning in order to isolate portions of the wavetable instead of doing the 1/16 width calculation you had going?