!!################################ !!ALSA Information Script v 0.4.64 !!################################ !!Script ran on: Fri Feb 23 03:02:11 UTC 2024 !!Linux Distribution !!------------------ ID_LIKE=debian !!DMI Information !!--------------- Manufacturer: Product Name: Product Version: Firmware Version: !!Kernel Information !!------------------ Kernel release: 4.9.80-v7 Operating System: GNU/Linux Architecture: armv7l Processor: unknown SMP Enabled: Yes !!ALSA Version !!------------ Driver version: k4.9.80-v7 Library version: 1.1.3 Utilities version: 1.1.3 !!Loaded ALSA modules !!------------------- snd_bcm2835 !!Sound Servers on this system !!---------------------------- No sound servers found. !!Soundcards recognised by ALSA !!----------------------------- 0 [ALSA ]: bcm2835 - bcm2835 ALSA bcm2835 ALSA !!Modprobe options (Sound related) !!-------------------------------- snd_pcsp: index=-2 snd_usb_audio: index=-2 snd_atiixp_modem: index=-2 snd_intel8x0m: index=-2 snd_via82xx_modem: index=-2 !!Loaded sound module options !!--------------------------- !!Module: snd_bcm2835 force_bulk : N !!ALSA Device nodes !!----------------- crw-rw---- 1 root audio 116, 0 Feb 22 19:53 /dev/snd/controlC0 crw-rw---- 1 root audio 116, 16 Feb 22 21:25 /dev/snd/pcmC0D0p crw-rw---- 1 root audio 116, 17 Feb 22 19:53 /dev/snd/pcmC0D1p crw-rw---- 1 root audio 116, 1 Feb 22 19:53 /dev/snd/seq crw-rw---- 1 root audio 116, 33 Feb 22 19:53 /dev/snd/timer /dev/snd/by-path: total 0 drwxr-xr-x 2 root root 60 Feb 22 19:53 . drwxr-xr-x 3 root root 160 Feb 22 19:53 .. lrwxrwxrwx 1 root root 12 Feb 22 19:53 platform-soc:audio -> ../controlC0 !!ALSA configuration files !!------------------------ !!System wide config file (/etc/asound.conf) #asound rc new version jrubinstein - experimental with charlie Laubs plugins #edits Saturday Feb 17th, 2024 by Karl Fiebich. ACDf v3.0 plugins. #this sets the speakers for Klipsch KSF10.5 to 2.5-way #the lower woofer has low pass filter at 300hz -6db to sum flat with the mid at 300hz and below #the mid has a low shelf filter at 300hz -6db to sum flat at 300hz and below #the mid has a low pass filter at 2200hz. #the tweeter has a high pass filter at 2200hz to match as-built crossover. #the as-built tweeter is left in place for protection. #it is not possible to cross over the tweeter below 2200hz unless the as-built #capacitor is replaced. #next step in the speaker mod should be to replace the existing tweeter electrolytic cap #with a film capacitor. #the tweeter high pass filter is two 1st order to better blend with the as-built crossover. #the woofer and the mid each have a low shelf filter at 300hz #comment out the rate converter if it doesnt work defaults.pcm.rate_converter "speexrate_best" #added conversion to 96khz using the rate plugin #the idea here is to use the speexrate_best instead of mplayer upsampling #pcm.rate96000hz { # type plug # slave { # pcm "hw:0,0" # rate 96000 # } #} #The above code does not crash mplayer, and gives the Dolby Digital symbol on the OnkyoTX-SR605 #But there is no sound. There is also no PCM indication on the OnkyoTX-SR605 # comment out above rate conversion if this doesn't work #pcm.!default { # type plug # slave.pcm filtereq #} #The below is the same code except in a stack pcm.!default { type plug slave { pcm filtereq rate 96000 } } #revert to previous code if this does not work. #this changes the pcm rate to best from the standard default ctl.!default { type hw card 0 #This is the default and it works correctly. } pcm.filtereq { type ladspa slave.pcm filtercross path "/usr/lib/ladspa" channels 8 plugins { # [type polarity gain Fp Qp Fz Qz] # MUST HAVE AT LEAST ONE FILTER ACTIVE OR WILL NOT WORK!!! # if adding EQ to the signal, it must be done in this section 0 { #This is the source the LEFT channel. label ACDf policy none input.bindings.0 "Input" output.bindings.0 "Output" input { controls [3 1 20] } #all pass filter 20hz. } 1 { #This is the source for the RIGHT channel. label ACDf policy none input.bindings.1 "Input" output.bindings.1 "Output" input { controls [3 1 20] } #all pass filter 20 hz. } } } pcm.filtercross { #crossover at 300hz and 2200hz type ladspa slave.pcm speaker path "/usr/lib/ladspa" channels 8 plugins { # Process the woofers 300hz low pass with -6dB gain # [FilterType Polarity dBgain Frequency q ] 0 { label ACDf #lowpass for woofer output to channel2 LEFT WOOFER policy none input.bindings.0 "Input" output.bindings.2 "Output" input { controls [21 1 0 300 0.707 1 1] } #2nd order low pass 300hz } 1 { label ACDf #lowpass for woofer output to channel2 LEFT WOOFER policy none input.bindings.2 "Input" output.bindings.2 "Output" #Final output to LEFT WOOFER input { controls [21 1 0 300 0.707 1 1] } #2nd order low pass 300hz } 2 { label ACDf #lowpass for woofer output to channel3 RIGHT WOOFER policy none input.bindings.1 "Input" output.bindings.3 "Output" input { controls [21 1 0 300 0.707 1 1] } #2nd order low pass 300hz } 3 { label ACDf #low pass for woofer output to channel3 RIGHT WOOFER policy none input.bindings.3 "Input" output.bindings.3 "Output" #Final output to RIGHT WOOFER input { controls [21 1 0 300 0.707 1 1] } #2nd order low pass at 300hz } # High Pass Filter TWEETER all-pass # This allows the OEM as-built crossover for Klipsch KSF10.5 speaker to take all the load # consider deleting the filters altogether to reduce CPU load and send full signal to tweeters. # Full range to the left tweeter makes an unwanted sound. Possibly a faulty tweeter crossover. 4 { label ACDf #1st order high pass1 left TWEETER policy none input.bindings.0 "Input" output.bindings.4 "Output" input { controls [2 1 0 2200] } #1st order all pass } 5 { label ACDf #1st order high pass2 left TWEETER policy none input.bindings.4 "Input" output.bindings.4 "Output" #Final output to left Tweeter The polarity may need to be changed to match phase. input { controls [2 1 0 2200] } #1st order high pass } 6 { label ACDf #1st order high pass1 right TWEETER policy none input.bindings.1 "Input" output.bindings.5 "Output" input { controls [2 1 0 2200] } #1st order high pass } 7 { label ACDf #1st order high pass2 right TWEETER policy none input.bindings.5 "Input" output.bindings.5 "Output" #Final output to right Tweeter # The polarity may need to be changed to match the phase input { controls [2 1 0 2200] } #1st order high pass } # MID SPEAKER SECTION 8 { label ACDf #low shelf 1 LEFT MID policy none input.bindings.0 "Input" output.bindings.6 "Output" input { controls [24 1 -3 300 0.707 1 1] } #2nd order low shelf -3db gain } 9 { label ACDf #low shelf 2 LEFT MID policy none input.bindings.6 "Input" output.bindings.6 "Output" input { controls [24 1 -3 300 0.707 1 1] } #2nd order low shelf -3db gain } 10 { label ACDf #low pass 1 LEFT MID policy none input.bindings.6 "Input" output.bindings.6 "Output" input { controls [21 1 0 2200 0.707 1 1] } #2nd order low pass } 11 { label ACDf #low pass2 LEFT MID policy none input.bindings.6 "Input" output.bindings.6 "Output" #Final output to left MID input { controls [21 1 0 2200 0.707 1 1] } #2nd order low pass } 12 { label ACDf #low shelf 1 RIGHT MID policy none input.bindings.1 "Input" output.bindings.7 "Output" input { controls [24 1 -3 300 0.707 1 1] } #2nd order low shelf -3db } 13 { label ACDf #low shelf 2 RIGHT MID policy none input.bindings.7 "Input" output.bindings.7 "Output" input { controls [24 1 -3 300 0.707 1 1] } #2nd order low shelf -3db } 14 { label ACDf #low pass1 right MID policy none input.bindings.7 "Input" output.bindings.7 "Output" input { controls [21 1 0 2200 0.707 1 1] } #2nd order low pass } 15 { label ACDf #low pass2 right MID policy none input.bindings.7 "Input" output.bindings.7 "Output" #Final output to right MID input { controls [21 1 0 2200 0.707 1 1] } #2nd order low pass } } } pcm.speaker { type plug slave { pcm "t-table" channels 8 rate "unchanged" # rate 96000 #Changing the rate to 96000 shows 96000 on mplayer, and gives Dolby Digital on the OnkyoTX-SR605 #but there is no sound. } } pcm.t-table { type route slave { pcm "hw:0,0" #this works correctly and should not need to be changed. channels 8 } ttable { # these numbers map the inputs to the output speaker terminals. # channel in.channel out on/off 0=off 1=on. AMP TERMINAL = SPEAKER DRIVER # The filters work on the channel in. The channel out is matched to the Onkyo TX-SR605 # AV receiver. 0.2 0 # CENTER turned off always. 1.3 0 # LFE turned off always. 2.0 1 # FRONT LEFT = left woofer. 3.1 1 # FRONT RIGHT = right woofer 4.6 1 # REAR LEFT = left tweeter 5.7 1 # REAR RIGHT = right tweeter 6.4 1 # SURROUND LEFT = left mid 7.5 1 # SURROUND RIGHT = right mid } } #pcm.plughw.slave.rate = "unchanged"; pcm.plughw.slave.rate = 96000; !!Aplay/Arecord output !!-------------------- APLAY **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 ARECORD **** List of CAPTURE Hardware Devices **** !!Amixer output !!------------- !!-------Mixer controls for card 0 [ALSA] Card hw:0 'ALSA'/'bcm2835 ALSA' Mixer name : 'Broadcom Mixer' Components : '' Controls : 6 Simple ctrls : 1 Simple mixer control 'PCM',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback -10239 - 400 Mono: Playback 400 [100%] [4.00dB] [on] !!Alsactl output !!-------------- --startcollapse-- state.ALSA { control.1 { iface MIXER name 'PCM Playback Volume' value 400 comment { access 'read write' type INTEGER count 1 range '-10239 - 400' dbmin -9999999 dbmax 400 dbvalue.0 400 } } control.2 { iface MIXER name 'PCM Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.3 { iface MIXER name 'PCM Playback Route' value 0 comment { access 'read write' type INTEGER count 1 range '0 - 2' } } control.4 { iface PCM name 'IEC958 Playback Default' value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.5 { iface PCM name 'IEC958 Playback Con Mask' value '0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.6 { iface PCM name 'IEC958 Playback PCM Stream' value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write inactive' type IEC958 count 1 } } } --endcollapse-- !!All Loaded Modules !!------------------ Module snd_hrtimer snd_seq_dummy snd_seq_midi snd_rawmidi snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device cfg80211 rfkill sg snd_bcm2835 snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd bcm2835_gpiomem fixed uio_pdrv_genirq uio ip_tables x_tables ipv6 !!ALSA/HDA dmesg !!--------------