Skip to content Skip to navigation

OpenStax-CNX

You are here: Home » Content » [ mini-project ] Spectrogram Art

Navigation

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

This content is ...

Endorsed by Endorsed (What does "Endorsed by" mean?)

This content has been endorsed by the organizations listed. Click each link for a list of all content endorsed by the organization.
  • IEEE-SPS display tagshide tags

    This module is included inLens: IEEE Signal Processing Society Lens
    By: IEEE Signal Processing SocietyAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Comments:

    "A multimedia educational resource for signal processing students and faculty."

    Click the "IEEE-SPS" link to see all content they endorse.

    Click the tag icon tag icon to display tags associated with this content.

Affiliated with (What does "Affiliated with" mean?)

This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • NSF Partnership display tagshide tags

    This module is included inLens: NSF Partnership in Signal Processing
    By: Sidney BurrusAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Click the "NSF Partnership" link to see all content affiliated with them.

    Click the tag icon tag icon to display tags associated with this content.

  • National Instruments display tagshide tags

    This module is included in aLens by: National InstrumentsAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Comments:

    "Developed by Rose Hulman Prof Ed Doering, this collection is a multimedia educational resource for students and faculty that augments traditional DSP courses and courses that cover music […]"

    Click the "National Instruments" link to see all content affiliated with them.

    Click the tag icon tag icon to display tags associated with this content.

Also in these lenses

  • Lens for Engineering

    This module is included inLens: Lens for Engineering
    By: Sidney Burrus

    Click the "Lens for Engineering" link to see all content selected in this lens.

  • NI Signal Processing display tagshide tags

    This module is included inLens: Digital Signal Processing with NI LabVIEW and the National Instruments Platform
    By: Sam ShearmanAs a part of collection: "Musical Signal Processing with LabVIEW (All Modules)"

    Comments:

    "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, […]"

    Click the "NI Signal Processing" link to see all content selected in this lens.

    Click the tag icon tag icon to display tags associated with this content.

Recently Viewed

This feature requires Javascript to be enabled.

Tags

(What is a tag?)

These tags come from the endorsement, affiliation, and other lenses that include this content.
 

[ mini-project ] Spectrogram Art

Module by: Ed Doering. E-mail the authorEdited By: Erik Luther, Sam Shearman

Summary: 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!

Table 1
LabVIEWq.png 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!

Prerequisite Modules

If you have not done so already, please study the prerequisite modules Additive Synthesis Concepts and Additive Synthesis Techniques. If you are relatively new to LabVIEW, consider taking the course LabVIEW Techniques for Audio Signal Processing which provides the foundation you need to complete this mini-project activity, including working with arrays, creating subVIs, playing an array to the soundcard, and saving an array as a .wav sound file.

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.

Review Additive Synthesis Techniques to learn how to create your frequency trajectories for this part of the project.

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.

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks