Preparing to Program in the Audio Industry
240 likes | 499 Vues
Preparing to Program in the Audio Industry. Beau Silver, MuE and CS Advisor: Colby Leider. How did programming become important in audio?. electrical engineers wax records, tape machines, analog signal processors computer programmers computed math and research.
Preparing to Program in the Audio Industry
E N D
Presentation Transcript
Preparing to Program in the Audio Industry Beau Silver, MuE and CS Advisor: Colby Leider
How did programming become important in audio? • electrical engineers • wax records, tape machines, • analog signal processors • computer programmers • computed math and research
2007 – everything audio is digital • software for recording and signal processing (Pro Tools) • hard drive for storing audio • software devices for reproduction (Ipod)
Matlab • high level programming language • easy audio manipulation • waveread(), wavewrite(), sin(), sound(), filter() • *Matlab Project • no understanding of low level
How does one prepare to program in the audio industry? • Learn format of digital audio files • Learn programming on a large scale • Learn Libraries to perform audio programming
How are audio files stored and manipulated? • continuous waveform -> discrete samples • Nyquist Sampling Theorem • run low pass filter • quantization • sample rate / bit depth
series of 44,100 samples per second with 16 bit depth precision, between -1 and 1 • *run print program
How does one prepare to program in the audio industry? • Learn format of digital audio files • Learn programming on a large scale • Learn Libraries to perform audio programming
How does one program on a large scale? • Dolby • Digidesign • Microsoft • C++ in development software (Visual C++)
Learning C++ and Visual C++ • Hello World • *“Hello World Program” • I/O • Header files • Using Classes • *“Sorting_Classes_Header” program • Using Non-standard Libraries • Overloading • *“FunctionOverloadingPractical Program” • Inheritance • *”Inheritance program”
namespace • Localizes visibilty of names of functions declared within it -> allows the same name in different contexts • class and object • A class is a set of plans that specify how to build an object • An object is an instance of a class • function overloading • Two or more functions can share the same name as long as their parameter declarations are different • Default arguments • Inheritance • Allows to define a general class that can be inherited by a more specific class • Allows for hierarchal classification
How does one prepare to program in the audio industry? • Learn format of digital audio files • Learn programming on a large scale • Learn Libraries to perform audio programming
What libraries are needed to perform audio programming? • Port Audio • http://www.portaudio.com/ • LibSndFile • http://www.mega-nerd.com/libsndfile/
Port Audio • create a sin wave • play it on sound card • allow for easy “sine” function • *Sine wave project
LibSndFile “Sound Pro” • open a sound file • perform simple dsp • write out to a file • Communication I/O -> command line (argv, argc) and scanf • *SoundPro Project
DSP • Gain Change • raise / lower volume of samples • Normalization • raise volume of sound to maximum without clipping • Moving Average Low Pass • remove high frequencies
The future Sound Pro • More processing options • Nice GUI • Available on all platforms
Conclusions: • Audio in 2007 • Programming! Programming! Programming! • How to prepare? • Digital audio • Programming on a large scale • Libaries
The End open for questions…