From 0b423bcb0b8ce1c3ddac5b2b33806584ea068158 Mon Sep 17 00:00:00 2001 From: Halley Tsai Date: Tue, 13 Jul 2021 09:26:49 -0400 Subject: [PATCH 1/5] add wm8960 dac descriptor --- app/plugins/system_controller/i2s_dacs/dacs.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/plugins/system_controller/i2s_dacs/dacs.json b/app/plugins/system_controller/i2s_dacs/dacs.json index 7d4604029..793782c66 100644 --- a/app/plugins/system_controller/i2s_dacs/dacs.json +++ b/app/plugins/system_controller/i2s_dacs/dacs.json @@ -56,7 +56,8 @@ {"id":"st400-dac-amp","name":"ST400 Dac (PCM5122) - Amp","overlay":"iqaudio-dacplus","alsanum":"2","mixer":"Digital","modules":"","script":"","needsreboot":"yes"}, {"id":"taudac","name":"TauDAC - DM101","overlay":"taudac","alsanum":"2","mixer":"","modules":"","script":"","eeprom_name":"TauDAC-DM101","needsreboot":"yes"}, {"id":"terraberry-dac2","name":"Terra-Berry DAC 2/3","overlay":"i-sabre-q2m","alsanum":"2","alsacard":"DAC","mixer":"","modules":"","script":"","needsreboot":"yes"}, - {"id":"es90x8q2m-dac","name":"Volumio ESS 9028QM","overlay":"es90x8q2m-dac","alsanum":"2","mixer":"Digital","modules":"","script":"","i2c_address":"48","needsreboot":"no"} + {"id":"es90x8q2m-dac","name":"Volumio ESS 9028QM","overlay":"es90x8q2m-dac","alsanum":"2","mixer":"Digital","modules":"","script":"","i2c_address":"48","needsreboot":"no"}, + {"id":"wm8960-soundcard","name":"Waveshare - WM8960","overlay":"wm8960-soundcard,i2s-mmap","alsanum":"1","alsacard":"wm8960soundcard","mixer":"Playback","modules":["i2c-dev","snd-soc-wm8960","snd-soc-wm8960-soundcard"],"script":"","i2c_address":"1a","needsreboot":"yes"} ]}, {"name":"Odroid C1+","data":[ {"id":"odroid-hifi-shield","name":"HiFi Shield","overlay":"","alsanum":"2","mixer":"","modules":"","script":""} From a4a0a00d414ddbd86333a89c85eae57d630cd997 Mon Sep 17 00:00:00 2001 From: Halley Tsai Date: Fri, 16 Jul 2021 01:17:53 -0400 Subject: [PATCH 2/5] remove unnecessary module loads --- app/plugins/system_controller/i2s_dacs/dacs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/plugins/system_controller/i2s_dacs/dacs.json b/app/plugins/system_controller/i2s_dacs/dacs.json index 793782c66..5d4d7d115 100644 --- a/app/plugins/system_controller/i2s_dacs/dacs.json +++ b/app/plugins/system_controller/i2s_dacs/dacs.json @@ -57,7 +57,7 @@ {"id":"taudac","name":"TauDAC - DM101","overlay":"taudac","alsanum":"2","mixer":"","modules":"","script":"","eeprom_name":"TauDAC-DM101","needsreboot":"yes"}, {"id":"terraberry-dac2","name":"Terra-Berry DAC 2/3","overlay":"i-sabre-q2m","alsanum":"2","alsacard":"DAC","mixer":"","modules":"","script":"","needsreboot":"yes"}, {"id":"es90x8q2m-dac","name":"Volumio ESS 9028QM","overlay":"es90x8q2m-dac","alsanum":"2","mixer":"Digital","modules":"","script":"","i2c_address":"48","needsreboot":"no"}, - {"id":"wm8960-soundcard","name":"Waveshare - WM8960","overlay":"wm8960-soundcard,i2s-mmap","alsanum":"1","alsacard":"wm8960soundcard","mixer":"Playback","modules":["i2c-dev","snd-soc-wm8960","snd-soc-wm8960-soundcard"],"script":"","i2c_address":"1a","needsreboot":"yes"} + {"id":"wm8960-soundcard","name":"Waveshare - WM8960","overlay":"wm8960-soundcard,i2s-mmap","alsanum":"1","alsacard":"wm8960soundcard","mixer":"Playback","modules":"","script":"","i2c_address":"1a","needsreboot":"yes"} ]}, {"name":"Odroid C1+","data":[ {"id":"odroid-hifi-shield","name":"HiFi Shield","overlay":"","alsanum":"2","mixer":"","modules":"","script":""} From 9a5fe6ce542e849a12f6b069c05559aab098b749 Mon Sep 17 00:00:00 2001 From: Halley Tsai Date: Sat, 17 Jul 2021 23:53:46 -0400 Subject: [PATCH 3/5] Unmute PCM routing device --- app/plugins/system_controller/i2s_dacs/dacs.json | 2 +- .../i2s_dacs/scripts/wm8960-unmute.sh | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh diff --git a/app/plugins/system_controller/i2s_dacs/dacs.json b/app/plugins/system_controller/i2s_dacs/dacs.json index 5d4d7d115..f9aa67e16 100644 --- a/app/plugins/system_controller/i2s_dacs/dacs.json +++ b/app/plugins/system_controller/i2s_dacs/dacs.json @@ -57,7 +57,7 @@ {"id":"taudac","name":"TauDAC - DM101","overlay":"taudac","alsanum":"2","mixer":"","modules":"","script":"","eeprom_name":"TauDAC-DM101","needsreboot":"yes"}, {"id":"terraberry-dac2","name":"Terra-Berry DAC 2/3","overlay":"i-sabre-q2m","alsanum":"2","alsacard":"DAC","mixer":"","modules":"","script":"","needsreboot":"yes"}, {"id":"es90x8q2m-dac","name":"Volumio ESS 9028QM","overlay":"es90x8q2m-dac","alsanum":"2","mixer":"Digital","modules":"","script":"","i2c_address":"48","needsreboot":"no"}, - {"id":"wm8960-soundcard","name":"Waveshare - WM8960","overlay":"wm8960-soundcard,i2s-mmap","alsanum":"1","alsacard":"wm8960soundcard","mixer":"Playback","modules":"","script":"","i2c_address":"1a","needsreboot":"yes"} + {"id":"wm8960-soundcard","name":"Waveshare - WM8960","overlay":"wm8960-soundcard,i2s-mmap","alsanum":"1","alsacard":"wm8960soundcard","mixer":"Playback","modules":"","script":"wm8960-unmute.sh","i2c_address":"1a","needsreboot":"yes"} ]}, {"name":"Odroid C1+","data":[ {"id":"odroid-hifi-shield","name":"HiFi Shield","overlay":"","alsanum":"2","mixer":"","modules":"","script":""} diff --git a/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh b/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh new file mode 100755 index 000000000..f42b4bcf0 --- /dev/null +++ b/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh @@ -0,0 +1,13 @@ +#!/bin/bash +function level { + for s in "${@:2}"; do + amixer -c 1 cset iface=MIXER,name="${s}" $1 + done +} + +level on "Right Output Mixer PCM Playback Switch" \ + "Left Output Mixer PCM Playback Switch" +level 255 "Playback Volume" +level 109 "Headphone Playback Volume" "Speaker Playback Volume" +level 4 "Speaker DC Volume" "Speaker AC Volume" + From 650f6cf0998abf1ce47177b6597602c429c862d8 Mon Sep 17 00:00:00 2001 From: Halley Tsai Date: Mon, 19 Jul 2021 13:22:48 +0000 Subject: [PATCH 4/5] prefer alsa cardname over devnumber as it may vary --- app/plugins/system_controller/i2s_dacs/dacs.json | 2 +- .../system_controller/i2s_dacs/scripts/wm8960-unmute.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/plugins/system_controller/i2s_dacs/dacs.json b/app/plugins/system_controller/i2s_dacs/dacs.json index f9aa67e16..e35ad0d0b 100644 --- a/app/plugins/system_controller/i2s_dacs/dacs.json +++ b/app/plugins/system_controller/i2s_dacs/dacs.json @@ -57,7 +57,7 @@ {"id":"taudac","name":"TauDAC - DM101","overlay":"taudac","alsanum":"2","mixer":"","modules":"","script":"","eeprom_name":"TauDAC-DM101","needsreboot":"yes"}, {"id":"terraberry-dac2","name":"Terra-Berry DAC 2/3","overlay":"i-sabre-q2m","alsanum":"2","alsacard":"DAC","mixer":"","modules":"","script":"","needsreboot":"yes"}, {"id":"es90x8q2m-dac","name":"Volumio ESS 9028QM","overlay":"es90x8q2m-dac","alsanum":"2","mixer":"Digital","modules":"","script":"","i2c_address":"48","needsreboot":"no"}, - {"id":"wm8960-soundcard","name":"Waveshare - WM8960","overlay":"wm8960-soundcard,i2s-mmap","alsanum":"1","alsacard":"wm8960soundcard","mixer":"Playback","modules":"","script":"wm8960-unmute.sh","i2c_address":"1a","needsreboot":"yes"} + {"id":"wm8960-soundcard","name":"Waveshare - WM8960","overlay":"wm8960-soundcard,i2s-mmap","alsanum":"","alsacard":"wm8960soundcard","mixer":"Playback","modules":"","script":"wm8960-unmute.sh","i2c_address":"1a","needsreboot":"yes"} ]}, {"name":"Odroid C1+","data":[ {"id":"odroid-hifi-shield","name":"HiFi Shield","overlay":"","alsanum":"2","mixer":"","modules":"","script":""} diff --git a/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh b/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh index f42b4bcf0..6b4c1e21d 100755 --- a/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh +++ b/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh @@ -1,7 +1,9 @@ #!/bin/bash +CARD=wm8960soundcard + function level { for s in "${@:2}"; do - amixer -c 1 cset iface=MIXER,name="${s}" $1 + amixer -c $CARD cset iface=MIXER,name="${s}" $1 done } From f0294b666cc4f24a747221859106fbeeaa173100 Mon Sep 17 00:00:00 2001 From: Halley Tsai Date: Mon, 19 Jul 2021 11:24:08 -0400 Subject: [PATCH 5/5] store alsa states after unmute --- app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh b/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh index 6b4c1e21d..6e37a34b9 100755 --- a/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh +++ b/app/plugins/system_controller/i2s_dacs/scripts/wm8960-unmute.sh @@ -13,3 +13,5 @@ level 255 "Playback Volume" level 109 "Headphone Playback Volume" "Speaker Playback Volume" level 4 "Speaker DC Volume" "Speaker AC Volume" +alsactl store +