making wavetable files - already Im confusing myself...
-
OK so if you have followed the discussion about custom wavetables, you'll know I'm late to the party on all this cool wavetable functionality...
So I thought I'd start by testing out the resynthesis algo....against something built externally that complies nicely(is a power of 2 in length)...
So casting about for some suitable audio, I thought I'd start with the Adventure Kid waveforms....(Google them they are a nice resource).....
Now these ship as single cycle wave files all tuned to D1, so they are 600 samples long.... so yep not a power of 2......so HISE will need to resynthesis this...good.
OK, here's where Im 2nd guessing myself...to get to something that doesnt need resynthesising, I can ignore the pitch of this file and simply use Audiacity's "Change Speed and Pitch" effect and specify 1024 as a new length....
yes?
If so anyone know of any better "resampling" software that gets me to the same place?
if "no"... then what am I doing wrong?
-
@Lindon funny, almost all wavetables I checked that came from external sources were already power of two so I assumed that was some kind of industry standard.
You might run into issues when trying to resample a single cycle length depending on the interpolation technique you choose, it might cause some discontinuities at the start / end of the cycle.
-
@Christoph-Hart said in making wavetable files - already Im confusing myself...:
@Lindon funny, almost all wavetables I checked that came from external sources were already power of two so I assumed that was some kind of industry standard.
You might run into issues when trying to resample a single cycle length depending on the interpolation technique you choose, it might cause some discontinuities at the start / end of the cycle.
Yeah I think those Adventure Kid files are from before wavetables were a thing, they're attempts to provide single-cycle data for use in "std" oscillators.
I get what you are saying about single cycles, I guess I need to simply duplicate them a number of times to get some "bigger" data set to work with...
-
@Lindon yes but even then it's easy to create discontinuities which mess up the harmonic spectrum. In that case just try the resynthesiser, it basically does resampling with a few tricks like this.
-
@Christoph-Hart said in making wavetable files - already Im confusing myself...:
@Lindon yes but even then it's easy to create discontinuities which mess up the harmonic spectrum. In that case just try the resynthesiser, it basically does resampling with a few tricks like this.
yep will do thanks. Given its pretty simple to just use Audacity to modify the size of the file to a power-of-2 value and then duplicate the contents 4 or 8 times to get a "bigger" file I guess I might end up doing that anyway and thus bypassing the resynthesis step altogether...
-
@Lindon you could even use HiseScript to write a batch processor that perform these steps, fun little excercise and you'll get to know the Buffer class which is highly useful when operating with wavetables (you can compute any wavetable and feed it to the wavetable synthesiser once you get the hang of it).
-
@Lindon
For example, if you use buffers and slider packs, you can draw your own wave tables in a great way.
Add a little unison and you'll quickly get great results.Here is an example:
-
@Christoph-Hart said in making wavetable files - already Im confusing myself...:
@Lindon you could even use HiseScript to write a batch processor that perform these steps, fun little excercise and you'll get to know the Buffer class which is highly useful when operating with wavetables (you can compute any wavetable and feed it to the wavetable synthesiser once you get the hang of it).
LOL, yes I should consider it, otherwise it'd probably be a batch process in Audacity to set = 2048 then some python script stuff to replicate the contents, ..but sure HiseScript might be a better approach, esp. as my HiseScript generator is itself written in HISE script and that saves me a truck load of time these days...so Im already on the eat-your-own-dog-food utility journey..
-
@Oli-Ullmann very impressive.....
-
@Oli-Ullmann damn that friggin kewl.
Teach Me! ha.
-
@Chazrox
Glad you like it. To be honest, there's not that much to do, since @Christoph-Hart has already done all the hard work for us.Creating the WaveTable:
All you have to do is fill a buffer, which you then load into the WaveTable synth using the WaveTable controller.Christoph has provided us with some examples in the documentation:
https://docs.hise.audio/scripting/scripting-api/wavetablecontroller/index.htmlAppearance:
To make the whole thing look interesting, I drew a panel based on the slider values of a slider pack. The slider pack is transparent and the panel is behind the slider pack.So you use the values of the individual sliders in the paintRoutine of the panel.