First time here? Check out the FAQ!

Should I worry about zero crossings in wavetables?

+1 vote

Just brushing up on the details, watching: WAVE EDITOR: CREATING A WAVETABLE 

When selecting the appropriate splice points and triming, it does not look like the start and end of the selection are at zero crossing points. Is this a problem? I have a few of that look like this, I was thinking of trying to complete them somehow. Is this needless? (historically, I have always aimed for zeros, or it would click?)











asked Sep 18, 2016 in Using Kyma by charlienorton (Adept) (2,650 points)
recategorized Sep 18, 2016 by charlienorton

1 Answer

+4 votes

Hi Charlie,

The waveform you have pictured here does look like it would click (if you are looping it or using it in an oscillator) because the start and end points are different.  In general, the more similar you can make the start and end points, the less likely that you will hear the discontinuity.  If you can make them the same value, that's good; if you can match their derivatives (the direction and steepness of the slope), that's better; if you can match the second derivatives (how the slopes are changing), then that's even better.  The quickest way to do this would be to Select All; then apply the Modifier named "Make cycle".

Another way to find a matching point or a good splice point is to first select where you'd like the waveform to start; then in the Selection section of the sidebar, click the Plus (+) to extend that selection to the next good splice point.  The selection color becomes brighter when it has found a good splice point (otherwise, it stays the same color).

If you plan to use the waveform in a FunctionGenerator or as a grain envelope, there is an advantage to making the final sample in the table zero, since the FunctionGenerator rests on the final sample until triggered (so if your final sample is not zero, the FunctionGenerator output will be a DC offset.  If you're using that wavetable as an amplitude envelope, the output will be audible, even when the FunctionGenerator is not triggered).

Another consideration for oscillator wavetables is whether the average value is zero.  For most periodic functions, you spend half the time above zero and half the time below so the average value is zero.  If your waveform is offset from zero, and you use the waveform in a GrainCloud or replicate your oscillator many times, there could be a cumulative shift that acts like a DC offset.  You can guard against this in the Wave editor by selecting the Modifier named "Remove DC".

answered Sep 19, 2016 by ssc (Savant) (116,410 points)