On Thu, May 13, 2021 at 11:18:49AM +0200, Jeanette C. wrote:
How does it
sound ?
Many, many thanks, Fons! I can't exactly say how it sounds, because I
don't have a listing of waveforms within wavetables. But there is a list
of all spectra, as images, I think this is it:
http://www.carbon111.com/300waves.pdf
It's exactly the first one. The sine wave is #32.
char sysex_string[128];
signed char samples[64];
... // fill string
for (int item = 0;item<64;item++)
{
sample[item] = (sysex_string[item /2])^0x80 + (sysex_string[(item / 2) +1]
<<4);
}
Mmmmm... I'll let you discover the errors (more than one)...
Try this:
for (int i = 0; i < 64; i++)
{
sample [i] = (16 * sysex_string [2*i] + sysex_string [2*i+1]) ^ 0x80;
}
Now if you want float samples (e.g. to do an FFT) you need
for (...)
{
int v;
v = (16 * sysex_string [2*i] + sysex_string [2*i+1]) ^ 0x80;
if (v & 0x80) v -= 256; // Sign extension
float_sample [i] = v;
}
Ciao,
--
FA