---------------------------- Original Message ---------------------------- Subject: Re: [music-dsp] Bandlimited morphable waveform generation From: Andr� Michelle <andre.miche...@gmail.com> Date: Thu, September 15, 2016 1:12 pm To: r...@audioimagination.com music-dsp@music.columbia.edu -------------------------------------------------------------------------- >> i presume, by "arbitrary ... waveform", you are restricting to >> quasi-periodic waveforms (like the tone or "note" you might expect from most >> musical instruments). so x(t+P) approx = x(t) where P is the current period. >> >> if so, the answer is yes: 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. >> > That sounds like a static solution for a arbitrary but time-fixed waveform > function. � what's "static" about crossfading. �you're not crossfading from a "time-fixed waveform" to another *identical* waveform. �if the beginning and ending waveforms were identical, then it would be static. �but because the waveforms are different, crossfading from one to the other is a form of morphing. � > If I get your suggestion right I need a lot of wavetables (each for a certain > range in the spectrum) for each provided waveform shape. That unfortunately won’t work in my case. usually in most computer hardware situations, memory is cheap. �like 100s of megabytes. � > > I have an automatable wave-shape parameter which seamlessly morphs from quad > to triangle to sawtooth to square > (http://codepen.io/andremichelle/full/8341731a1ff2bdc90be3cb88e6509358/ > <http://codepen.io/andremichelle/full/8341731a1ff2bdc90be3cb88e6509358/>). I > also have phase-modulation and hard-sync which we can leave out for now. > and you can sequentially crossfade through a bunch of wavetables to do that. � phase-modulation and hard-sync are just another collection of wavetables. �the core waveform generator is the same. > To read everything from wavetables I could quantise the wave-shape range and > create 2d-wavetables and blend between four of them to avoid not only smooth > frequency gliding but also wave-shape morphing. In fact it is a solution > (thanks for that) but I was hoping for something more elegant. > > I could phrase my question more general: > Given any x(t): Is it possible to sample x(t) with a given sample-rate > ignoring all frequencies (slopes) higher than SF/2? well, lessee 1. pitch detection (so you know how long a period is) 2. resample so that each period is a nice number N samples long. 3. DFT 4. eliminate harmonics above a top limit so that when the pitch is increased the harmonics do not alias (or alias very much). 5. iDFT and create new waveforms � but all of that is in the purview of wavetable synthesis/analysis anyway. -- r b-j � � � � � � � � �r...@audioimagination.com "Imagination is more important than knowledge."
_______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp