Difference between revisions of "CSC231 Lab 6 2010"
(Created page with '--~~~~ ---- __TOC__ <br /> <tanbox> This lab covers sound files in the WAV format, and performing various operations on a sound file using array operations. </tanbox> =The Forma…') |
(→Assemble) |
||
Line 47: | Line 47: | ||
nasm -f elf readWavFileSkel.asm | nasm -f elf readWavFileSkel.asm | ||
− | ld -o | + | ld -o readWavFileSkel readWavFileSkel.o |
rm goodbye2.wav | rm goodbye2.wav | ||
./readWavFileSkel | ./readWavFileSkel |
Revision as of 08:52, 25 October 2010
--D. Thiebaut 13:51, 25 October 2010 (UTC)
Contents
This lab covers sound files in the WAV format, and performing various operations on a sound file using array operations.
The Format of Sound Files
- The document https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ covers the WAV format pretty well, and can be a source of additional information
Part 1
Get the code
- Get a copy of the required files
- or simply get them with getcopy
getcopy readWaveFileSkel.asm getcopy wav.inc
Get sound files
- Get the sample wav files hello.wav and goodbye.wav as well:
getcopy hello.wav getcopy goodbye.wav
- (there's more at http://buggerluggs.tripod.com/ie/wav-dir184.htm )
Play the sound
- Play the files with aplay to make sure you can hear them:
aplay goodbye.wav Playing WAVE 'goodbye.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
- Important: make a note of the size of the samples, in this case 8 bits, unsigned.
Assemble
- Do not modify readWavFileSkel.asm yet. On its own it will create a new copy of the goodbye.wav under the name goodbye2.wav.
- Assemble and link the file
nasm -f elf readWavFileSkel.asm ld -o readWavFileSkel readWavFileSkel.o rm goodbye2.wav ./readWavFileSkel
- Check that you now have a new file in your directory called goodbye2.wav
- Play it.
aplay goodbye2.wav
- (Note: on a mac, you can use afplay from the command line instead of aplay.)
- You should hear the same thing as you did when listening to the goodbye.wav file.
Part 2
Test #1
- Make a copy of readWavFileSkel.asm and call it readWavFile1.asm
- Modify it and modify it so that you multiply the intensity of the sound by 2.
- Listen to the result. Can you still understand the message?
- Copy goodbye2.wav into goodbye.wav and repeat the process. Still understandable?
Test #2
- Same thing, but this time you will divide the intensity by 2. A good way to divide by two is to shift the binary pattern to the right. When you