Digital Sound & Music

Concepts, Applications, & Science

Welcome to the online and in-progress "Digital Sound & Music" text. Click on a chapter below to expand its subtopics; subtopics with a icon to their left can be expanded to access related Flash tutorials, MAX demos, MATLAB exercises, C++ and Java programming exercises, video tutorials, and practical exercises.

Chapter 1: Getting Ready

Collapse All | Expand All

1.1 - Sounds Like Fun!
1.2 - How This Book is Organized
1.3 - A Brief History of Digital Sound
1.4 - Basic Terminology
1.4.1 - Analog vs. Digital
1.4.2 - Digital Audio vs. MIDI
1.5 - Setting up Your Work Environment
1.5.1 - Overview
1.5.2 - Hardware for Digital Audio and MIDI Processing
1.5.2.1 - Computer System Requirements
1.5.2.2 - Digital Audio Interface
1.5.2.3 - Drivers
1.5.2.4 - MIDI Keyboard
1.5.2.5 - Recording Devices
1.5.2.6 - Microphones
1.5.2.7 - Direct Input Devices
1.5.2.8 - Monitor Loudspeakers
1.5.2.9 - Studio Headphones
1.5.2.10 - Cables and Connectors
1.5.2.11 - Dedicated Hardware Processors
1.5.2.12 - Mixers
1.5.2.13 - Loudspeakers
1.5.2.14 - Analysis Hardware
1.5.3 - Software for Digital Audio and MIDI Processing
1.5.3.1 - The Basics
1.5.3.2 - Logic
1.5.3.3 - Cakewalk Sonar and Music Creator
1.5.3.4 - Adobe Audition
1.5.3.5 - Audacity
1.5.3.6 - Reason
1.5.3.7 - Software Plug-Ins
1.5.3.8 - Music Composing and Notation Software
1.5.3.9 - Working in the Linux Environment
1.5.4 - Software for Live Performances
1.6 - Learning Supplements
1.6.1 - Practical Exercises
Practical Exercises:
1.6.2 - Flash Tutorials
1.6.3 - Max and Pure Data (PD)
1.6.4 - MATLAB and Octave
1.6.5 - C++ and Java Programming Exercises
1.7 - Where to Go from Here
1.8 - References
Chapter 2: Sound Waves

Collapse All | Expand All

2.1 - Concepts
2.1.1 - Sound Waves, Sine Waves, and Harmonic Motion
Flash Tutorials:
2.1.2 - Properties of Sine Waves
Flash Tutorials:
MAX Demos:
2.1.3 - Longitudinal and Transverse Waves
Flash Tutorials:
Video Tutorials:
2.1.4 - Resonance
2.1.4.1 - Resonance as Harmonic Frequencies
Flash Tutorials:
2.1.4.2 - Resonance of a Transverse Wave
Video Tutorials:
2.1.4.3 - Resonance of a Longitudinal Wave
Practical Exercises:
Video Tutorials:
2.1.5 - Digitizing Sound Waves
2.2 - Applications
2.2.1 - Acoustics
2.2.2 - Sound Synthesis
MAX Demos:
2.2.3 - Sound Analysis
2.2.4 - Frequency Components of Non-Sinusoidal Waves
Flash Tutorials:
Practical Exercises:
2.2.5 - Frequency, Impulse, and Phase Response Graphs
2.2.6 - Ear Testing and Training
MAX Demos:
2.3 - Science, Mathematics, and Algorithms
2.3.1 - Modeling Sound Waves in Max
MAX Demos:
2.3.2 - Modeling Sound Waves in Pure Data (PD)
2.3.3 - Modeling Sound Waves in MATLAB
MATLAB Exercises:
2.3.4 - Reading and Writing WAV Files in MATLAB
2.3.5 - Modeling Sound Waves in Octave
2.3.6 - Transforming from One Domain to Another
2.3.7 - The Discrete Fourier Transfer and its Inverse
2.3.8 - The Fast Fourier Transform
2.3.9 - Applying the Fourier Transform in MATLAB
2.3.10 - Windowing the FFT
2.3.11 - Windowing Functions to Eliminate Spectral Leakage
- Modeling Sound Waves in C++ Programs under Linux
C++ Programming Exercises:
2.3.7 - Modeling Sound Waves in Java Programs
C++ Programming Exercises:
2.4 - References
Chapter 3: Musical Sound

