[sdiy] Granular synthesis/graintable synthesis

Olivier Gillet ol.gillet at gmail.com
Wed Aug 24 17:34:13 CEST 2011


>> 1/ The f0 of the sample was detected using YIN, and the sample was
>> chopped into 1 period chunks
>> 2/ The MFCCs of each chunk were computed
>> 3/ VQ was used to cluster the chunks into 16 classes, with mahalanobis
>> distance over the MFCC as a distance metric. The output of VQ is a
>> codebook of 16 single-cycle waveforms. Their period was resampled to
>> 256 samples.
>> 4/ Going back to the original sample, assign to each chunk its
>> codeword index. This yields a kind of "compressed" representation of
>> the original sample as a concatenation of the single-cycle waveforms
>> extracted at the previous step. You can further remove duplicate in
>> this list to get a Waldorf-style wavetable.

Re: phase, I forgot to add that when extracting the 256 samples
single-cycle waveform, I shift it so that the phase of the first
harmonic is 0. More often than not a promising looking wavetable
sounds weird because the phase of each cycle in the table is
different, resulting in all kinds of weird effects when interpolated.



More information about the Synth-diy mailing list