Getting rid of echo for callers.

Dale Maggee antisol at internode.on.net
Fri Aug 29 07:13:41 CEST 2008


Daniel Selinger wrote:
> I've experimented with alsa settings for the last 3 hours and want to
> share my experience now.
> I was doing this on top of QTopia 4.3.2 and it's default
> gsmhandset.state file.
>
> The relevant mixer settings i found to, in my case completely eliminate
> the echo for the caller, are the following 
> (Setting -> Old Val -> New Val):
>  
> 'Speaker Playback Volume' 127 -> 100
> 'Mono Playback Volume' 103 -> 85
> 'Mono Sidetone Playback Volume' 2 -> 0
> 'Bypass Playback Volume' 7 -> 5
> 'Mic2 Capture Volume' 0 -> 3
>
> This settings removes the echo for the other person completely, at
> least for my hardware. I didn't hear any buzz either on my final
> testcalls, could be luck.
>
> The last thing remaining, is a bit of selfecho, which was also
> reduced with this settings but not away. (was as loud as the echo on the
> other phone with qtopia default gsmhandset.state). But didn't get away
> completely, but the other side doesn't hear anything of it.
>
> I also attach my gsmhandset.state for the case other distros have a
> different default file. (I was to lazy to check against .state of every
> distribution)
>
> If anyone has a configuration where he doesn't hear echo of himself
> talking at all, please please please provide me with an .state file, to
> check which controls are responsible for that!
>
> rgds Daniel
> ------------------------------------------------------------------------
>
>   
These settings also removed my echo using 2007.2.

woot!

Note that using the settings you provided the other (non-neo) person was 
very quiet, I had to adjust one of the volume settings to be able to 
hear the other person (unfortunately I can't remember exactly which 
setting I changed, although I'm pretty sure it was the one labelled 
"mono bypass" in alsamixer. (set it at 100). Called my brother who had 
previously complained loudly and constantly about echo, and now he says 
there's no echo.

I have never had problems of hearing an echo of myself, only complaints 
from everybody I talk to...

this is awesome, thanks alot! :)

-Dale

my gsmhandset.state:

