Well, it's definitely worth a try! ... If this works, and is accurately enough, surely it will be interesting! ...
Think I'll try this out today. If I'm thinking right, the internal mathematics of the EOS calculates modulation signals in the range of 0..1 (-1...0...1 on bipolar sources), at least that is the scheme that is explained in the manual. I then believe, that this floating point value is multiplied with 128 samples and truncated/rounded to an integer value before being added as an offset to the loop region.
I believe that the Gainx4 engine will multiply by 4 on the floating point value. If this is correct, the values calculated will not be in steps of either 1,2,4,8,16,32,64,128,256 etc. as wanted, but more like this:
1. DC (1%=0.01) -> GainX4 (would be 0.01 * 4 = 0.04)
2. GainX4 -> GainX4 (would be 0.04 * 4 = 0.16)
3. GainX4 -> GainX4 (would be 0.16 * 4 = 0.64)
4. GainX4 -> GainX4 (would be 0.64 * 4 = 2.56)
5. GainX4 -> SLoop (would be 2.56 * 128 = 367.68)
As can be seen, the value I got that should have been in steps of 256 samples (which is the waveform length in samples I'm looking for) became 367.68 samples instead, meaning that the loop will be positioned wrongly in the table if the 128 waveforms are placed 256 samples apart. The stepping will be in roughly 367/368 steps depending on the floating point value calculated.
So in theory, this modulation should place the loop region in the sample at roughly 368 step intervals if the DC->SLoop modulation is used. Using this scheme, you'd be able to calculate exactly where the loop will be placed in the sample down to sample accuracy with a little calculation of every value from 0.00 to 1.00.
Actualy this means that you would have a table with 100 waveforms, with roughly 368 samples in between, but this gives us an advantage, since we could have a loop only 256 samples en length, giving us some extra samples at the end of each waveform so that the interpolation algorithm will work flawlessly! ... By the way, a sample at 42193Khz being 256 samples in loop length is an E2 note exactly! (tested with the CALC feature in EOS to be an exact cycle of 256 samples).
The problem with other modulation sources than the DC source is, that they might have other floating point values than 0.00, 0.01, 0.02 etc. If those other sources have more decimal places, the scheme will get fucked up! .. Most likely this will be the case, especially when modulation sources are combined in the floating point domain. One hopeful solution to this is, that you might just modulate the DC->SLoop modulation amount instead, and hopefully this means that the value is scaled in 0.01 steps to the DC->SLoop amount value!
... If the amount values are handled internally as floating point values after the initial setting, this whole wavetable thing is nothing but dreams!
...
Maybe experimenting with the Quantize modulation engine can solve this problem somehow... this will have to be studied further...
I'm going to try this thing out some day... If it works, I'll let yu know about the details!
Razmo.
Regards, Jess D. Skov-Nielsen.