home/ atoms/ sc-vosc-wavetable-morphing

VOsc morphs between two or more wavetables in adjacent buffers using a floating-point buffer index

VOsc is a multiple-wavetable oscillator. It expects buffers to be loaded into consecutive buffer numbers and takes a floating-point ‘bufpos’ argument: at integer values, it plays the wavetable at that index; at fractional values, it interpolates between adjacent wavetables. This enables smooth timbral morphing. Load all wavetables into consecutively numbered Buffers using Buffer.allocConsecutive or sequential Buffer.loadCollection calls. A Line or LFNoise UGen controlling bufpos creates automated timbre evolution. Index jumps produce audible clicks; smooth transitions require smooth bufpos control signals.

Examples

Buffer.loadCollection(s, ~wt0, action: { |b0| Buffer.loadCollection(s, ~wt1, action: { |b1| { VOsc.ar(b0.bufnum + LFSaw.kr(0.2).range(0,1), 220) * 0.2 ! 2 }.play }) });

Assessment

What argument of VOsc controls the blend between wavetables? What happens at integer vs fractional values of that argument?

“We provide a floating point index between 0 and 1, and the oscillator will interpolate between these two tables according to the index.”
corpus · supercollider-tutorials-full-transcripts-and-code-eli-fields · chunk 83