Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bandlimited wavetable oscillator #50

Open
giuliomoro opened this issue Aug 19, 2016 · 3 comments
Open

Bandlimited wavetable oscillator #50

giuliomoro opened this issue Aug 19, 2016 · 3 comments
Assignees

Comments

@giuliomoro
Copy link
Collaborator

It would take a wavetable and generate anti-aliased copies of it in RAM suitable for different playback rates.

@giuliomoro
Copy link
Collaborator Author

*how many anti-aliased copies should be created?
*how far-spaced in frequency?
*what filter order?
*I figure the phase distortion introduced by the filter is likely to cause troubles with frequency sweeps when switching from one table to the next.

@pingdynasty
Copy link
Collaborator

presumably:
BandlimitedWavetableOscillator::create(FloatArray wavetable, int tables, float lf, float multiplier)
where lf is the normalised cutoff frequency for the lowest lowpass filter, tables is the total number of wavetables that will be used, each one multiple apart (e.g. 2 for octaves).

Questions:

  1. Should tables always be an octave apart?
  2. Should tables be increasingly smaller for higher freq?

@giuliomoro
Copy link
Collaborator Author

rbj, in the music-dsp mailing list says

wavetable synthesis. crossfade between wavetables. crossfade as elapsed time evolves. crossfade as the note goes up and down the keyboard. crossfade as the user cranks the mod wheel (or a pedal or some other slider). make sure that the wavetables are phase aligned and the number of harmonics in each wavetable is appropriately limited to avoid aliasing (a small amount of foldover is doable, i think you can get away with 2 wavetables per octave along the "up and down keyboard" axis of interpolation).
derivation of a set of sequential wavetables from a sampled note requires a pitch detector and a good interpolation alg.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants