Skip to content

Lab 6: AC97-lite PCM Audio

Generated folder: labs/audio/

Lab 6 introduces audio as a stream of samples. Instead of drawing pixels into a framebuffer, you fill an audio buffer with PCM data and ask the runtime to play it.

The analogy with graphics is useful. A framebuffer is memory that eventually becomes an image. An audio buffer is memory that eventually becomes pressure changes in the air. In both cases, the device consumes bytes according to a format, and your program is responsible for producing those bytes consistently.

ConceptMeaning
PCM samplenumeric amplitude at one point in time
sample ratesamples per second
channel countmono or stereo layout
buffermapped memory for samples
byte countamount the device should consume

Start by learning PCM audio, then complete the implementation tasks, run the checks, and compare the lab model with modern audio stacks.

TIP

Audio bugs are often unit bugs: samples, frames, channels, and bytes are not interchangeable.

Course/docs licensed CC BY 4.0. Code licensed MIT.