So, I have flashed the beagleboard image again, added these lines to /boot/uEnv.txt
by uncommenting/modifying the existing ones
/lib/firmware/BB-BONE-AUDI-02-00A0.dtbo
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
Then I boot the board, connect an audio source to the input and connect my headphones. I set the audio I/O to loopback by running alsaloop
.
Then, while in a terminal I had alsaloop
running, and I had an audio source plugged into the device, I started messing around with the parameters in alsamixer
. It turns out that the main input path was disabled. This consists of the Left PGA Mixer Mic2L
and Right PGA Mixer Mic2R
controls (which are confusingly located under Playback
instead of Capture
.
There are probably a few more things that could be optimised to improve the SNR, but this should be enough to get you started. As for the high-pass DC-removal, again the driver developers seem to have decided not to allow you to use very low cutoffs, so you may have to apply a software low-pass with sox
or similar as you are already doing.
If you paste the following settings in a file ~/alsa-settings
and run alsactl restore -f ~/alsa-settings
, this should set your settings the same as mine and you should get decent sound for the input.
state.B {
control.1 {
iface MIXER
name 'PCM Playback Volume'
value.0 127
value.1 127
comment {
access 'read write'
type INTEGER
count 2
range '0 - 127'
dbmin -6350
dbmax 0
dbvalue.0 0
dbvalue.1 0
}
}
control.2 {
iface MIXER
name 'Left Line Mixer PGAR Bypass Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
}
}
control.3 {
iface MIXER
name 'Left Line Mixer DACR1 Playback Volume'
value 118
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
}
}
control.4 {
iface MIXER
name 'Right Line Mixer PGAL Bypass Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
}
}
control.5 {
iface MIXER
name 'Right Line Mixer DACL1 Playback Volume'
value 118
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
}
}
control.6 {
iface MIXER
name 'Left HP Mixer PGAR Bypass Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
}
}
control.7 {
iface MIXER
name 'Left HP Mixer DACR1 Playback Volume'
value 118
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
}
}
control.8 {
iface MIXER
name 'Right HP Mixer PGAL Bypass Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
}
}
control.9 {
iface MIXER
name 'Right HP Mixer DACL1 Playback Volume'
value 118
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
}
}
control.10 {
iface MIXER
name 'Left HPCOM Mixer PGAR Bypass Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
}
}
control.11 {
iface MIXER
name 'Left HPCOM Mixer DACR1 Playback Volume'
value 118
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
}
}
control.12 {
iface MIXER
name 'Right HPCOM Mixer PGAL Bypass Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
}
}
control.13 {
iface MIXER
name 'Right HPCOM Mixer DACL1 Playback Volume'
value 118
comment {
access 'read write'
type INTEGER
count 1
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
}
}
control.14 {
iface MIXER
name 'Line PGA Bypass Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
dbvalue.1 -9999999
}
}
control.15 {
iface MIXER
name 'Line DAC Playback Volume'
value.0 118
value.1 118
comment {
access 'read write'
type INTEGER
count 2
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
dbvalue.1 0
}
}
control.16 {
iface MIXER
name 'HP PGA Bypass Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
dbvalue.1 -9999999
}
}
control.17 {
iface MIXER
name 'HP DAC Playback Volume'
value.0 118
value.1 118
comment {
access 'read write'
type INTEGER
count 2
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
dbvalue.1 0
}
}
control.18 {
iface MIXER
name 'HPCOM PGA Bypass Volume'
value.0 118
value.1 118
comment {
access 'read write'
type INTEGER
count 2
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
dbvalue.1 0
}
}
control.19 {
iface MIXER
name 'HPCOM DAC Playback Volume'
value.0 118
value.1 118
comment {
access 'read write'
type INTEGER
count 2
range '0 - 118'
dbmin -9999999
dbmax 0
dbvalue.0 0
dbvalue.1 0
}
}
control.20 {
iface MIXER
name 'Line Playback Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.21 {
iface MIXER
name 'HP Playback Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.22 {
iface MIXER
name 'HPCOM Playback Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.23 {
iface MIXER
name 'Left HP Power Down mode'
value 'High-impedance mode'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'Drive to a common-mode'
item.1 'High-impedance mode'
}
}
control.24 {
iface MIXER
name 'Right HP Power Down mode'
value 'High-impedance mode'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'Drive to a common-mode'
item.1 'High-impedance mode'
}
}
control.25 {
iface MIXER
name 'AGC Switch'
value.0 false
value.1 false
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.26 {
iface MIXER
name 'Left AGC Target level'
value '-5.5dB'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '-5.5dB'
item.1 '-8dB'
item.2 '-10dB'
item.3 '-12dB'
item.4 '-14dB'
item.5 '-17dB'
item.6 '-20dB'
item.7 '-24dB'
}
}
control.27 {
iface MIXER
name 'Right AGC Target level'
value '-5.5dB'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '-5.5dB'
item.1 '-8dB'
item.2 '-10dB'
item.3 '-12dB'
item.4 '-14dB'
item.5 '-17dB'
item.6 '-20dB'
item.7 '-24dB'
}
}
control.28 {
iface MIXER
name 'Left AGC Attack time'
value '8ms'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '8ms'
item.1 '11ms'
item.2 '16ms'
item.3 '20ms'
}
}
control.29 {
iface MIXER
name 'Right AGC Attack time'
value '8ms'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '8ms'
item.1 '11ms'
item.2 '16ms'
item.3 '20ms'
}
}
control.30 {
iface MIXER
name 'Left AGC Decay time'
value '100ms'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '100ms'
item.1 '200ms'
item.2 '400ms'
item.3 '500ms'
}
}
control.31 {
iface MIXER
name 'Right AGC Decay time'
value '100ms'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '100ms'
item.1 '200ms'
item.2 '400ms'
item.3 '500ms'
}
}
control.32 {
iface MIXER
name 'De-emphasis Switch'
value.0 false
value.1 false
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.33 {
iface MIXER
name 'PGA Capture Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 119'
dbmin 0
dbmax 5950
dbvalue.0 0
dbvalue.1 0
}
}
control.34 {
iface MIXER
name 'PGA Capture Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.35 {
iface MIXER
name 'ADC HPF Cut-off'
value.0 Disabled
value.1 Disabled
comment {
access 'read write'
type ENUMERATED
count 2
item.0 Disabled
item.1 '0.0045xFs'
item.2 '0.0125xFs'
item.3 '0.025xFs'
}
}
control.36 {
iface MIXER
name 'Output Driver Power-On time'
value '0us'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '0us'
item.1 '10us'
item.2 '100us'
item.3 '1ms'
item.4 '10ms'
item.5 '50ms'
item.6 '100ms'
item.7 '200ms'
item.8 '400ms'
item.9 '800ms'
item.10 '2s'
item.11 '4s'
}
}
control.37 {
iface MIXER
name 'Output Driver Ramp-up step'
value '0ms'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 '0ms'
item.1 '1ms'
item.2 '2ms'
item.3 '4ms'
}
}
control.38 {
iface MIXER
name 'Left DAC Mux'
value DAC_L1
comment {
access 'read write'
type ENUMERATED
count 1
item.0 DAC_L1
item.1 DAC_L3
item.2 DAC_L2
}
}
control.39 {
iface MIXER
name 'Left HPCOM Mux'
value 'differential of HPLOUT'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'differential of HPLOUT'
item.1 'constant VCM'
item.2 single-ended
}
}
control.40 {
iface MIXER
name 'Right DAC Mux'
value DAC_R1
comment {
access 'read write'
type ENUMERATED
count 1
item.0 DAC_R1
item.1 DAC_R3
item.2 DAC_R2
}
}
control.41 {
iface MIXER
name 'Right HPCOM Mux'
value 'differential of HPROUT'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'differential of HPROUT'
item.1 'constant VCM'
item.2 single-ended
item.3 'differential of HPLCOM'
item.4 'external feedback'
}
}
control.42 {
iface MIXER
name 'Left Line1L Mux'
value single-ended
comment {
access 'read write'
type ENUMERATED
count 1
item.0 single-ended
item.1 differential
}
}
control.43 {
iface MIXER
name 'Left Line1R Mux'
value single-ended
comment {
access 'read write'
type ENUMERATED
count 1
item.0 single-ended
item.1 differential
}
}
control.44 {
iface MIXER
name 'Right Line1L Mux'
value single-ended
comment {
access 'read write'
type ENUMERATED
count 1
item.0 single-ended
item.1 differential
}
}
control.45 {
iface MIXER
name 'Right Line1R Mux'
value single-ended
comment {
access 'read write'
type ENUMERATED
count 1
item.0 single-ended
item.1 differential
}
}
control.46 {
iface MIXER
name 'Left PGA Mixer Line1L Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.47 {
iface MIXER
name 'Left PGA Mixer Line1R Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.48 {
iface MIXER
name 'Left PGA Mixer Mic2L Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.49 {
iface MIXER
name 'Left PGA Mixer Mic2R Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.50 {
iface MIXER
name 'Right PGA Mixer Line1R Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.51 {
iface MIXER
name 'Right PGA Mixer Line1L Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.52 {
iface MIXER
name 'Right PGA Mixer Mic2L Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.53 {
iface MIXER
name 'Right PGA Mixer Mic2R Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.54 {
iface MIXER
name 'Left Line Mixer PGAL Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.55 {
iface MIXER
name 'Left Line Mixer DACL1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.56 {
iface MIXER
name 'Left Line Mixer PGAR Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.57 {
iface MIXER
name 'Left Line Mixer DACR1 Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.58 {
iface MIXER
name 'Right Line Mixer PGAL Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.59 {
iface MIXER
name 'Right Line Mixer DACL1 Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.60 {
iface MIXER
name 'Right Line Mixer PGAR Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.61 {
iface MIXER
name 'Right Line Mixer DACR1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.62 {
iface MIXER
name 'Left HP Mixer PGAL Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.63 {
iface MIXER
name 'Left HP Mixer DACL1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.64 {
iface MIXER
name 'Left HP Mixer PGAR Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.65 {
iface MIXER
name 'Left HP Mixer DACR1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.66 {
iface MIXER
name 'Right HP Mixer PGAL Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.67 {
iface MIXER
name 'Right HP Mixer DACL1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.68 {
iface MIXER
name 'Right HP Mixer PGAR Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.69 {
iface MIXER
name 'Right HP Mixer DACR1 Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.70 {
iface MIXER
name 'Left HPCOM Mixer PGAL Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.71 {
iface MIXER
name 'Left HPCOM Mixer DACL1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.72 {
iface MIXER
name 'Left HPCOM Mixer PGAR Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.73 {
iface MIXER
name 'Left HPCOM Mixer DACR1 Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.74 {
iface MIXER
name 'Right HPCOM Mixer PGAL Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.75 {
iface MIXER
name 'Right HPCOM Mixer DACL1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.76 {
iface MIXER
name 'Right HPCOM Mixer PGAR Bypass Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.77 {
iface MIXER
name 'Right HPCOM Mixer DACR1 Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
}