Abstract
Sounds that originate form nature have amplitudes of the frequency components that are ‘time variant’ or dynamic, partially due the uniqueness of the sound or in broader terms the randomness of the amplitude of each frequency in the particular sample. In an effort to convert digital sounds into a form that is ‘livelier’ an ADSR (Attack Delay Saturation and Release) envelopes were used. A sound envelop is a graph that dictates how a single note of sound would vary over time. This added a dynamic essence to the digital sounds. For example, with Attack envelope ‘bell’ like sounds with harsh overtones and prominent frequencies could be converted into an organ type sound by increasing the value of attack. However, for the longest time there lacked a process to synthesize organic/natural sounds. To put it simply, sounds that are random and that vary with time. In the September of 1973, John M Chowning submitted a paper for an algorithm for a process to produce complex natural spectra of sounds using frequency modulation to provide a more ‘life like’ experience to digitally produced sounds. He would later be known as the ‘Father of The modern digital Synthesizer’ and his discovery would pave the way for all of digital music that is being produced till date and beyond. This Project is a recreation of the FM Synthesizer using modern technology.
Objective
1. To recreate FM synthesis using a compact design and modern technology- Arduino Nano.
2. To generate and sample a series of modulations, to create desired sounds.
3. To observe real time output via a spectrograph.
Introduction
FM Synthesis (Frequency Modulation), developed in the 1970s, is a from a sound synthesis whereby the frequency of a waveform is changed by modulating its frequency with a modulator. The frequency of a oscillator is altered in ‘accordance with the amplitude of a modulating signal’. This project aims to demonstrate the vast range of outputs possible with the interaction of two oscillators using FM synthesis. An Arduino uno is used in combination with potentiometers for each oscillators controlling the frequency of the oscillators (pitch). The inputs are taken through the Arduino micro processor and sent to the software ‘Pure data’ to obtain a digital signal output of the interaction between the two oscillators and observe the values of the potentiometers being updated in real time.
Frequency modulation is the encoding of information in a carrier wave by varying the
instantaneous frequency of the wave. The technology is used in telecommunications, radio broadcasting, signal processing, and computing.. Chowning's breakthrough allowed for simple—in terms of process—yet rich sounding timbres, which synthesized 'metal striking' or 'bell like' sounds, and which seemed incredibly similar to real percussion (Chowning was also a skilled percussionist). He spent six years turning his breakthrough into a system of musical importance and eventually was able to simulate a large number of musical sounds, including the singing voice. In 1974, Stanford University licensed the discovery to Yamaha, with whom Chowning worked in developing a family of synthesizers and electronic organs. This was Stanford's most lucrative patent at one time, eclipsing many in electronics, computer science, and biotechnology. His algorithm was licensed to Japanese company Yamaha in 1973. The implementation commercialized by Yamaha (US Patent 4018121 Apr 1977 or U.S. Patent 4,018,121) is actually based on phase modulation, but the results end up being equivalent mathematically as both are essentially a special case of quadrature amplitude modulation. This project demonstrates the unique randomness of the outputs that arise from FM synthesis. The inputs from the oscillators are transferred to the an along pins of the Arduino uno micro controller. These inputs are then sent through a virtual MIDI through C++ code to the application ‘pure data’. Pure data is a visual programming language for sound design and digital signal processing. Developed by Miller Puckette in the 1990s for creating interactive computer music, in this project it is used to generate digital output for the analog input and display the output in the from audio sound.
The sounds emitted by this algorithm are unique for each combination and are sampled and used for sound design by manipulating it further using LP,HP,BP,BR etc. filters for optimal range required.
Topics Learned
• Sound design using pure data.
• Interfacing analog inputs with Arduino.
• Frequency modulation.
• Sampling.
• Usage of filters.
Skills Required
• Pure data extended
• C Programming for Arduino
• Interfacing of potentiometers
Proposed System

