Additive synthesis is a technique that gives synthesizers precise control over each individual partial of a sound. Currently, I am working on an software synthesizer that will use additive synthesis to implement certain acoustic features. However, performing additive synthesis by simply adding multiple sine waves together can become computationally expensive, especially when multiple musical notes are being played together simultaneously. This blog post is the first of a series of blog posts that will investigate different implementations of additive synthesis, and help me determine a computationally efficient implementation of additive synthesis for the software synthesizer that I am currently making. The github respository for this entire project can be found here.
A synthesizer is a musical instrument that uses analog or digital signal processing to produce sounds of varying timbres. Synthesizers work on the theory that all signals are a summation of multiple sine waves, with each sine wave having their own amplitude, frequency and phase. Each sine wave that contributes to a sound's timbre is called a partial tone of that sound. The pitch and timbre of a sound is mostly determined by the relationship between the partials that makes up that sound. A sound is harmonic if all partials occurs at some multiple of the sounds core frequency. Most musical instruments that are blown or bowed will produce a harmonic sounds.
Probably the most common type of synthesizer is the subtractive synthesizer, which takes an initially rich, harmonic sound that has a lot of partials (like a saw-tooth wave) and generates a particular timbre by applying a sequence of filters that "subtracts" from the initial sound. Additive synthesis instead builds the timbre of a sound from the ground up by summing multiple partials together. It is possible for a synthesizer to appear like a subtractive synthesizer to the user, but actually use additive synthesis under the hood. This will be the case with the synthesizer that I am working on. My synthesizer requires an additive synthesis engine to provide users with an expressive set of features that includes the following:
So I will be looking at the following additive synthesis implementations (in C++):
Each additive synthesis implementations will be evaluated on the following metrics:
In the next post of this series, I will talk more about the evaluation metrics and how they will be implemented.
0 Comments
Leave a Reply. |
This section will not be visible in live published website. Below are your current settings: Current Number Of Columns are = 1 Expand Posts Area = Gap/Space Between Posts = 10px Blog Post Style = card Use of custom card colors instead of default colors = Blog Post Card Background Color = current color Blog Post Card Shadow Color = current color Blog Post Card Border Color = current color Publish the website and visit your blog page to see the results Author
I am Golden Rockefeller, a Ph.D Robotics student at Oregon State University. I will post updates on personal projects that I am working on. My interests include music synthesis, cooking, game design, and intelligent autonomous system. Categories
All
Archives |