[sdiy] Sampler mode...

Andre Majorel aym-htnys at teaser.fr
Tue Nov 18 18:52:45 CET 2008

On 2008-11-18 12:50 +0000, Seb Francis wrote:
> Andre Majorel wrote:
>> Do you plan to quantise the start/end points to the nearest zero
>> crossing ?
> Well, I'm not sure.  I'm going to have to experiment and see
> what works  in practice.  Certainly I will have to do either
> this, or provide a  short fade in/out.  Quantisation may not be
> a bad thing as it will  reduce the effect of CV jitter caused by
> noisy ADC sampling.

In my experience, the effective resolution of a pot is on the
order of 350 positions so some form of quantisation will be

Simply dividing 1.5 s by 350 gives about 4 ms. At 100 Hz, an
entire cycle is 10 ms. 4 ms is way too coarse to get close to a
zero crossing other than by chance.

On the other hand, at 100 Hz, you get 150 rising zero crossings so
that looks like a good match.

The crossings might not be evenly distributed. If you have a burst
of noise somewhere, there will be lots of crossings around that
point. You wouldn't want the entire pot's rotation to cover the
first 10% of the sample...

Low-pass filtering will help in some cases but not all. If the
sample is, say, a wobulated square that never goes below 234 Hz,
there will be more than 350 crossings and no amount of filtering
will change that. A more robust approach might be to check whether
there are too many zero crossings and pick a subset that covers
the entire sample and is reasonably evenly-spaced. An interesting

>> Is looping meant to always loop from end point to start point ?
>> Eight points might be a little much but three points would come in
>> handy. I can see three switches :
>> - LOOP : whether to loop after END
>> - USE MID : point to return to after END (MID if true, START otherwise)
>> - PING-PONG : if true, returning means playing the same range backward
>>     and negated.
> Well yes, it does sound useful to be able to set the loop start  
> independently from the playback start.
> I could add a CV for loop start point .. giving 3 position CVs:
> - Playback start
> - Playback end = loop end
> - Loop start
> If playback start > loop start then ignore loop start.  Thus by
> setting the loop start to the minimum, the playback and loop
> start points can be  controlled with a single CV.

Clever ! That would kind of eliminate the need for USE MID.

> Ping-pong might be interesting ... and sometimes it helps to
> loop  samples that would otherwise be very glitchy.
> To avoid clicks it would  have to be have to be aligned to
> zero-crossings as well as inverted  polarity while reversing.

Er... Yes, that was more or less the whole point of it. <g>

André Majorel <URL:http://www.teaser.fr/~amajorel/>

More information about the Synth-diy mailing list