From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Tom7777 ·
I noticed on the site highlights/features, when it says faster loading it also says 'Use Wavetables of any size' so now im curious is this true, from what i have read they are restricted to a fixed size 256, 512, 1024 etc, so yeah that quote has got me wondering now 🙂 I have some sounds which are shorter than 256 and some bigger than 512 and they are not exact so if i loaded them in as is they would loose a bit and probably click because of it, anyone know if a dynamic (any size) wavetables is possible now?
tention ·
As long as the size of the table is a power of 2 you can use any you want.
infuzion ·
tention wrote: As long as the size of the table is a power of 2 you can use any you want.
...or else the Wave Table will pad up to the power of 2. (per mouse-over help)
oddson ·
tention wrote: As long as the size of the table is a power of 2 you can use any you want.
Reminds me of the Henry Ford quote (about the Model A).
"You can have any color you like, as long as it's black."
It would be nice to have a module that handles resolution changes with a cubic spline interpolation to adjust to resolutions that are powers of two... but the user should be able to do this in any wave editor.
Tom7777 ·
Hmm it's as i thought then not really wavetables of any size, but a as long as you stay in a range type thing 😉 Of course i know how to make my own wavetables in SM with maths etc but i was kind of hoping to use some real world sounds i have recorded, i have the editor Audacity (free) but i dont think that can adjust the table size well without shifting the pitch in anycase, i have a few perfectly looped sounds all done on key 48 only problem is there not the right sizes 😠
tention ·
I think it could be possible to load the wav into the wave player and to loop it, to playback in a different frequency and to sample the output in a float array?
Tom7777 ·
Hmm, do you have an example, that sounds like it would be just as annoying as going through them all in a editor, wouldn't you have to adjust the frequency for every sample, also as they are all key 48 that would put them out of tune im guessing?
tention ·
Tom7777 wrote: Hmm, do you have an example, that sounds like it would be just as annoying as going through them all in a editor, wouldn't you have to adjust the frequency for every sample, also as they are all key 48 that would put them out of tune im guessing?
I think you could set the base pitch to 48 in the wave player module an then play them in a frequency calculated of samplerate divided through desired wavetable size.
oddson ·
Tom7777 wrote: ...i dont think that can adjust the table size well without shifting the pitch in anycase...
You are adjusting the pitch...
Say you isolate a bass sound with a fundamental around 40 Hz. You go through your wave editor and find two good zero crossings one wavelength apart that when looped sound OK (realize you've just got rid of most of what makes a natural sound sound natural -- that is how the sound changes dynamically).
Next you determine how many samples are between the crossings and it turns out to be 1102. You just pitch shift this wave until it's length is 1024 or 2048. You save that wave and load it into the wave table in SM. SM now handles pitch shifting and antialiasing for you.
Theoretically you could have SM do all of this for you... which is what I was referring to. The only really hard part would be the interpolation.
oddson ·
You can consider it a case of sample rate conversion instead of pitch shifting.
Note the two solutions - oversampling vs. interpolation
Tom7777 ·
Thanks everyone 😉
Theoretically you could have SM do all of this for you... which is what I was referring to. The only really hard part would be the interpolation.
Yeah thats what i was hoping for, dynamic adjusting wavetables which can be set to any size, maybe in a future version i guess, when using wavetables rather than wavs would i loose quality? I will probably just end up making a rompler type thing with my recordings and keep the wavetable stuff seperate, i was kind of hoping that converting the waves to float arrays would work out for me but no doubt i would have to do alot of edits and stuff, but the main reason i was thinking about doing this is the filesize difference, with the wavs the size can quickly add up but it stays reasonable with the arrays.
oddson ·
I will probably just end up making a rompler type thing with my recordings and keep the wavetable stuff seperate, i was kind of hoping that converting the waves to float arrays would work out for me but no doubt i would have to do alot of edits and stuff, but the main reason i was thinking about doing this is the filesize difference, with the wavs the size can quickly add up but it stays reasonable with the arrays.
😇 Forgive me if I'm telling you what you already know (and I'm sure that, at least in part, I am)... but it's not clear from this that you understand that ROMplers and wavetable synthesis differ fundamentally and not just in the way data is stored or accessed.
A wave table uses a single cycle waveform and completely lacks sub-fundamental, non harmonic and dynamic content.
Sub-fundamental content... many natural instruments have vibrato/tremolo like sounds associated with them. A flute for example tends to waver in amplitude (tremolo) and pitch (vibrato) when played at frequencies well below the fundamental (typically sub-sonic).
Non-harmonic content... a wave table OSC cannot produce frequencies that are not multiples of the fundamental.
Dynamic content... the timbre of natural instruments change from their attack through decay, typically becoming simpler as resonance supports lower order harmonics and eliminates other frequencies. (ROMplers also have limitations with this aspect of natural sounds - particularly with long sustain instruments.)
Wave table synthesis needs to use additional techniques (multiple tables mixed dynamically, LFOs, noise generators, resonant filters etc.) to come close to the complexity of natural instruments.
A ROMpler will use brief sections of a sampled sound - but generally much more than a single waveform - and therefore have some advantages in capturing some of the complexities of natural sounds.
oddson ·
It would be nice to have a module that handles resolution changes with a cubic spline interpolation to adjust to resolutions that are powers of two... but the user should be able to do this in any wave editor.
Infuzion has pointed out elsewhere that Angstrom/Plantinum Ears already had a solution to this but here's mine anyway. I don't fully understand how theirs works/what theirs does so I can only say mine does simple linear interpolation to change sample sizes and works strictly in green data. It's only intended to take a very small wave file (representing a single cycle) and convert it to a wave table that sized as a power of two.
resampleArray.osm
infuzion ·
oddson wrote: resampleArray.osm
You are a wizard odd! Would be great on the WIKI next to the other one...
Tom7777 ·
Wow awsome, thanks for this i will give it a test now, the new version seems very different visually when comparing though.
And yeah no worries about the info, i have a rough idea of the differences but i havent really read much about them before, the main reason im asking about this is i want to avoid a 76MB project 😈
Edit - Oddson, also i sent you a email btw but about something else dunno if you got it 🙂
Wrote something here? To have a post removed or your name hidden, write to [email protected].