<< Chapter < Page | Chapter >> Page > |
LabVIEW offers a variety of ways to read and write audio files in WAV format. After completing this module you will be able to use the Simple Read and Simple Write subVIs located in the “Programming | Graphics&Sound | Sound | Files” palette to retrieve an audio signal as a 1-D array from a .wav file, and also to save a 1-D array that represents an audio signal to a .wav file. Additional points covered include scaling your audio signal to have a maximum absolute value of one before saving as an audio file, and how to create a two-channel (stereo) audio file.
The Sound File Simple Read subVI accepts a filename for an audio file in .wav format and returns a waveform data type. You can read mono or stereo files, and also determine information such as the audio signal’s sampling frequency and its total number of samples.
The following video screencast shows how to use Simple Read to retrieve the audio signal as an array data type that can be used as a signal input for your own VIs. You may want to start LabVIEW now, then follow along to create your own version of the VI pictured below. If so, you will need the two audio files referenced in the screencast: tone-noise.wav and left-right.wav .
The Sound File Simple Write subVI accepts a signal in waveform data type and a filename and stores the signal as a .wav file. You can set the number of bits per sample (16 is recommended for best fidelity). You must ensure that your signal values lie in the range -1 to +1, otherwise other applications may not be able to read your .wav file properly.
The next video screencast shows how to use Simple Write to save an existing 1-D array that represents an audio signal to a .wav file. The screencast also covers some not-so-obvious data-type transformations required to successfully create your .wav file. You may want to start LabVIEW now, then follow along to create your own version of the VI pictured below. If so, you will need the audio file referenced in the screencast: tone-noise.wav .
As mentioned earlier, you must ensure that all of the samples in your signal lie in the range -1 to +1. It is easy to create signals that exceed this range, especially when you add multiple signals together.
The next screencast illustrates how Quick Scale is an easy way to scale your 1-D array such that the maximum absolute value is always one; Quick Scale is located in the “Signal Processing | Sig Operation” palette, and should be used as the last step before converting to the waveform data type.
Creating a stereo .wav file requires that you assemble an array of waveforms, one for the left channel and the other for the right channel. Watch the next screencast video to learn how.
Notification Switch
Would you like to follow the 'Musical signal processing with labview -- programming techniques for audio signal processing' conversation and receive update notifications?