<< Chapter < Page | Chapter >> Page > |
This module refers to LabVIEW, a software development environment that features a graphical programming language. Please see the LabVIEW QuickStart Guide module for tutorials and documentation that will help you: | |
• Apply LabVIEW to Audio Signal Processing | |
• Get started with LabVIEW | |
• Obtain a fully-functional evaluation edition of LabVIEW |
Additive synthesis creates complex sounds by adding together individual sinusoidal signals called partials . The prerequisite module Additive Synthesis Concepts reviews the main concepts of additive synthesis. In this module you will learn how to synthesize audio waveforms by designing the frequency and amplitude trajectories of the partials. Also, LabVIEW programming techniques for additivesynthesis will be introduced in two examples.
A partial is the fundamental building block of additive synthesis. A partial is a single sinusoidal component whose amplitude and frequency are each time-varying. The time-varying amplitude denoted $a(t)$ is called the amplitude trajectory and the time-varying frequency denoted $f(t)$ is called the frequency trajectory . Additive synthesis requires the design of both trajectories for each partial; the partials are then summed together to create the sound.
The screencast video of [link] shows how to begin the design of a sound as a spectrogram plot, how to design the amplitude trajectory first as an intensity (loudness) trajectory in "log space" using decibels, and how to design the frequency trajectory in"log space" using octaves. Designing the partials in log space accounts for hearing perception which is logarithmic in both intensity and in frequency; refer to Perception of Sound for a detailed treatment of this subject.
In this first example, partials are created during a fixed time interval and then concatenated to create the overall sound. During the firsttime interval a single partial is created at a reference frequency. During the second time interval the partial's frequency linearly increases in "octave space" from the reference frequency to a frequency two octaves abovethe reference frequency. In the third interval the partial bifurcates into two partials, where one increases by an octave and the other decreases by an octave. In the fourth interval, each of the two partials bifurcates again to make a total offour partials, each increasing or decreasing by half an octave. This behavior repeats in each subsequent time interval, doubling the number of partials, and halving the amount of frequency increase or decrease.
The screencast video of [link] shows how the frequency trajectories are designed in "octave space", and then reviews the key LabVIEWprogramming techniques needed to implement this design. The video also includes an audio demonstration so you can hear the design of this "audible fractal."
The LabVIEW VI demonstrated within the video is available here: genfnc.zip . This VI requires installation of the TripleDisplay front-panel indicator.
The design of a sound using additive synthesis typically begins with a spectrogram representation of the desired sound. In this second example, straight line segments define the frequency trajectories of nine distinct partials that create a spectrum of a recognizable object, specifically, a cartoon drawing ofan individual who is happy to be wearing a French beret.
The screencast video of [link] shows how the frequency trajectories are designed in "octave space" and specified according to the coordinates of the line segment endpoints. The design of the corresponding amplitude trajectories necessary to make the partials start and stop at the correct timesis likewise discussed. Key LabVIEW programming techniques needed to implement this design and an audio demonstration are also presented.
The LabVIEW VI demonstrated within the video is available here: face.zip . This VI requires installation of the TripleDisplay front-panel indicator.
Notification Switch
Would you like to follow the 'Musical signal processing with labview -- additive synthesis' conversation and receive update notifications?