; CWCMMPM.INI 
; Crystal Semiconductor - PCI audio driver configuration file.

[\Config\Mixer]
; For details on mixer hardware architecture, consult Cirrus Logic 
; databook for the CS4297 SoundFusion(tm) Audio Codec '97.
; This document is available in Adobe Acrobat format:
; http://www.cirrus.com/ftp/pubs/4297.pdf

; OS/2 (MMPM/2) supports recording from two sources:
;    1) "Microphone"
;    2) "Line"
;
; Settings below map the logical concept of "Microphone" and "Line" to 
; the particular physical connection on the audio chip.

MicSelect=1             ; 1=Microphone #1 (Default)
                        ; 2=Microphone #2

LineMap=1               ; 1=CD (default)
                        ; 2=Video
                        ; 3=Aux
                        ; 4=Line
                        ; 5=Reserved
                        ; 6=Reserved
                        ; 7=Phone

; Output mutes:
; These values can be set to force a given output path
; to be muted, always.
; Note: AltOut is normally connected to headphone jack.

AltOutMute=0            ; 0=Audible(Default), 1=Mute
MonoOutMute=0           ; 0=Audible(Default), 1=Mute


; Set default volumes for 3 mixer "master" volumes.
; These settings are usually overridden by MMPM/2 master volume application.
MasterVolume  = 50     ; Master volume default    (0..100, default 50)
AltVolume     = 50     ; Headphone volume default
MonoOutVolume = 50     ; Mono out volume default

; Set default volume for various mixer inputs.
; These settings effect what you "hear", not what you record.
;
; For example, adjusting "CDVolume" will change the listening volume 
; of the CD-ROM playback signal.  
; It will not effect the loudness of the signal recorded when an 
; application records from CD.  
; To effect recording level, use "ADCGain" and "ADCGainSkew"

MonoInVolume  = 50      ; Range 0..100
PhoneVolume   = 50
MicVolume     = 0       ; Default mic muted.  Change to 50 to enable karoke.
                        ; Note: This setting does not effect Mic record.
                        ; Setting this value too high will produce a
                        ; feedback loop.
LineVolume    = 75      ; Range 0..100
CDVolume      = 75
VideoVolume   = 50
AuxVolume     = 50

; Default record settings.
; These settings are normally overwritten by MMPM/2 APIs.
ADCGain       = 50      ; Default record gain
MuxSelect     = 1       ; Default record source (Use values from LineMap)
MicBoost      = 0       ; Default setting for +20dB microphone boost

; Microphone volume during monitor is managed separately from non-monitor.
; The microphone input is normally muted, but needs to be un-muted
; during monitor.  For this reason, there are separate entries for 
; microphone volume during idle time ("karoke", normally muted) and 
; microphone volume at record preparation time ("monitor", normally audible).
; 
; This loudness of the the microphone during "monitor" does not effect 
; the loudness of recorded signal.  It effects only the loudness of "monitor".
; To effect recorded microphone signal level, use "gain" setting from
; application.  After exhausing application options (including gain and boost), 
; the ADCGainSkew setting in this file can be used to effect a global change 
; to recored volume.

MicVolumeMon  = 50      ; Mic volume during monitor.  Range 0..100, default 50.


;----------------------------------------------------------------------
; LOGICAL to PHYSICAL VOLUME TABLES
; 
; Master volume tables (64 entries in each table).
;
; Each entry is a BYTE:
;    D7  D6  D5  D4  D3  D2  D1  D0
;     0   0 MR5 MR4 MR3 MR2 MR1 MR0
;   
; MR5..MR0 range 0..63 (decimal) which corresponds to 
; audio range of 0dB thru -94.5dB in -1.5dB steps.
;    0x3F => Most quiet (-94.5dB)
;    0x00 => Most loud  (0dB)
;
; Note: While titled as volume tables, the tables are more accurately
; described as attenuation tables as signals can only be made quieter.

MasterVolumeTable    =63,58,54,51,48,45,42,39,36,34,32,30,28,26,24,22,20,19,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2,1,1,1,0,0,0
HeadphoneVolumeTable =63,58,54,51,48,45,42,39,36,34,32,30,28,26,24,22,20,19,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2,1,1,1,0,0,0
MonoOutVolumeTable   =63,58,54,51,48,45,42,39,36,34,32,30,28,26,24,22,20,19,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2,1,1,1,0,0,0

