## 3 Results
### Reciprocal Frequency Modulation  
Frequency Modulation (FM) is a tried and true computer audio technique that has been used to simulate the human voice and many other real musical instruments [24]. In FM the scaled output of one oscillator (the modulator) affects the frequency of another (the carrier). In continuous-time, it can be expressed:  
\[x(t)=\cos(\omega_{c}t+A\sin(\omega_{m}t)) \tag{18}\]  
where \(A\) is the so-called modulation index, \(\omega_{c}=2\pi f_{c}\) is the angular frequency of the carrier, and \(\omega_{m}=2\pi f_{m}\) is the angular frequency of the modulator. A lookup oscillator digitization of Equation (18) would be:  
\[x(n)=\cos(\omega\phi(n)+Ap(n)) \tag{19}\]  
where \(p(n)\) is simply the output of some other oscillator of the form shown in Equation (15). The frequencies in the spectrum of the carrier oscillator are predictable depending on \(\omega_{c}\) and \(\omega_{m}\). If \(\omega_{c}\) and \(\omega_{m}\) are harmonically related, so are the resulting sidebands (the effects of foldover excepted). The amplitudes of these sidebands depend on \(A\). For a thorough discussion, consult Chapter 5.5 in [23] or any other introductory text on digital audio effects. The implementation in Equation (19) is more precisely called 'phase modulation', because the phase signal is modulated [25]. We can implement a reciprocal FM network by again modifying the Equations (13) and (14) and solving with RK4. \[\dot{x}_{i}=(\omega_{i}+\lambda_{i})y_{i} \tag{20}\]  
\[\dot{y}_{i}=-(\omega_{i}+\lambda_{i})x_{i} \tag{21}\]  
here, there are any number of oscillators that modulate one another, and \(\lambda_{i}\) is some linear combination of (the \(x\) part of) each other's outputs:  
\[\lambda_{i}=\alpha_{i1}x_{1}+\alpha_{i2}x_{2}\dots\alpha_{ij}x_{j} \tag{22}\]  
The coefficients \(\alpha_{ij}\) define the index of modulation acting on the frequency of oscillator \(i\) by oscillator \(j\). If we wish to modulate the modulating oscillator with the output of the carrier as in Figure 4, lookup oscillators will be insufficient for the same reasons as described above in the case of reciprocal sync. However we can incorporate a delay-free loop between oscillators by using RK4 to solve for any number of oscillators expressed by Equations (20)-(22). Figures 5a and 5b compare reciprocal FM implemented as ODEs and as lookup oscillators. As the plots show, delay (in this case 0.0208 ms which is 1 sample at 48 kHz) between the lookup oscillators in a reciprocal FM network creates inharmonic distortion that is similar to broadband noise at higher  
Figure 4: Signal flow diagram for a reciprocal frequency modulation (FM) scheme without delay. modulation indices. On the contrary the ODE + RK4 implementation produces very different results. Broadband noise does not appear, and in the harmonic case, a low frequency periodicity emerges. The meaning of the modulation index is very different in the two implementations. The values given in Figure 5 were chosen by ear and by examining magnitude spectra so that they were roughly equivalent. There is a complex and nonlinear relationship between the equivalent indices in the two implementations. As a final note, _feedback_ FM (FBFM) has been known for some time [26]. FBFM differs from _reciprocal_ FM in that FBFM needs only one lookup oscillator whose delayed output modulates its own phase input signal. As in the case with reciprocal FM, FBFM will cause a great deal of aliasing and foldover at higher indices and this comes across as broadband noise (Figure 6). In the ODE + RK4 implementation of FBFM we instead see that higher modulation indices bring about a flattening effect along with increased harmonic energy. Figure 5: Spectrograms of **(a)** reciprocal frequency modulation using lookup oscillators of frequencies 800 Hz and 777 Hz in the top and 800 Hz and 600 Hz in the bottom; In **(b)** the same network with the same frequencies, but using the ODE (ordinary differential equation) + RK4 implementation.