Steve’s FM code for Nyquist prompt … Modulate one waveform/track with another (FM synthesis)
NB:
#1 You need to resample the tracks to 96KHz before applying the FM code effect, otherwise the result will lack high frequencies. You can resample back to 44.1KHz afterwards.
#2 the control track which FMs should only have low frequency content , certainly nothing above 100Hz.
Below is a modified version of Steve’s code which increases the amount of FM : changing the 3 to 1 produces the same result as Steve’s original code
(defun fm (s-in)
(let* ((s-in (lowpass8 s-in (* 0.2 *sound-srate*)))
(s-in (lowpass8 s-in (* 0.2 *sound-srate*)))
(map (integrate (db-to-linear (scale 3 (aref s-in 0))))))
(snd-resamplev (aref s-in 1) *sound-srate* map)))
(fm s)