I'm currently plotting my wave shape (on a wavetable synth) easily iterating each sample, such as:
Code: Select all
for (size_t i = 0; i <= wavetable.mWaveLen; i += iSkip) {
// get wave value
float wave;
float wave0 = wavetable.at(pos0, i % wavetable.mWaveLen);
if (posF > 0.0f) {
float wave1 = wavetable.at(pos0 + 1, i % wavetable.mWaveLen);
wave = crossfade(wave0, wave1, posF);
} else {
wave = wave0;
}
// add point to line
Vec p;
p.x = float(i) / (float)wavetable.mWaveLen;
p.y = 0.5f - 0.5f * wave;
p = scopeRect.pos + scopeRect.size * p;
if (i == 0) {
nvgMoveTo(args.vg, VEC_ARGS(p));
} else {
nvgLineTo(args.vg, VEC_ARGS(p));
}
}
But than, how would I plot it? Not sure I can just iterating each sample...
Thanks for any tips.