Collapse All | Expand All

3.1 - Concepts
3.1.1 - Context
3.1.2 - Tones and Notes
3.1.3 - Music Versus Noise
3.1.4 - Scales
MAX Demos:
3.1.5 - Musical Notation
3.1.5.1 - Score
MAX Demos:
3.1.5.2 - Notes and their Duration
3.1.5.3 - Rhythm, Tempo, and Meter
Flash Tutorials:
3.1.5.4 - Rests and their Duration
Video Tutorials:
3.1.5.5 - Key Signature
Flash Tutorials:
3.1.5.6 - The Circle of Fifths
Flash Tutorials:
3.1.5.7 - Key Transposition
Flash Tutorials:
3.1.6 - Musical Composition
3.1.6.1 - Historical Context
3.1.6.2 - Intervals
MAX Demos:
3.1.6.3 - Chords
3.1.6.4 - Chord Progressions
Flash Tutorials:
3.1.7 - Dynamics and Articulation
3.2 - Applications
3.2.1 - Piano Roll and Event List Views
3.2.2 - Tablature
3.2.3 - Chord Progression
MAX Demos:
3.2.4 - Guitar Chord Grid
3.3 - Science, Mathematics, and Algorithms
3.3.1 - The Mathematics of Music
3.3.2 - Equal Tempered vs. Just Tempered Intervals
3.3.3 - Experimenting with Music in Max
MAX Demos:
3.3.4 - Experimenting with Music in MATLAB
MATLAB Exercises:
3.3.5 - Experimenting with Music in C++
C++ Programming Exercises:
3.3.6 - Experimenting with tempo in a Java program
C++ Programming Exercises:
3.4 - References
Chapter 4: Sound Perception and Acoustics

Collapse All | Expand All

4.1 - Concepts
4.1.1 - Acoustics
4.1.2 - Psychoacoustics
4.1.3 - Objective and Subjective Measures of Sound
4.1.4 - Units for Measuring Electricity and Sound
4.1.5 - Decibels
4.1.5.1 - Why Decibels for Sound?
4.1.5.2 - Various Usages of Decibels
4.1.5.3 - Peak Amplitude vs. RMS Amplitude
4.1.6 - Sound Perception
4.1.6.1 - Frequency Perception
4.1.6.2 - Critical Bands
4.1.6.3 - Amplitude Perception
4.1.7 - The Interaction of Sound with its Environment
4.1.7.1 - Absorption, Reflection, Refraction, and Diffraction
4.1.7.2 - Reverberation, Echo, and Diffusion, and Resonance
4.2 - Applications
4.2.1 -
4.2.1.1 - Real-World Considerations
4.2.1.2 - Rules of Thumb
4.2.1.3 - Determining Power and Voltage Differences and Desired Changes in Power Levels
4.2.1.4 - Converting from One Type of Decibel to Another
4.2.1.5 -
4.2.1.6 - Inverse Square Law
Practical Exercises:
4.2.2 - Acoustic Considerations for Live Performances
4.2.2.1 - Potential Acoustic Gain (PAG)
Flash Tutorials:
4.2.2.2 - Checking and Setting Sound Levels
4.2.2.3 - Impulse Responses and Reverberation Time
4.2.2.4 - Frequency Levels and Comb Filtering
MAX Demos:
4.2.2.5 - Resonance and Room Modes
Video Tutorials:
4.2.2.6 - The Precedence Effect
MAX Demos:
4.2.2.7 - Effects of Temperature
4.2.2.8 - Modifying and Adapting to the Acoustical Space
4.2.3 - Acoustical Considerations for the Recording Studio
4.3 - Science, Mathematics, and Algorithms
4.3.1 - Deriving Power and Voltage Changes in Decibels
4.3.2 - Working with Critical Bands
4.3.3 - A MATLAB Program for Equal Loudness Contours
4.3.4 - The Mathematics of the Inverse Square Law and PAG Equations
4.3.5 - The Mathematics of Delays, Comb Filtering, and Room Modes
MATLAB Exercises:
C++ Programming Exercises:
Practical Exercises:
4.4 - References
Chapter 5: Digitization

