Programmed in C++ using openFrameworks and ofxFft.
In this program I explored Frequency and Amplitude Modulation and their applications to audio programming and DSP. Users can modify the frequencies of the initial sine, FM, and AM waveforms to output all sorts of crazy tones. In addition, I used ofxFft to do the frequency domain plotting and visualization. For this project I wanted anyone using this app to be able to understand exactly what is happening in the frequency domain when we modulate a signal’s amplitude and phase. The end result is actually quite aesthetically pleasing, though I didn’t round the frequencies to note values as in my last program. I’ve completely switched over from Matlab to C++ and openFrameworks for my music and audio algorithmic prototyping and programming.
Here’s how it works:
FM Modulation:
This technique works really well for low frequency oscillation (LFO) and creating tones with rich harmonic spectrums using only 2 sine waves!
AM Modulation:
This technique works really well for tremolo effects at low frequencies and, like FM modulation, works great to generate harmonically interesting tones at higher frequencies.
Low Pass Filter:
I also designed and programmed a 2-pole low pass filter to allow the user to get rid of some of the higher frequencies above the LP cutoff. Depending on the relationship between the phases of the FM, AM, and initial waveforms the higher frequencies components can have a piercing quality to them.
Read more…(text, the application, and photos)
Tags: AM, am modulation, audio programming, c++ audio, FM, FM modulation, Haris Ali, LFO, low frequency oscillator, ofxFft, openframeworks, realtime audio streaming, sine wave, syed haris ali, synthesizer, user interface, user interface audio, waveform synthesis