;----------------------------------------------------------------------
; Analog input tables (32 entries in each table).
;
; Each entry is a BYTE:
;    D7  D6  D5  D4  D3  D2  D1  D0
;     0   0   0 GN4 GN3 GN2 GN1 GN0
;   
; GN4..GN0 range 0..31 (decimal) which corresponds to 
; audio range of +12dB thru -34.5dB in -1.5dB steps.
;    0x1F => Most quiet (-34.5dB)
;    0x08 => 0dB
;    0x00 => Most loud  (+12dB)
;
; These registers can be used to provide both attenuation and gain 
; depending on the values selected.
;
; Note: The least significant bit of the mono-input table is undefined
; in the hardware and is masked off in the device driver.

MonoInVolumeTable =31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8
PhoneVolumeTable  =31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8
MicVolumeTable    =31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8
LineVolumeTable   =31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8
CDVolumeTable     =31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8
VideoVolumeTable  =31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8
AuxVolumeTable    =31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8

; NOTE: PCMVolume input to AC97 mixer is fixed at 0dB (output=input).
; To adjust wave audio volume relative to other signals, see WaveSkewPercent.

;----------------------------------------------------------------------
; Record gain table (16 entries)
; Each entry is a BYTE:
;    D7  D6  D5  D4  D3  D2  D1  D0
;     0   0   0   0 GN3 GN2 GN1 GN0
;   
; GN3..GN0 range 0..15 (decimal) which corresponds to 
; audio range of 0dB thru +22.5dB in +1.5dB steps.
;    0x00 => Most quiet  (0dB)
;    0x0F => Most loud   (+22.5dB)

RecordGainTable   =0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 


;----------------------------------------------------------------------
; Skew variables
; 
; As an alternative to adjusting all of the entries in the 
; logical to physical volume tables, a table wide adjustment can be 
; made via the following "Skew" variables.
; 
; The device driver implements volume control by:
; 1) Receive volume or gain setting from operating system, convert to percent.
; 2) Convert percent value to equivalent index into logical to physical table.
; 3) Read value from table
; 4) Add Skew value (given here)
; 5) Bounds check
; 4) Write number to AC97 mixer 
;
;
; Example use (Recording from CD and recorded signal is too quiet).
;
; To make the CD recording louder (to make any recording louder), set
; the ADCGainSkew variable to a positive value (integer variable).  
; To make the CD recording quieter, set the ADCGainSkew variable to a 
; negative number.
; 
; The Skew variables have an effect on the hardware that is specific
; to the register being controlled.
; See logical to physical volume tables (in this file) for definition
; of the hardware settings for each mixer component.
;
; MOST of the analog input registers have the same definition.
; For example, setting ADCGainSkew to "1" will effect a +1.5 dB change 
; on the signal sent to the Analog to Digital converter (record signal).
; Skew values can be positive or negative, making the signal louder or quieter.
;
; The "Skew" variables should only be changed to non-zero values when
; all other options have been exhausted.  That is, the application gain
; and volume settings should be set, checked and checked again, before 
; making a change here in this file.  
; The Skew settings in this file are global to all applications.

MasterVolSkew   = 0     ; Master volume adjustment (default: 0, no adjustment)
AltVolSkew      = 0     ; Headphone volume adjustment
MonoOutSkew     = 0     ; Mono out adjustment

MonoInSkew      = 0
PhoneSkew       = 0
MicSkew         = 0
LineSkew        = 0
CDSkew          = 0     ; NOTE: CD listening level should be set with "CDVolume"
VideoSkew       = 0
AuxSkew         = 0
ADCGainSkew     = 2     ; Adjustment to RECORD signal level

; Wave playback volume is controlled inside the DSP (not at the AC97 mixer).
; Adjust wave volume (as a skew), by providing a range 0..200% multiplier
; for the wave audio playback volume.

WaveSkewPercent = 66    ; 100 means no adjustment.  66 means 34% quieter.