Data is read from the potentiometers using the Arduino nano board interfaced with the b500k
variable resistors. Each resistor controls the frequency of a single oscillator, in this case a sine
wave. Additionally, two more potentiometers could be provided to adjust the pitch or the
modulation depth and volume multiplier but for the purposes of this demonstration the pitch and
volume multiplier will be pre-set to display maximum observable/perceivable range of frequency
modulation using two oscillators. The potentiometer inputs are read though analog pins of the
Arduino nano.

The role of the Arduino nano board in this project is simply to act as a bridge between a physical
input on the potentiometer and pd-extended, which is an open-source visual programming
language used primarily for sound design and to convert analog signals from the potentiometer to
digital signals that can be utilized by pd-e (pure data extended) to manipulate the frequency of the
respective oscillator. The C code required for this project is hence very simple and is shown in
Figure 1.2 The data from the b500k variable resistor, is translated into 10 bit binary numbers
ranging from 0 to 1023 (0 at minimum position of pot and 1023 at maximum position of pot). In a
manner of analytically speaking, the external potentiometers act as physically
controllable/modifiable variables to the equation that is the computation of the output of two
oscillators, as shown in Figure 1.3. However, the true range of the possibilities of audio outputs,
the randomness of the waveform so generated from the computation of the two potentiometers
(oscillators) could not be appreciated via the practical applications of frequency modulation rather,
FM synthesis is a very useful tool in sound design as it provides an extremely wide range of
possible outcomes to sample a segment that can be spliced and passed through a set of filters to
create virtually any sound very easily. As a matter of fact, an extension of this project could be to
obtain a desired sound, from a sample from the demonstration conducted in this project.

The code/flow for pd-e is shown in Figure 1.5. The software uses ‘message boxes’ in order to allow
for user inputs illustrated with a curve on the right edge of the flow box. The contentment's of the
boxes are syntaxes of the software. The boxes may have one or more inputs and one or more
outputs to which multiple ‘nodes’ can be drawn or connected to create a flow chart like appearance.
The ‘close’ command is used to close the COM port and the ‘devices’ command shows the list of
available COM devices. In this project we choose COM 5 port, which is why the command ‘open
5’ exists to allow data transfer though that port. The ‘comport 0 9600’ command is used to set the
baud rate with is conjunction to the baud rate set in the Arduino nano and the ‘print’ command
displays the 10-bit values in the terminal of the pd-e software in real time. The terminal window
is shown in figure 1.6. The boxes with an indentation on the right corner are called ‘numbers’ and
it functions as variables in which case ‘osc 1’ can be termed as the carrier frequency and then ‘osc
2’ would be the modulating frequency. The rectangular boxes are called ‘objects’ and the command
‘unpack f f f f’ allows for reading multiple inputs through a single channel that can be then split
up (unpacked) into individual inputs. The number of ‘f’ indicates the number of inputs and the
nano board is capable of six inputs.
As mentioned before provision for two extra inputs is provided to control volume multiple and
modulation depth or pitch but for this project it shall not be variable and shall be kept constant.
The ‘*~’ box is called a scaler that computes both the signals from the individual oscillators.
‘Osc~’ generates a sine wave output based on the input parameters fed to the top of the box and
another scaler in combination with a number box allows for the volume scaling of the output.
Finally the ‘dac~’ command converts the digital signal to analog output that can be observed by
checking the
‘DSP’ check box in the terminal window, as shown (unchecked) in the terminal window in Figure
1.6.
The output can be sampled while tweaking the resistors to produce a unique sound based on the
position of each resistor and then passed through a series of filters to design a particular sound.
Conclusion
In conclusion FM synthesis can be done in a simple manner that is fast and much less complex when compared to additive or subtractive synthesis. It is simpler as whilst in the process of creating dynamic and ‘natural’ sounds most of the work is done by the oscillators themselves. The modulation aspect also adds a wide range of possible outcomes of sounds that would not be feasible using traditional means. This accomplishes the objectives of the project to design a modern and compact version of an FM synthesizer and sample the output while varying the frequency of oscillators in real time to perform filter operations on the sample to achieve desired sounds.
"It was 100% an ear discovery, I knew nothing about the math behind it. Gradually, I learnt to understand the FM equation through programming and math, and learned that it had an importance not seen by many people.” -John M. Chowning
Comments
Post a Comment