Music synthesis and audio signal processing apply digital signal processing (DSP) concepts to create and control sound and to apply interesting special effects to musical signals. As you implement and experiment with synthesis and filtering algorithms, you develop a deeper understanding of the inter-relationships between a physical sound, its visual representations such as time-domain waveform and spectrogram, and its mathematical model.
Richard Hamming once said "the purpose of computing is insight, not numbers," and you gain manifold insights when you interact with a signal processing system that you created yourself. The LabVIEW Development Environment by National Instruments Corporation is an excellent tool you can use to convert mathematical algorithms into real time interactive music synthesizers and audio signal processors. The unique graphical data flow programming environment of LabVIEW allows DSP elements such as signal generators, filters, and other mathematical operators to be placed and interconnected as a block diagram. Placing user controls and indicators on the block diagram automatically generates an interactive graphical user interface (GUI) front-panel display, dramatically reducing the development effort needed to make an interactive application.
Musical Signal Processing with LabVIEW, a multimedia educational resource for students and faculty, augments traditional DSP courses and supports dedicated courses in music synthesis and audio signal processing. Each of the learning modules blends video, text, sound clips, and LabVIEW virtual instruments (VIs) into explanation of theory and concepts, demonstration of LabVIEW implementation techniques to transform theory into working systems, and hands-on guided project activities. Screencasts -- videos captured directly from the computer screen with audio narration and a hallmark of this resource -- use a mixture of hand-drawn text, animations, and video of the LabVIEW tool in operation to provide a visually rich learning environment
Musical Signal Processing with LabVIEW
1 LabVIEW Programming Techniques for Audio Signal Processing
1.1 Getting Started with LabVIEW
1.2 Editing Tips for LabVIEW
1.3 Essential Programming Structures in LabVIEW
1.4 Create a SubVI in LabVIEW
1.5 Arrays in LabVIEW
1.6 Audio Output Using LabVIEW's "Play Waveform" Express VI
1.7 Real-Time Audio Output in LabVIEW
1.8 Audio Sources in LabVIEW
1.9 Reading and Writing Audio Files in LabVIEW
2 Introduction to Audio and Musical Signals
2.1 Perception of Sound
2.2 [ mini-project ] Musical intervals and the equal-tempered scale
3 Analog Synthesis and Modular Synthesizers
3.1 Analog Synthesis Modules
3.2 [ mini-project ] Compose a piece of music using analog synthesizer techniques
4 MIDI for Synthesis and Algorithm Control
4.1 MIDI Messages
4.2 Standard MIDI Files
4.3 Useful MIDI Software Utilities
4.4 [ mini-project ] Parse and analyze a standard MIDI le
4.5 [ mini-project ] Create standard MIDI les with LabVIEW
4.6 [ LabVIEW application ] MIDI_JamSession
5 Tremolo and Vibrato Eects (Low-Frequency Modulation)
5.1 Tremolo Eect
5.2 [ mini-project ] Vibraphone virtual musical instrument (VMI) in LabVIEW
5.3 Vibrato Eect
5.4 [ mini-project ] "The Whistler" virtual musical instrument (VMI) in LabVIEW
6 Modulation Synthesis
6.1 Amplitude Modulation (AM) Mathematics
6.2 Pitch Shifter with Single-Sideband AM
6.3 [ mini-project ] Ring Modulation and Pitch Shifting
6.4 Frequency Modulation (FM) Mathematics
6.5 Frequency Modulation (FM) Techniques in LabVIEW
6.6 Chowning FM Synthesis Instruments in LabVIEW
6.7 [ mini-project ] Chowning FM Synthesis Instruments
7 Additive Synthesis
7.1 Additive Synthesis Techniques
7.2 Additive Synthesis Concepts
7.3 [ mini-project ] Risset Bell Synthesis
7.4 [ mini-project ] Spectrogram Ar
8 Subtractive Synthesis
8.1 Subtractive Synthesis Concepts
8.2 Interactive Time-Varying Digital Filter in LabVIEW
8.3 Band-Limited Pulse Generator
8.4 Formant (Vowel) Synthesis
8.5 Linear Prediction and Cross Synthesis
8.6 [ mini-project ] Linear Prediction and Cross Synthesis
8.7 Karplus-Strong Plucked String Algorithm
8.8 Karplus-Strong Plucked String Algorithm with Improved Pitch Accuracy
9 Sound Spatialization and Reverberation
9.1 Reverberation
9.2 Schroeder Reverberator
9.3 Localization Cues