state.neo1973gta02 {
    control.1 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 255'
        iface MIXER
        name 'PCM Volume'
        value.0 0
        value.1 0
    }
    control.2 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 255'
        iface MIXER
        name 'ADC Capture Volume'
        value.0 0
        value.1 0
    }
    control.3 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 127'
        iface MIXER
        name 'Headphone Playback Volume'
        value.0 0
        value.1 0
    }
    control.4 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 127'
        iface MIXER
        name 'Speaker Playback Volume'
        value.0 127
        value.1 127
    }
    control.5 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 127'
        iface MIXER
        name 'Mono Playback Volume'
        value 85
    }
    control.6 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 7'
        iface MIXER
        name 'Bypass Playback Volume'
        value.0 5
        value.1 5
    }
    control.7 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 7'
        iface MIXER
        name 'Sidetone Playback Volume'
        value.0 0
        value.1 0
    }
    control.8 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 7'
        iface MIXER
        name 'Voice Playback Volume'
        value.0 0
        value.1 0
    }
    control.9 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Headphone Playback ZC Switch'
        value.0 false
        value.1 false
    }
    control.10 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Speaker Playback ZC Switch'
        value.0 false
        value.1 false
    }
    control.11 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 7'
        iface MIXER
        name 'Mono Bypass Playback Volume'
        value 7
    }
    control.12 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 7'
        iface MIXER
        name 'Mono Sidetone Playback Volume'
        value 0
    }
    control.13 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 7'
        iface MIXER
        name 'Mono Voice Playback Volume'
        value 0
    }
    control.14 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mono Playback ZC Switch'
        value false
    }
    control.15 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Linear Control'
        comment.item.1 'Adaptive Boost'
        iface MIXER
        name 'Bass Boost'
        value 'Linear Control'
    }
    control.16 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 '130Hz @ 48kHz'
        comment.item.1 '200Hz @ 48kHz'
        comment.item.2 '100Hz @ 16kHz'
        comment.item.3 '400Hz @ 48kHz'
        comment.item.4 '100Hz @ 8kHz'
        comment.item.5 '200Hz @ 8kHz'
        iface MIXER
        name 'Bass Filter'
        value '130Hz @ 48kHz'
    }
    control.17 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name 'Bass Volume'
        value 0
    }
    control.18 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name 'Treble Volume'
        value 0
    }
    control.19 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 '8kHz'
        comment.item.1 '4kHz'
        iface MIXER
        name 'Treble Cut-off'
        value '8kHz'
    }
    control.20 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 7'
        iface MIXER
        name 'Sidetone Capture Volume'
        value.0 0
        value.1 0
    }
    control.21 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 7'
        iface MIXER
        name 'Voice Sidetone Capture Volume'
        value 2
    }
    control.22 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 63'
        iface MIXER
        name 'Capture Volume'
        value.0 0
        value.1 0
    }
    control.23 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Capture ZC Switch'
        value.0 false
        value.1 false
    }
    control.24 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Capture Switch'
        value.0 true
        value.1 true
    }
    control.25 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 '3.4Hz @ 48kHz'
        comment.item.1 '82Hz @ 16k'
        comment.item.2 '82Hz @ 8kHz'
        comment.item.3 '170Hz @ 8kHz'
        iface MIXER
        name 'Capture Filter Select'
        value '3.4Hz @ 48kHz'
    }
    control.26 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 HiFi
        comment.item.1 Voice
        iface MIXER
        name 'Capture Filter Cut-off'
        value HiFi
    }
    control.27 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Capture Filter Switch'
        value false
    }
    control.28 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 7'
        iface MIXER
        name 'ALC Capture Target Volume'
        value 0
    }
    control.29 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 7'
        iface MIXER
        name 'ALC Capture Max Volume'
        value 0
    }
    control.30 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Off
        comment.item.1 Right
        comment.item.2 Left
        comment.item.3 Stereo
        iface MIXER
        name 'ALC Capture Function'
        value Off
    }
    control.31 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'ALC Capture ZC Switch'
        value false
    }
    control.32 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name 'ALC Capture Hold Time'
        value 0
    }
    control.33 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name 'ALC Capture Decay Time'
        value 0
    }
    control.34 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name 'ALC Capture Attack Time'
        value 0
    }
    control.35 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        iface MIXER
        name 'ALC Capture NG Threshold'
        value 0
    }
    control.36 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Constant PGA Gain'
        comment.item.1 'Mute ADC Output'
        iface MIXER
        name 'ALC Capture NG Type'
        value 'Mute ADC Output'
    }
    control.37 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'ALC Capture NG Switch'
        value false
    }
    control.38 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Capture
        comment.item.1 Playback
        iface MIXER
        name '3D Function'
        value Capture
    }
    control.39 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 '2.2kHz'
        comment.item.1 '1.5kHz'
        iface MIXER
        name '3D Upper Cut-off'
        value '2.2kHz'
    }
    control.40 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 '200Hz'
        comment.item.1 '500Hz'
        iface MIXER
        name '3D Lower Cut-off'
        value '200Hz'
    }
    control.41 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 15'
        iface MIXER
        name '3D Volume'
        value 0
    }
    control.42 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name '3D Switch'
        value false
    }
    control.43 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Capture 6dB Attenuate'
        value false
    }
    control.44 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Playback 6dB Attenuate'
        value false
    }
    control.45 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 None
        comment.item.1 '32kHz'
        comment.item.2 '44.1kHz'
        comment.item.3 '48kHz'
        iface MIXER
        name De-emphasis
        value None
    }
    control.46 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Stereo
        comment.item.1 Left
        comment.item.2 Right
        comment.item.3 Mono
        iface MIXER
        name 'Playback Mono Mix'
        value Stereo
    }
    control.47 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Non Inverted'
        comment.item.1 Inverted
        iface MIXER
        name 'Playback Phase'
        value 'Non Inverted'
    }
    control.48 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 3'
        iface MIXER
        name 'Mic2 Capture Volume'
        value 3
    }
    control.49 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 3'
        iface MIXER
        name 'Mic1 Capture Volume'
        value 0
    }
    control.50 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'DAI 0'
        comment.item.1 'DAI 1'
        comment.item.2 'DAI 2'
        comment.item.3 'DAI 3'
        iface MIXER
        name 'DAI Mode'
        value 'DAI 0'
    }
    control.51 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Stereo
        comment.item.1 'Left ADC'
        comment.item.2 'Right ADC'
        comment.item.3 'Channel Swap'
        iface MIXER
        name 'ADC Data Select'
        value Stereo
    }
    control.52 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Non Inverted'
        comment.item.1 Inverted
        iface MIXER
        name 'ROUT2 Phase'
        value Inverted
    }
    control.53 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Mic 1'
        comment.item.1 'Mic 2'
        comment.item.2 'Mic 3'
        iface MIXER
        name 'Mic Selection Mux'
        value 'Mic 1'
    }
    control.54 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'RXP - RXN'
        comment.item.1 'RXP + RXN'
        comment.item.2 RXP
        comment.item.3 RXN
        iface MIXER
        name 'Rx Mixer'
        value 'RXP - RXN'
    }
    control.55 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Line 1 + 2'
        comment.item.1 'Line 1 - 2'
        comment.item.2 'Line 1'
        comment.item.3 'Line 2'
        iface MIXER
        name 'Line Mixer'
        value 'Line 1 + 2'
    }
    control.56 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Line Mix'
        comment.item.1 'Rx Mix'
        iface MIXER
        name 'Line Mono Mux'
        value 'Line Mix'
    }
    control.57 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Line 2'
        comment.item.1 'Rx Mix'
        iface MIXER
        name 'Line Right Mux'
        value 'Rx Mix'
    }
    control.58 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Line 1'
        comment.item.1 'Rx Mix'
        iface MIXER
        name 'Line Left Mux'
        value 'Rx Mix'
    }
    control.59 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'ALC Mixer Line Capture Switch'
        value false
    }
    control.60 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'ALC Mixer Mic2 Capture Switch'
        value true
    }
    control.61 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'ALC Mixer Mic1 Capture Switch'
        value false
    }
    control.62 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'ALC Mixer Rx Capture Switch'
        value false
    }
    control.63 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Left PGA'
        comment.item.1 'Mic 1'
        comment.item.2 'Mic 2'
        comment.item.3 'Right PGA'
        iface MIXER
        name 'Mic Sidetone Mux'
        value 'Mic 2'
    }
    control.64 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 PGA
        comment.item.1 'Line or RXP-RXN'
        comment.item.2 Sidetone
        iface MIXER
        name 'Capture Right Mux'
        value PGA
    }
    control.65 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 PGA
        comment.item.1 'Line or RXP-RXN'
        comment.item.2 Line
        iface MIXER
        name 'Capture Left Mux'
        value PGA
    }
    control.66 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Stereo
        comment.item.1 'Analogue Mix Left'
        comment.item.2 'Analogue Mix Right'
        comment.item.3 'Digital Mono Mix'
        iface MIXER
        name 'Capture Right Mixer'
        value Stereo
    }
    control.67 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Stereo
        comment.item.1 'Analogue Mix Left'
        comment.item.2 'Analogue Mix Right'
        comment.item.3 'Digital Mono Mix'
        iface MIXER
        name 'Capture Left Mixer'
        value Stereo
    }
    control.68 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Playback Mixer Voice Capture Sw'
        value false
    }
    control.69 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Playback Mixer Left Capture Swi'
        value false
    }
    control.70 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Playback Mixer Right Capture Sw'
        value false
    }
    control.71 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 VREF
        comment.item.1 'Capture ST'
        comment.item.2 LOUT2
        iface MIXER
        name 'Out4 Mux'
        value VREF
    }
    control.72 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 VREF
        comment.item.1 ROUT2
        comment.item.2 'Left + Right'
        iface MIXER
        name 'Out3 Mux'
        value VREF
    }
    control.73 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 'Inverted Mono 1'
        comment.item.1 Left
        comment.item.2 Right
        comment.item.3 'Left + Right'
        iface MIXER
        name 'Mono 2 Mux'
        value 'Inverted Mono 1'
    }
    control.74 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mono Mixer Left Playback Switch'
        value false
    }
    control.75 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mono Mixer Right Playback Switc'
        value false
    }
    control.76 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mono Mixer Voice Playback Switc'
        value false
    }
    control.77 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mono Mixer Sidetone Playback Sw'
        value true
    }
    control.78 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Mono Mixer Bypass Playback Swit'
        value false
    }
    control.79 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Right Mixer Voice Playback Swit'
        value false
    }
    control.80 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Right Mixer Sidetone Playback S'
        value false
    }
    control.81 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Right Mixer Right Playback Swit'
        value false
    }
    control.82 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Right Mixer Bypass Playback Swi'
        value true
    }
    control.83 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Left Mixer Voice Playback Switc'
        value false
    }
    control.84 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Left Mixer Sidetone Playback Sw'
        value false
    }
    control.85 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Left Mixer Left Playback Switch'
        value false
    }
    control.86 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Left Mixer Bypass Playback Swit'
        value true
    }
    control.87 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'DAPM Stereo Out Switch'
        value false
    }
    control.88 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'DAPM GSM Line Out Switch'
        value true
    }
    control.89 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'DAPM GSM Line In Switch'
        value true
    }
    control.90 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'DAPM Headset Mic Switch'
        value true
    }
    control.91 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'DAPM Handset Mic Switch'
        value true
    }
    control.92 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'DAPM Handset Spk Switch'
        value true
    }
    control.93 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Amp State Switch'
        value false
    }
    control.94 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Amp Spk Switch'
        value false
    }
}





More information about the community mailing list