Gunnar Bjørgum

Gunnar Bjørgum GunnarB

Niner since 2009


  • Elliot H Omiya, Larry Osterman and Frank Yerrace: Inside Windows 7 - Audio Stack

    Hi, nice presentation.

    Just one suggestion: Not to be rude, but just trying to be helpful:

    I would suggest that you included a professional audio engineer, that has theoretical background in both digital signal processing (DSP), and live experience in using professional audio mixers in your team.  Or try to hire somebody to give you a crash course in the mentioned fields. I think that will give you a lot of ideas about how to improve the system.


    Ever wondered why the professional audio software makers (cubase, pro tools++) wants that very low level access to the audio hardware? Because their needs are not adressed by your architecture.


    The audio system of a PC is really a software version of an digital audio mixing console, and I think you could get many ideas by studying the real thing. You could also learn the real difference between a microphone input and the line input, and what the Nyquist theorem really says (your illustrations on the whiteboard showed the Nyquist frequency as 4x the highest source frequency, not 2x). HD audio (that you correctly described as marketing speak) has usually also more bits per sample, not only higher sampling frequency.


    Some concrete suggestions:

    I would like to have an equalizer (EQ) on every stream. Today applications like winamp or iTunes has to implement this in the application, but I would like to have this in the audio system of the OS. For instance: the internal speakers of a laptop maybe needs a cut in the bass, because they are not able to reproduce it anyway, and it only makes them clip. The headphones may need a bit boosted treble, and the USB soundcard connected to the home stereo should have a flat EQ. Maybe this could be generalized to plug-in points in the streams, where you could insert other effects from third-parties, like reverb, compressors and so on.


    Maybe you could have an option in the mixer to show basic/advanced settings (where the EQ, and plug-in stuff is hidden in the basic mode)?


    One other thing: You drew a sketch of where the streams were routed from applications to physical devices. Very nice. Why not make this a graphical thing in the audio system as well, where you could see where the streams are routed, and maybe dragging them to new destinations?


    One other thing: I would like an option to flip right/left channels of a device in software! Many desktop speakers have one volume knob in one of the speakers, and it would be nice to be able to choose what side the volume knob should be on. If I moved the speaker with the knob to the "wrong" side, I could just flip the channels in software to correct it!