Skip to content Skip to navigation

Connexions

You are here: Home » Content » Chowning FM Synthesis Instruments in LabVIEW

Navigation

Content Actions

  • Download module PDF
  • Add to ...
    Add the module to:
    • My Favorites
    • A lens
    • An external social bookmarking service
    • My Favorites (What is 'My Favorites'?)
      'My Favorites' is a special kind of lens which you can use to bookmark modules and collections directly in Connexions. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need a Connexions account to use 'My Favorites'.
    • A lens (What is a lens?)

      Definition of a lens

      Lenses

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

      What is in a lens?

      Lens makers point to Connexions 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 Connexions member, a community, or a respected organization.

    • External bookmarks
  • E-mail the author

Lenses

What is a lens?

Definition of a lens

Lenses

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

What is in a lens?

Lens makers point to Connexions 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 Connexions member, a community, or a respected organization.

This content is ...

In these lenses

  • NI Signal Processing

    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.

Recently Viewed

Tags

(What is a tag?)

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

Chowning FM Synthesis Instruments in LabVIEW

Module by: Ed Doering

Summary: John Chowning pioneered frequency modulation (FM) synthesis in the 1970s, and demonstrated how the technique could simulate a diversity of instruments such as brass, woodwinds, and percussion. FM synthesis produces rich spectra from only two sinusoidal oscillators, and more interesting sounds can be produced by using a time-varying modulation index to alter the effective bandwidth and sideband amplitudes over time. A LabVIEW VI is developed to implement the sound of a clarinet, and the VI can be easily modified to simulate the sounds of many other instruments.

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

Overview

Frequency modulation synthesis (FM synthesis) produces incredibly rich spectra from only two sinusoidal oscillators; refer to FM Mathematics for a complete description of the spectral characteristics of FM synthesis. You can produce even more interesting sounds with a time-varying modulation index to alter the effective bandwidth and sideband amplitudes over time. This relatively simple modification to the basic FM equation creates tones with time-varying spectra to emulate many types of physical musical instruments.

John Chowning pioneered FM synthesis in the 1970s and demonstrated how the technique could simulate instruments such as brass, woodwinds, and percussion. These techniques are the subject of this module.

Significance of Time-Varying Spectra

Physical musical instruments produce audio spectra that evolve with time. A typical sound begins with some type of dynamic transient, for example, as pressure builds up within a brass instrument or when a percussion instrument is first struck. The sound continues with some type of quasi steady-state behavior when mechanical energy is continually applied, i.e., blowing on a flute, bowing a violin string, and repeatedly striking a gong. Once the mechanical energy input ceases, the sound concludes by decaying in some fashion to silence.

Clearly the amplitude of the instrument's audio signal changes during the course of the tone, following the typical attack-decay-sustain-release (ADSR) envelope described in Analog Synthesis Modules. Even more important, the intensity of the higher-frequency spectral components changes as well. The high-frequency components are often more evident during the initial transient. In fact, the dynamic nature of the spectra during the instrument's transient plays an important role in timbre perception.

FM Equation with Time-Varying Modulation Index

The basic FM equation with time-varying amplitude and modulation index is presented in Equation 1:

y(t)=a(t)sin(2π f c t+i(t)sin(2π f m t)) y(t)=a(t)sin(2π f c t+i(t)sin(2π f m t)) (1)

You can easily model a physical instrument with this equation by causing the modulation index i(t) i(t) to track the time-varying amplitude a(t) a(t) . In this way, a louder portion of the note also has more sidebands, because the modulation index effectively controls the bandwidth of the FM spectra.

Chowning Instruments

John Chowning's publication, The Synthesis of Complex Audio Spectra by Means of Frequency Modulation (Journal of the Audio Engineering Society, 21(7), 1973), describes a basic structure to implement Equation 1 with the following parameters:

  • A A MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWGbbaaaa@360D@ - peak amplitude
  • I max I max MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWGjbWaaSbaaSqaaiaab2gacaqGHbGaaeiEaaqabaaaaa@3910@ - maximum value of modulation index i(t)
  • I min I min MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWGjbWaaSbaaSqaaiaab2gacaqGPbGaaeOBaaqabaaaaa@390E@ - minimum value of modulation index i(t) i(t) MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWGPbGaaiikaiaadshacaGGPaaaaa@3887@
  • f c f c MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWGMbWaaSbaaSqaaiaadogaaeqaaaaa@3746@ [Hz] - carrier frequency
  • H H MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWGibaaaa@3614@ - harmonicity ratio ( f m / f c f m / f c MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWGMbWaaSbaaSqaaiaad2gaaeqaaOGaai4laiaadAgadaWgaaWcbaGaam4yaaqabaaaaa@3A0C@ )
  • duration [s] - duration of generated audio
  • w 1 (t) w 1 (t) MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWG3bWaaSbaaSqaaiaaigdaaeqaaOGaaiikaiaadshacaGGPaaaaa@3986@ - prototype waveform for time-varying amplitude
  • w 2 (t) w 2 (t) MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWG3bWaaSbaaSqaaiaaigdaaeqaaOGaaiikaiaadshacaGGPaaaaa@3986@ - prototype waveform for time-varying modulation index

The prototype waveforms are normalized in both dimensions, i.e., the range and domain are both zero to one. The prototype waveform w 1 (t) w 1 (t) MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWG3bWaaSbaaSqaaiaaigdaaeqaaOGaaiikaiaadshacaGGPaaaaa@3986@ is converted to the time-varying amplitude as a(t)=A w 1 (t) a(t)=A w 1 (t) . The prototype waveform w 2 (t) w 2 (t) MathType@MTEF@5@5@+=feaagaart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYb1uaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9q8qqQ8frFve9Fve9Ff0dmeaabaqaciGacaGaaeqabaWaaeaaeaaakeaacaWG3bWaaSbaaSqaaiaaikdaaeqaaOGaaiikaiaadshacaGGPaaaaa@3987@ is converted to the time-varying modulation index as i(t)=( I max I min ) w 2 (t)+ I min i(t)=( I max I min ) w 2 (t)+ I min . Representative Chowning FM instrument specifications are described in the PDF document chowning_instruments.pdf. The Figure 1 screencast video walks through the complete process to implement the Chowning clarinet instrument in LabVIEW.

LabVIEW.png Download the finished VI: chowning_clarinet.vi. Refer to TripleDisplay to install the front-panel indicator used to view the signal spectrum.

You can easily adapt the VI to create the remaining Chowning instruments once you understand the general implementation procedure.

Figure 1: [video] Implement a Chowning FM instrument in LabVIEW
Figure 1 (mod_fm-chowning-clarinet.html)

Comments, questions, feedback, criticisms?

Send feedback