AudioMixer.Helper Class
I got pieces of this off of the internet. It seems to have originated as a KB article in VB that was converted to C#. Most of the struct layouts are not 100% correct, but since it works for me, I'm not going to fool with it. I've added some bits for selecting audio devices and for muting the audio.

Access: Public
Base Classes: MarshalByRefObject
  Members Description  
    currentMixer    
    isMuted    
    MMSYSERR_NOERROR    
    MAXPNAMELEN    
    MIXER_LONG_NAME_CHARS    
    MIXER_SHORT_NAME_CHARS    
    MIXER_GETLINEINFOF_COMPONENTTYPE    
    MIXER_GETCONTROLDETAILSF_VALUE    
    MIXER_GETLINECONTROLSF_ONEBYTYPE    
    MIXER_SETCONTROLDETAILSF_VALUE    
    MIXERLINE_COMPONENTTYPE_DST_FIRST    
    MIXERLINE_COMPONENTTYPE_SRC_FIRST    
    MIXERLINE_COMPONENTTYPE_DST_SPEAKERS    
    MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE    
    MIXERLINE_COMPONENTTYPE_SRC_LINE    
    MIXERCONTROL_CT_CLASS_FADER    
    MIXERCONTROL_CT_UNITS_UNSIGNED    
    MIXERCONTROL_CONTROLTYPE_FADER    
    MIXERCONTROL_CONTROLTYPE_VOLUME    
    MIXERCONTROL_CT_UNITS_BOOLEAN    
    MIXERCONTROL_CT_CLASS_SWITCH    
    MIXERCONTROL_CONTROLTYPE_BASS    
    MIXERCONTROL_CONTROLTYPE_TREBLE    
    MIXERCONTROL_CONTROLTYPE_EQUALIZER    
    MIXERCONTROL_CONTROLTYPE_BOOLEAN    
    MIXERCONTROL_CONTROLTYPE_MUTE    
    mixerClose    
    mixerGetControlDetailsA    
    mixerGetDevCapsA    
    mixerGetID    
    mixerGetLineControlsA    
    mixerGetLineInfoA    
    mixerGetNumDevs    
    mixerMessage    
    mixerOpen    
    mixerSetControlDetails    
    MIXERCAPS    
    MIXERCONTROL    
    MIXERCONTROLDETAILS    
    MIXERCONTROLDETAILS_UNSIGNED    
    MIXERLINE    
    MIXERLINECONTROLS    
    GetVolumeControl    
    SetVolumeControl    
    SetMute    
    GetVolume    
    SetVolume    
    GetDeviceMixerCapabilities    
    GetAllDeviceMixerCapabilities    
    SetCurrentMixer    
    SetCurrentMixer