MIDI Controlled Sample-Based Synthesizer

Amir Hirsch and Andrew Leiserson


Overview  |  Communication  |  Master Control Unit  |  Sound Generation Unit  |  Mixer

The mixer is a relatively simple mixer. It takes 16-bit audio from the AC97, RAM playback, and pre-decoded audio from the SGU audio bus. Using one multiplier, it sequentially multiplies each channel by a level and accumulates the total. Each channel is allowed the full range, so overflow is possible if all channels are played loudly. However, the mixer clips intelligently to the maximum instead of overflowing into the negative range. This reduces the effects of an overflow, but hard clipping will still sound very bad and should be avoided. 16-bit audio is output to be passed to back to the AC97.

The mixer levels are controlled via 7-bit volume controls. These controls are mapped to MIDI controller messages or can be controlled by the keyboard.