<< Chapter < Page Chapter >> Page >
Subtractive synthesis describes a wide range of synthesis techniques that apply a filter (usually time-varying) to a wideband excitation source such as noise or a pulse train. The filter shapes the wideband spectrum into the desired spectrum. This excitation/filter technique well-models many types of physical instruments and the human voice. Excitation sources and time-varying digital filters are introduced in this module.
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

Subtractive synthesis model

Subtractive synthesis describes a wide range of synthesis techniques that apply a filter (usually time-varying) to a wideband excitation source such as noise or a pulse train. The filtershapes the wideband spectrum into the desired spectrum. The excitation/filter technique describes the sound-producing mechanism of many types of physical instruments as well as the human voice, makingsubtractive synthesis an attractive method for physical modeling of real instruments.

illustrates the general model of subtractive synthesis. The excitation source parameters may include amplitude, bandwidth, and frequency (for repetitivepulse train input), and each parameter may change independently as a function of time. The filter parameters likewise may vary with time, and include center frequency, bandwidth, and resonant gain.

Model of the subtractive synthesis process

Excitation sources

Excitation sources for subtractive synthesis must be wideband in nature, i.e., they must contain significant spectral energy over a wide frequency range. A white noise source is an idealized source that contains constant energy over all frequencies. Practical noise sources do not have infinite bandwidth but can create uniformspectral energy over a suitable range such as the audio spectrum.

Random number generators form the basis of a variety of noise sources on digital computers. For example, the LabVIEW "Signal Processing" palette contains the following noise sources: uniform, Gaussian, random, gamma, Poisson,binomial, and Bernoulli.

A pulse train is a repetitive series of pulses. It provides an excitation source that has a perceptible pitch, so in a sense the excitation spectrum is "pre-shaped" before applying it to a filter.Many types of musical instruments use some sort of pulse train as an excitation, notably wind instruments such as brass (trumpet, trombone, tuba) and woodwinds (clarinet, saxophone, oboe, bassoon). For example, consider thetrumpet and its mouthpiece ( and , respectively). Listen to the "buzzing" sound of the trumpet mouthpiece alone trumpet_mouthpiece.wav , and compare it to the mouthpiece plus trumpet trumpet.wav . compares the time-domain waveform and frequency spectrum of each sound. Both sounds are the same pitch, so thesame harmonics are visible in each. However, the mouthpiece buzz contains more spectral energy at higher frequencies.

Trumpet instrument, a member of the brass family (click picture for larger image)
Trumpet mouthpiece, approximately 3 inches in length (click picture for larger image)
Spectra of the trumpet mouthpiece alone and mouthpiece-plus-trumpet signals (click picture for larger image)

Time-varying digital filters

Time-varying digital filters are typically implemented with block processing , in which an input signal is subdivided into short blocks (also called frames ) for filtering. Each frame is processed by a constant-coefficient digital filter. However, the constants change from one frame to thenext, thereby creating the effect of a time-varying filter.

The choice of frame length involves a trade-off between the rate at which the filter coefficients must change and the amount of time required for the filter's transient response. Higher-order filters requiremore time to reach steady state, and the frame length should be no shorter than the length of the filter's impulse response.

Digital filters may be broadly classified as either finite impulse response ( FIR ) or infinite impulse response ( IIR ). The latter type is preferred for most implementations (especially for real-time filtering) because IIR filters have many fewer coefficients than comparable FIR filters.However, IIR filters have the disadvantage of potential stability problems, especially when finite-precision calculations are used.

The digital filter coefficients usually are calculated independently for each frame. That is, it is generally not possible to calculate only two sets of filter coefficients and then interpolate in between. For example, supposea digital filter is required to have a cutoff frequency that varies anywhere from 100 Hz to 5,000 Hz. Ideally one would be able to calculate a set of filter coefficients for the 100 Hz filter and another set for the 5,000 Hz filter,and then use linear interpolation to determine the coefficients for any intermediate frequency, i.e., 650 Hz. Unfortunately the interpolation technique does not work. For off-line or batch-type processing, filter coefficientscan be computed for each frame. For real-time implementation, the filter coefficients must be pre-computed and stored in a lookup table for fast retrieval.

Download and run the LabVIEW VI filter_coeffs.vi .This VI illustrates why it is generally not possible to interpolate filter coefficients between blocks. Try this: increase the "low cutoff frequency" slider and observe the values of the coefficients. Somecoefficients vary monotonically (such as a[1]), but others such as a[2]decrease and then increase again. Still others such as the "b" coefficients remain at a constant level and then begin increasing. You can also try differentfilter types (highpass, bandpass, bandstop) and filter orders.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Musical signal processing with labview (all modules). OpenStax CNX. Jan 05, 2010 Download for free at http://cnx.org/content/col10507/1.3
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Musical signal processing with labview (all modules)' conversation and receive update notifications?

Ask