Collapse All | Expand All

5.1 - Concepts
5.1.1 - Analog Vs. Digital
5.1.2 - Digitization
5.1.2.1 - Two Steps: Sampling and Quantization
5.1.2.2 - Sampling and Aliasing
Flash Tutorials:
5.1.2.3 - Bit Depth and Quantization Error
Flash Tutorials:
5.1.2.4 - Dynamic Range
Flash Tutorials:
MAX Demos:
5.1.2.5 - Audio Dithering and Noise Shaping
5.1.3 - Audio Data Streams and Transmission Protocols
5.1.4 - Signal Path in an Audio Recording System
Flash Tutorials:
5.1.5 - CPU and Hard Drive Considerations
5.1.6 - Digital Audio File Types
Practical Exercises:
5.2 - Applications
5.2.1 - Choosing an Appropriate Sampling Rate
5.2.2 - Input Levels, Output Levels, and Dynamic Range
Practical Exercises:
5.2.3 - Latency and Buffers
Flash Tutorials:
5.2.4 - Word Clock
Flash Tutorials:
5.3 - Science, Mathematics, and Algorithms
5.3.1 - Reading and Writing Audio Files in MATLAB
5.3.2 - Raw Audio Data in C++
5.3.3 - Reading and Writing Formatted Audio Files in C++
5.3.4 - Mathematics and Algorithms for Aliasing
Flash Tutorials:
5.3.5 - Simulating Sampling and Quantization in MATLAB
MATLAB Exercises:
5.3.6 - Simulating Sampling and Quantization in C++
C++ Programming Exercises:
5.3.7 - The Mathematics of Dithering and Noise Shaping
MATLAB Exercises:
C++ Programming Exercises:
5.3.8 - Algorithms for Audio Companding and Compression
5.3.8.1 - Mu-law Encoding
MATLAB Exercises:
C++ Programming Exercises:
5.3.8.2 - Psychoacoustics and Perceptual Encoding
5.3.8.3 - MP3 and AAC Compression
5.3.8.4 - Lossless Audio Compression
5.4 - References
Chapter 6: MIDI and Sound Synthesis

Collapse All | Expand All

6.1 - Concepts
6.1.1 - The Beginnings of Sound Synthesis
6.1.2 - MIDI Components
6.1.3 - MIDI Compared to Digital Audio
6.1.4 - MIDI Channels, Tracks, and Patches in MIDI Sequencers
6.1.5 - A Closer Look at MIDI Messages
6.1.5.1 - Binary, Decimal, and Hexademical Numbers
6.1.5.2 - MIDI Message Types and Formats
Flash Tutorials:
MAX Demos:
6.1.6 - Synthesizers vs. Samplers
Practical Exercises:
6.1.7 - Synthesis Methods
6.1.8 - Synthesizer Components
6.1.8.1 - Presets
6.1.8.2 - Sound Generator
6.1.8.3 - Filters
6.1.8.4 - Signal Amplifier
6.1.8.5 - Modulation
6.1.8.6 - LFO
6.1.8.7 - Envelopes
MAX Demos:
6.1.8.8 - MIDI Modulation
6.2 - Applications
6.2.1 - Linking Controllers, Sequencers, and Synthesizers
6.2.2 - Creating Your Own Synthesizer Sounds
MAX Demos:
Practical Exercises:
6.2.3 - Making and Loading Your Own Samples
Practical Exercises:
Video Tutorials:
6.2.4 - Data Flow and Performance Issues in Audio/MIDI Recording
6.2.5 - Non-Musical Applications for MIDI
6.2.5.1 - MIDI Show Control
6.2.5.2 - MIDI Relays and Footswitches
6.2.5.3 - MIDI Time Code
MAX Demos:
6.2.5.4 - MIDI Machine Control
6.3 - Science, Mathematics, and Algorithms
6.3.1 - MIDI SMF Files
6.3.2 - Shaping Synthesizer Parameters with Envelopes and LFOs
6.3.3 - Types of Synthesis
6.3.3.1 - Table-Lookup Oscillators and Wavetable Synthesis
6.3.3.2 - Additive Synthesis
6.3.3.3 - Subtractive Synthesis
6.3.3.4 - Amplitude Modulation (AM)
6.3.3.5 - Ring Modulation
6.3.3.6 - Phase Modulation (PM)
6.3.3.7 - Frequency Modulation (FM)
6.3.4 - Creating A Block Synthesizer in Max
MAX Demos:
6.4 - References
Chapter 7: Audio Processing

