J.A. Moorer, The Synthesis of Complex Audio Spectra by Means of Discrete Summation Formulae: https://ccrma.stanford.edu/files/pape...
Moppelsynth VSTs: https://www.verklagekasper.de/synths
Support this channel via a special purpose donation to the Georgia Tech Foundation (GTF210000920), earmarked for my work: • Support This Channel via a Special Pu...
Octave code (spectrogram plotting may require tweaking to work in MATLAB):
pkg load signal
fs = 48000;
tt = 0:1/fs:10;
fc = 110;
fm = 110;
theta = 2*pi*fc*tt;
betta = 2*pi*fm*tt;
%use these lines for attack/decay envelope
%a = linspace(0,0.9,floor(length(tt)/2));
%a = [a, 0.99, a(end:1:1)];
%use this line for pure decay envelope
a = linspace(0.9,0,length(tt));
% First xx formula is for upper sidebands only, second is for double sidebands
%xx = (sin(theta) a .* sin(thetabetta)) ./ (1 + a .^ 2 2*a .* cos(betta));
xx = (1 a .^ 2) .* sin(thetabetta) ./ (1 + a .^ 2 2*a .* cos(betta));
figure(1);
specgram(xx,2*4096,fs);
figure(2)
plot(tt,xx);
soundsc(xx,fs)
0:00 Introduction
2:38 MATLAB/Octave code
5:12 Upper side bands
6:57 Division by "zero" conjecture
7:28 Percussive envelopes
9:28 Inharmonics (USB)
11:12 Double side band variation
13:23 Cancellation!
14:15 Inharmonics (DSB)
15:05 Beat patterns
16:32 Bandlimited formulas
18:29 Moppelsynths