I trought of a way to play voices or relatively long steamed samples on the SNES by using the hardware frequency modulation as a way to save space. Instead of playing long steamed samples with horrible quality due to low frequency and interpolling, a simpler wave would just be "steamed" to give information to the next channel, who would be a frequency-moduled sinus (or some other waveform) that would be moduled from the first signal, and trus ouput the actual voice/sound effect, with a loss of quality due to the limits of the modulation instead of the limit of the pitch/memory space.
I did some testing using Goldwave, and I sucessfully found a formula that can take a wave, "frequency differenciate it" (that's how I called this process, which is the opposite of frequency modulation), and then frequency modulate it back to original. If the modulation factor is too low, there is loss of quality (that would be the case on the SNES), as well if the original wave is filtered (that would also be the case on the SNES), but the final result is still largely reconisable.
If the formula to get the wave back from pitch modulation is : sin(2*pi*f*t+y*w) (where f is the modulation frequencey, t time in second, y the modulation factor and w the modulating source), then the formula to get the modulating wave looks like this : w = (arcsin(wave_source)-(2*pi*(f*t)-int(f*t)-0.5)/y
(Same variables as above, exept wave_source is the original wave you want to "frequency derivate" to another one. (Both modulation source and original waves oscillates from -1 to 1). The (f*t)-int(f*t)-0.5 are here to keep the second term always between -pi and pi.
As this works very fine in theory I doubt if the results would be any usefull in the case of the SNES or not.
I did some testing using Goldwave, and I sucessfully found a formula that can take a wave, "frequency differenciate it" (that's how I called this process, which is the opposite of frequency modulation), and then frequency modulate it back to original. If the modulation factor is too low, there is loss of quality (that would be the case on the SNES), as well if the original wave is filtered (that would also be the case on the SNES), but the final result is still largely reconisable.
If the formula to get the wave back from pitch modulation is : sin(2*pi*f*t+y*w) (where f is the modulation frequencey, t time in second, y the modulation factor and w the modulating source), then the formula to get the modulating wave looks like this : w = (arcsin(wave_source)-(2*pi*(f*t)-int(f*t)-0.5)/y
(Same variables as above, exept wave_source is the original wave you want to "frequency derivate" to another one. (Both modulation source and original waves oscillates from -1 to 1). The (f*t)-int(f*t)-0.5 are here to keep the second term always between -pi and pi.
As this works very fine in theory I doubt if the results would be any usefull in the case of the SNES or not.