 |
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 |
Objective
Additive synthesis builds up complex sounds from simple sounds (sinusoids). Additive synthesis implies more than just doing Fourier series, though: each sinusoidal component is assigned its own frequency and amplitude trajectory (resulting in a partial), so complex, time-varying sounds can be generated by summing these partials together.
In this project you will create an oscillator whose output tracks a specified amplitude and frequency trajectory. With this general-purpose oscillator you can define multiple frequency/amplitude trajectories that can be combined to create complex sounds. In particular, you will design the sound so that its spectrogram makes a recognizable picture!
Deliverables
- All LabVIEW code that you develop (block diagrams and front panels)
- All generated sounds in .wav format
- Any plots or diagrams requested
- Summary write-up of your results
Part 1: General-Purpose Sinusoidal Oscillator
Develop a subVI called gposc.vi that accepts a frequency trajectory (in Hz), an amplitude trajectory, and a sampling frequency (in Hz) to produce a sinusoidal output whose amplitude and frequency tracks the two input trajectories, respectively. The two trajectories are arrays that should be of the same length.
Demonstrate that your oscillator works properly by showing the output of your VI (spectrogram and .wav file) for the amplitude and frequency trajectories produced by a LabVIEW MathScript node that contains the following code:
ff=[linspace(200,1600,2.5*fs) ...
linspace(1600,800,1.5*fs)];
aa=[linspace(1,0,3*fs) ...
linspace(0,0.75,fs)];
where fs is the sampling frequency in Hz, ff is the output frequency trajectory (also in Hz), and aa is the amplitude trajectory (between 0 and 1). Use a sampling frequency of 5 kHz when you make the spectrogram and soundfile.
Plot the trajectories ff and aa and compare to your spectrogram.
Remember, the instantaneous frequency of your general-purpose sinusoidal oscillator is related to the time-varying phase of the sine function. That is, if the sinusoidal signal is defined as
y(t)=sin(θ(t))
y(t)=sin(θ(t))
,
then the instantaneous frequency of the sinusoid is
ω(t)=
dθ(t)
/
dt
ω(t)=
dθ(t)
/
dt
radians per second. Because you are given a frequency trajectory that relates to
ω(t)
ω(t)
, which mathematical operation yields the phase function
θ(t)
θ(t)
?
Here's a LabVIEW coding tip: You will find the built-in VI "Mathematics | Integ and Diff | Integral x(t)" to be essential for this part of the project.
Part 2: Frequency Trajectory Design
You can make your spectrogram art project sound more musically appealing when you design the frequency trajectories to account for frequency
perception; refer to
Perception of Sound for a detailed treatment of this subject.
Design your trajectories in "log space" (using logarithmic graph paper) and then convert to actual frequency just before invoking your general-purpose sinusoidal oscillator.
Part 3: Amplitude Trajectory Design
The discussion of Part 2 pertains to the design of your amplitude trajectories, as well. Perception of intensity (loudness) is also logarithmic (refer to
Perception of Sound and review the section on intensity perception). In this part you will design your amplitude trajectory in "log space," but now using traditional decibels (dB). An intensity trajectory can be converted to amplitude by "undoing" the equation that relates a value to the same value expressed in decibels:
X
dB
=20
log
10
(X)
X
dB
=20
log
10
(X)
.
Experiment with your spectrogram display device to learn the intensity-to-color mapping. Specifically, you could produce a sinusoidal signal with increasing intensity values over time, then match up the plotted colors to the known intensity values.
Part 4: Spectrogram Art
Design a spectrogram picture using multiple frequency/amplitude trajectories. Include your paper-and-pencil drawing of the spectrogram as part of your deliverables. Use your creativity to make an interesting and recognizable picture.
Better designs will go beyond straight lines to include curved lines such as arcs, exponentials, parabolas, sinusoids, polynomials, spline interpolations, and so on.
Include a .wav file of the sound associated with your spectrogram picture.
"This online course covers signal processing concepts using music and audio to keep the subject relevant and interesting. Written by Prof. Ed Doering from the Rose-Hulman Institute of Technology, […]"