Yeah I think filesize matters a lot. I think using Serum as an example for creating wavetables is a good idea. Cause in Serum you can load&save wavetables very easily and export in .wav format. And there is al ready thousands and thousand of them available. So if we can calculate how to translate Serum wavetable sample size to bytes, we will have an endless resource of wavetables
Info on wavetable size in Serum:
Serum can use up to 2048 samples for a wavetable and maximum number of waves/tables is 256. You can set amount of waves you want to use. In this example I use 128 waves/tables cause that is what most synth use.
Serum uses 32 bit 44.1 wavefiles for wavetables. Each wave/table is 8 bytes long, actually 8.328 bytes. I then converted one cycle to 32 bit 48khz: 4 bytes, actually 3.808 bytes. I Guess we need to do the rounding for 4 bytes for the calculations to make sense in relation to what values are possible to set in Axoloti. Soooo:
128 waves/tables of 4 bytes(This example is made from making one wavecycle of the 128 and exporting the single wave from Serum:
128*4= 512 bytes
So a 128 wavetable made in serum and converted to 32 bit 48khz is in theory 512 bytes. Perfect it seems.........
Then I made another test:
This one I made a whole table with 128 waves, exported in one file and converted as same method as above. And now the file is 482(481.690) bytes. I guess that is the roundings that messes up the bytesize. Calcualting it manually makes it fit perfectly 512 bytes. Anyway, how do we make a 482(481.690) byte file fit perfectly in a 512 table alloc object?
I think that using Serum wavetable format would be a good "standard" for using wavetables in Axoloti. Serum wavetables are VERY good quality. I compared to Blofeld which I also made custom wavetables for. Those editors for blofeld are not so good and wave quality is neither. Serum editor is very nice and good quality.
And if we do this, you dont have to convert any wavetables yourself. Like I mention there is thousands and thousands of wavetables for Serum by now and I am pretty sure all the old waldorf tables are already converted to Serum. We only need to make the calculations.
And now I think that it would be REALLY awesome with a table/Alloc object that uses samples instead of bytes. To me that makes a lot more sense when using wavetables which have to be really precise. Then we could avoid the roundings of bytes, even though that is probably what most manufactures do anyway. But sample length table would also be nice in other scenarios like for examle loading drum loops, etc.
What do you think about a dedicated table/Alloc sample object to avoid roundings? Is this possible to do such an object and would it make sense? Could be called "table/alloc 16bit sample size". And then you could set the sample size manually according to the sample you use.
Or what about making an object that loads 32 bit 44.1 khz files? Then Axoloti would be 100% compatible with Serums wavetables and that would give users a HUGE librabry that is already there. Anyway, just thinking loud here
Going to do some more tests on the Serum wavetable sizes today. Would be nice to figure out how do export the Serum wavetables so they fit perfectly into a table alloc 16b with a buffer size of 512.
Extra info on Serum tablesize in bytes:
a 128 wavetable at 32 bit 44.1khz (Serums own format) is
128*8: 1048 bytes (actually 1.048712 bytes).
Converted to 16 bit 48khz raw headerless in Audacity:
Converted to 32 bit 48khzkhz raw headerless in Audacity:
428 bytes divided by 128(number of waves in table+numbers of a step on a knob to selct the tables) is:
3.765625, rounded to 4. If calculated like this you wont play the tables from their startpoint cause we cannot set a value as 3.765625 in Axoloti, which we need to be able to index the 428 bytes perfectly in 128 steps... But I am not sure how the roundings will affect it. Havent tested it yet. And I am not sure how this works in audio world or it really is an issue...
@thetechnobear any ideas?
Link for Serum manual. Page 11 has some info on table size etc.:
A bunch of Waldorf Microwave wavetables in Serum format:
Video of Serums Wavetable editor. NICE