Collapse All | Expand All

7.1 - Concepts
7.1.1 - Amplitude Adjustments and Mixing
7.1.2 - Equalization
7.1.3 - Graphic EQ [4] number = 7.1.4 title = Parametric EQ
7.1.5 - Reverb
7.1.6 - Flange
7.1.7 - Vocoders
7.1.8 - Autotuners
7.1.9 - Dynamics Processing
7.1.9.1 - Dynamics Compression and Expansion
MAX Demos:
7.1.9.2 - Limiting and Gating
7.2 - Applications
7.2.1 - Mixing
Practical Exercises:
7.2.1.1 - Mixing Contexts and Devices
7.2.1.2 - Inputs and Outputs
7.2.1.3 - Channel Strips
7.2.1.4 - Input Connectors
7.2.1.5 - Gain Section
7.2.1.6 - Insert
7.2.1.7 - Equalizer Section
7.2.1.8 - Auxiliaries
7.2.1.9 - Fader and Routing Section
7.2.2 - Applying EQ
MAX Demos:
7.2.3 - Applying Reverb
7.2.4 - Applying Dynamics Processing
7.2.5 - Applying Special Effects
7.2.6 - Creating Stereo
7.2.7 - Capturing the Four-Dimensional Sound Field
Flash Tutorials:
7.3 - Science, Mathematics, and Algorithms
7.3.1 - Convolution and Time Domain Filtering
7.3.2 - Low-Pass, High-Pass, Bandpass, and Bandstop Filters
7.3.3 - The Convolution Theorem
7.3.4 - Using Windows When Applying the DFT
7.3.5 - Diagramming Filters and Delays
7.3.6 - FIR and IIR Filters in MATLAB
7.3.7 - The Digital Signal Processing Toolkit in MATLAB
7.3.8 - Creating Your Own Convolution Reverb
7.3.9 - Experiments with Filtering: Vocoders and Pitch Glides
MATLAB Exercises:
C++ Programming Exercises:
7.3.10 - Filtering and Special Effects in C++
7.3.10.1 - Real-Time vs. Off-Line Processing
7.3.10.2 - Dynamics Processing in C++
7.3.11 - Flange
7.4 - References
Chapter 8: Getting to Work

Collapse All | Expand All

8.1 - Sound for all Occasions
8.2 - Workflow in Studio Music Production
8.2.1 - Pre-Production
8.2.2 - Production
8.2.3 - Post-Production
8.3 - Workflow in Sound for Film or Video
8.3.1 - Pre-production
8.3.2 - Production
8.3.3 - Post-production
8.4 - Workflow in Sound for Theatre or Live Music Performance
8.4.1 - Pre-Production
8.4.1.1 - Designing the Sound
8.4.1.2 - Designing the Sound Delivery System
8.4.1.3 - Checking Frequencies
8.4.1.4 - System Documentation
8.4.1.5 - System Optimization
8.4.2 - Production
8.4.3 - Post-Production
8.4.3.1 - Multi-Channel Playback
8.4.3.2 - Playback and Control
8.5 - References
WORKSHOPS
Find out more about our past and upcoming workshops, and how you can participate in the future.
CURRICULUM
Read chapters, check out interactive tutorials and other material from the forthcoming book "Digital Sound & Music."
PILOT TESTING
Find out more about getting your school or university involved, and becoming an official pilot tester for our curriculum material.

Recent Updates

Jul 24, 2009
New abstracts up for upcoming summer workshop talks at workshops page
Jul 20, 2009
New worksheets and MAX demos now available on tutorials page

New Chapter 2 pdf available