mirror of
				https://github.com/OpenVoiceOS/OpenVoiceOS
				synced 2025-06-05 22:19:21 +02:00 
			
		
		
		
	MycroftOS: (experimental) respeaker 2mic pulseaudio support.
This commit is contained in:
		| @@ -0,0 +1,94 @@ | ||||
| # This file is part of PulseAudio. | ||||
| # | ||||
| # PulseAudio is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU Lesser General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # PulseAudio is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU Lesser General Public License | ||||
| # along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for | ||||
| ## more information. Default values are commented out.  Use either ; or # for | ||||
| ## commenting. | ||||
|  | ||||
| ; daemonize = no | ||||
| ; fail = yes | ||||
| ; allow-module-loading = yes | ||||
| ; allow-exit = yes | ||||
| ; use-pid-file = yes | ||||
| ; system-instance = no | ||||
| ; local-server-type = user | ||||
| ; enable-shm = yes | ||||
| ; enable-memfd = yes | ||||
| ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB | ||||
| ; lock-memory = no | ||||
| ; cpu-limit = no | ||||
|  | ||||
| ; high-priority = yes | ||||
| ; nice-level = -11 | ||||
|  | ||||
| ; realtime-scheduling = yes | ||||
| ; realtime-priority = 5 | ||||
|  | ||||
| ; exit-idle-time = 20 | ||||
| ; scache-idle-time = 20 | ||||
|  | ||||
| ; dl-search-path = (depends on architecture) | ||||
|  | ||||
| ; load-default-script-file = yes | ||||
| ; default-script-file = /etc/pulse/default.pa | ||||
|  | ||||
| ; log-target = auto | ||||
| ; log-level = notice | ||||
| ; log-meta = no | ||||
| ; log-time = no | ||||
| ; log-backtrace = 0 | ||||
|  | ||||
| ; resample-method = speex-float-1 | ||||
| ; enable-remixing = yes | ||||
| ; enable-lfe-remixing = no | ||||
| ; lfe-crossover-freq = 0 | ||||
|  | ||||
| ; flat-volumes = yes | ||||
|  | ||||
| ; rlimit-fsize = -1 | ||||
| ; rlimit-data = -1 | ||||
| ; rlimit-stack = -1 | ||||
| ; rlimit-core = -1 | ||||
| ; rlimit-as = -1 | ||||
| ; rlimit-rss = -1 | ||||
| ; rlimit-nproc = -1 | ||||
| ; rlimit-nofile = 256 | ||||
| ; rlimit-memlock = -1 | ||||
| ; rlimit-locks = -1 | ||||
| ; rlimit-sigpending = -1 | ||||
| ; rlimit-msgqueue = -1 | ||||
| ; rlimit-nice = 31 | ||||
| ; rlimit-rtprio = 9 | ||||
| ; rlimit-rttime = 200000 | ||||
|  | ||||
| ; default-sample-format = s16le | ||||
| ; default-sample-rate = 96000 | ||||
| ; alternate-sample-rate = 48000 | ||||
| ; default-sample-channels = 4 | ||||
| ; default-channel-map = front-left,front-right | ||||
|  | ||||
| ; default-fragments = 4 | ||||
| ; default-fragment-size-msec = 25 | ||||
|  | ||||
| ; enable-deferred-volume = yes | ||||
| ; deferred-volume-safety-margin-usec = 8000 | ||||
| ; deferred-volume-extra-delay-usec = 0 | ||||
|  | ||||
| # MycroftOS Audio Settings | ||||
| avoid-resampling = yes | ||||
| default-sample-format = s24le | ||||
| default-sample-rate = 48000 | ||||
| alternate-sample-rate = 44100 | ||||
| default-sample-channels = 2 | ||||
| @@ -0,0 +1,153 @@ | ||||
| #!/usr/bin/pulseaudio -nF | ||||
| # | ||||
| # This file is part of PulseAudio. | ||||
| # | ||||
| # PulseAudio is free software; you can redistribute it and/or modify it | ||||
| # under the terms of the GNU Lesser General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # PulseAudio is distributed in the hope that it will be useful, but | ||||
| # WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
| # General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU Lesser General Public License | ||||
| # along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| # This startup script is used only if PulseAudio is started per-user | ||||
| # (i.e. not in system mode) | ||||
|  | ||||
| .fail | ||||
|  | ||||
| ### Automatically restore the volume of streams and devices | ||||
| load-module module-device-restore | ||||
| load-module module-stream-restore | ||||
| load-module module-card-restore | ||||
|  | ||||
| ### Automatically augment property information from .desktop files | ||||
| ### stored in /usr/share/application | ||||
| load-module module-augment-properties | ||||
|  | ||||
| ### Should be after module-*-restore but before module-*-detect | ||||
| load-module module-switch-on-port-available | ||||
|  | ||||
| ### Load audio drivers statically | ||||
| ### (it's probably better to not load these drivers manually, but instead | ||||
| ### use module-udev-detect -- see below -- for doing this automatically) | ||||
| #load-module module-alsa-sink device="hw:1,0" channels=8 rate=48000 format=s32le | ||||
| #load-module module-alsa-source device="hw:1,0" channels=8 rate=48000 format=s32le | ||||
| #load-module module-oss device="/dev/dsp" sink_name=output source_name=input | ||||
| #load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input | ||||
| #load-module module-null-sink | ||||
| #load-module module-pipe-sink | ||||
|  | ||||
| ### Automatically load driver modules depending on the hardware available | ||||
| .ifexists module-udev-detect.so | ||||
| load-module module-udev-detect tsched=0 | ||||
| #channels=8 rate=48000 format=s32le | ||||
| .else | ||||
| ### Use the static hardware detection module (for systems that lack udev support) | ||||
| load-module module-detect | ||||
| .endif | ||||
|  | ||||
| ### Automatically connect sink and source if JACK server is present | ||||
| .ifexists module-jackdbus-detect.so | ||||
| .nofail | ||||
| load-module module-jackdbus-detect channels=2 | ||||
| .fail | ||||
| .endif | ||||
|  | ||||
| ### Automatically load driver modules for Bluetooth hardware | ||||
| .ifexists module-bluetooth-policy.so | ||||
| load-module module-bluetooth-policy | ||||
| .endif | ||||
|  | ||||
| .ifexists module-bluetooth-discover.so | ||||
| load-module module-bluetooth-discover | ||||
| .endif | ||||
|  | ||||
| ### Load several protocols | ||||
| .ifexists module-esound-protocol-unix.so | ||||
| load-module module-esound-protocol-unix | ||||
| .endif | ||||
| load-module module-native-protocol-unix auth-anonymous=1 | ||||
|  | ||||
| ### Network access (may be configured with paprefs, so leave this commented | ||||
| ### here if you plan to use paprefs) | ||||
| #load-module module-esound-protocol-tcp | ||||
| load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16;172.16.0.0/12;10.0.0.0/8 auth-anonymous=1 | ||||
| load-module module-zeroconf-publish | ||||
|  | ||||
| ### Load the RTP receiver module (also configured via paprefs, see above) | ||||
| #load-module module-rtp-recv | ||||
|  | ||||
| ### Load the RTP sender module (also configured via paprefs, see above) | ||||
| #load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" | ||||
| #load-module module-rtp-send source=rtp.monitor | ||||
|  | ||||
| ### Load additional modules from GConf settings. This can be configured with the paprefs tool. | ||||
| ### Please keep in mind that the modules configured by paprefs might conflict with manually | ||||
| ### loaded modules. | ||||
| .ifexists module-gconf.so | ||||
| .nofail | ||||
| load-module module-gconf | ||||
| .fail | ||||
| .endif | ||||
|  | ||||
| ### Automatically restore the default sink/source when changed by the user | ||||
| ### during runtime | ||||
| ### NOTE: This should be loaded as early as possible so that subsequent modules | ||||
| ### that look up the default sink/source get the right value | ||||
| load-module module-default-device-restore | ||||
|  | ||||
| ### Automatically move streams to the default sink if the sink they are | ||||
| ### connected to dies, similar for sources | ||||
| load-module module-rescue-streams | ||||
|  | ||||
| ### Make sure we always have a sink around, even if it is a null sink. | ||||
| load-module module-always-sink | ||||
|  | ||||
| ### Honour intended role device property | ||||
| load-module module-intended-roles | ||||
|  | ||||
| ### Automatically suspend sinks/sources that become idle for too long | ||||
| load-module module-suspend-on-idle | ||||
|  | ||||
| ### If autoexit on idle is enabled we want to make sure we only quit | ||||
| ### when no local session needs us anymore. | ||||
| .ifexists module-console-kit.so | ||||
| load-module module-console-kit | ||||
| .endif | ||||
| .ifexists module-systemd-login.so | ||||
| load-module module-systemd-login | ||||
| .endif | ||||
|  | ||||
| ### Enable positioned event sounds | ||||
| load-module module-position-event-sounds | ||||
|  | ||||
| ### Cork music/video streams when a phone stream is active | ||||
| load-module module-role-cork | ||||
|  | ||||
| ### Modules to allow autoloading of filters (such as echo cancellation) | ||||
| ### on demand. module-filter-heuristics tries to determine what filters | ||||
| ### make sense, and module-filter-apply does the heavy-lifting of | ||||
| ### loading modules and rerouting streams. | ||||
| load-module module-filter-heuristics | ||||
| load-module module-filter-apply | ||||
|  | ||||
| ### Make some devices default | ||||
| #set-default-sink output | ||||
| #set-default-source input | ||||
| #set-default-source alsa_input.platform-soc_sound.seeed-source | ||||
| #set-default-sink alsa_output.platform-soc_sound.seeed-sink | ||||
|  | ||||
| ### MycroftOS Audio Settings | ||||
| unload-module module-suspend-on-idle | ||||
| unload-module module-role-cork | ||||
| load-module module-role-ducking | ||||
|  | ||||
| ### Enable Echo/Noise-Cancellation | ||||
| #load-module module-echo-cancel aec_method=webrtc source_name=echoCancel_source sink_name=echoCancel_sink | ||||
| #set-default-source echoCancel_source | ||||
| #set-default-sink echoCancel_sink | ||||
| @@ -0,0 +1,317 @@ | ||||
| From 10fb065c9735e4a04cfc251a31529083f55c16fd Mon Sep 17 00:00:00 2001 | ||||
| From: j1nx <p.steenbergen@j1nx.nl> | ||||
| Date: Thu, 27 Aug 2020 13:33:47 +0200 | ||||
| Subject: [PATCH 1/1] Add 2mic pulse support | ||||
|  | ||||
| --- | ||||
|  pulseaudio/91-seeedvoicecard.rules            |   3 +- | ||||
|  pulseaudio/pulse_config_2mic/daemon.conf      |  87 +++++++++++ | ||||
|  pulseaudio/pulse_config_2mic/default.pa       | 143 ++++++++++++++++++ | ||||
|  .../pulse_config_2mic/seeed-voicecard.conf    |  36 +++++ | ||||
|  4 files changed, 268 insertions(+), 1 deletion(-) | ||||
|  create mode 100644 pulseaudio/pulse_config_2mic/daemon.conf | ||||
|  create mode 100644 pulseaudio/pulse_config_2mic/default.pa | ||||
|  create mode 100644 pulseaudio/pulse_config_2mic/seeed-voicecard.conf | ||||
|  | ||||
| diff --git a/pulseaudio/91-seeedvoicecard.rules b/pulseaudio/91-seeedvoicecard.rules | ||||
| index 8b41dd1..b253459 100644 | ||||
| --- a/pulseaudio/91-seeedvoicecard.rules | ||||
| +++ b/pulseaudio/91-seeedvoicecard.rules | ||||
| @@ -2,7 +2,8 @@ SUBSYSTEM!="sound", GOTO="seeedvoicecard_end" | ||||
|  ACTION!="change", GOTO="seeedvoicecard_end" | ||||
|  KERNEL!="card*", GOTO="seeedvoicecard_end" | ||||
|   | ||||
| +ATTR{id}=="seeed4micvoicec",ENV{PULSE_PROFILE_SET}="seeed-voicecard-2mic.conf" | ||||
|  ATTR{id}=="seeed4micvoicec",ENV{PULSE_PROFILE_SET}="seeed-voicecard-4mic.conf" | ||||
|  ATTR{id}=="seeed8micvoicec",ENV{PULSE_PROFILE_SET}="seeed-voicecard-8mic.conf" | ||||
|   | ||||
| -LABEL="seeedvoicecard_end" | ||||
| \ No newline at end of file | ||||
| +LABEL="seeedvoicecard_end" | ||||
| diff --git a/pulseaudio/pulse_config_2mic/daemon.conf b/pulseaudio/pulse_config_2mic/daemon.conf | ||||
| new file mode 100644 | ||||
| index 0000000..067a55e | ||||
| --- /dev/null | ||||
| +++ b/pulseaudio/pulse_config_2mic/daemon.conf | ||||
| @@ -0,0 +1,87 @@ | ||||
| +# This file is part of PulseAudio. | ||||
| +# | ||||
| +# PulseAudio is free software; you can redistribute it and/or modify | ||||
| +# it under the terms of the GNU Lesser General Public License as published by | ||||
| +# the Free Software Foundation; either version 2 of the License, or | ||||
| +# (at your option) any later version. | ||||
| +# | ||||
| +# PulseAudio is distributed in the hope that it will be useful, but | ||||
| +# WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
| +# General Public License for more details. | ||||
| +# | ||||
| +# You should have received a copy of the GNU Lesser General Public License | ||||
| +# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. | ||||
| + | ||||
| +## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for | ||||
| +## more information. Default values are commented out.  Use either ; or # for | ||||
| +## commenting. | ||||
| + | ||||
| +; daemonize = no | ||||
| +; fail = yes | ||||
| +; allow-module-loading = yes | ||||
| +; allow-exit = yes | ||||
| +; use-pid-file = yes | ||||
| +; system-instance = no | ||||
| +; local-server-type = user | ||||
| +; enable-shm = yes | ||||
| +; enable-memfd = yes | ||||
| +; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB | ||||
| +; lock-memory = no | ||||
| +; cpu-limit = no | ||||
| + | ||||
| +; high-priority = yes | ||||
| +; nice-level = -11 | ||||
| + | ||||
| +; realtime-scheduling = yes | ||||
| +; realtime-priority = 5 | ||||
| + | ||||
| +; exit-idle-time = 20 | ||||
| +; scache-idle-time = 20 | ||||
| + | ||||
| +; dl-search-path = (depends on architecture) | ||||
| + | ||||
| +; load-default-script-file = yes | ||||
| +; default-script-file = /etc/pulse/default.pa | ||||
| + | ||||
| +; log-target = auto | ||||
| +; log-level = notice | ||||
| +; log-meta = no | ||||
| +; log-time = no | ||||
| +; log-backtrace = 0 | ||||
| + | ||||
| +; resample-method = speex-float-1 | ||||
| +; enable-remixing = yes | ||||
| +; enable-lfe-remixing = no | ||||
| +; lfe-crossover-freq = 0 | ||||
| + | ||||
| +; flat-volumes = yes | ||||
| + | ||||
| +; rlimit-fsize = -1 | ||||
| +; rlimit-data = -1 | ||||
| +; rlimit-stack = -1 | ||||
| +; rlimit-core = -1 | ||||
| +; rlimit-as = -1 | ||||
| +; rlimit-rss = -1 | ||||
| +; rlimit-nproc = -1 | ||||
| +; rlimit-nofile = 256 | ||||
| +; rlimit-memlock = -1 | ||||
| +; rlimit-locks = -1 | ||||
| +; rlimit-sigpending = -1 | ||||
| +; rlimit-msgqueue = -1 | ||||
| +; rlimit-nice = 31 | ||||
| +; rlimit-rtprio = 9 | ||||
| +; rlimit-rttime = 200000 | ||||
| + | ||||
| +default-sample-format = s16le | ||||
| +default-sample-rate = 96000 | ||||
| +; alternate-sample-rate = 48000 | ||||
| +default-sample-channels = 2 | ||||
| +; default-channel-map = front-left,front-right | ||||
| + | ||||
| +; default-fragments = 4 | ||||
| +; default-fragment-size-msec = 25 | ||||
| + | ||||
| +; enable-deferred-volume = yes | ||||
| +; deferred-volume-safety-margin-usec = 8000 | ||||
| +; deferred-volume-extra-delay-usec = 0 | ||||
| diff --git a/pulseaudio/pulse_config_2mic/default.pa b/pulseaudio/pulse_config_2mic/default.pa | ||||
| new file mode 100644 | ||||
| index 0000000..a99faff | ||||
| --- /dev/null | ||||
| +++ b/pulseaudio/pulse_config_2mic/default.pa | ||||
| @@ -0,0 +1,143 @@ | ||||
| +#!/usr/bin/pulseaudio -nF | ||||
| +# | ||||
| +# This file is part of PulseAudio. | ||||
| +# | ||||
| +# PulseAudio is free software; you can redistribute it and/or modify it | ||||
| +# under the terms of the GNU Lesser General Public License as published by | ||||
| +# the Free Software Foundation; either version 2 of the License, or | ||||
| +# (at your option) any later version. | ||||
| +# | ||||
| +# PulseAudio is distributed in the hope that it will be useful, but | ||||
| +# WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
| +# General Public License for more details. | ||||
| +# | ||||
| +# You should have received a copy of the GNU Lesser General Public License | ||||
| +# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. | ||||
| + | ||||
| +# This startup script is used only if PulseAudio is started per-user | ||||
| +# (i.e. not in system mode) | ||||
| + | ||||
| +.fail | ||||
| + | ||||
| +### Automatically restore the volume of streams and devices | ||||
| +load-module module-device-restore | ||||
| +load-module module-stream-restore | ||||
| +load-module module-card-restore | ||||
| + | ||||
| +### Automatically augment property information from .desktop files | ||||
| +### stored in /usr/share/application | ||||
| +load-module module-augment-properties | ||||
| + | ||||
| +### Should be after module-*-restore but before module-*-detect | ||||
| +load-module module-switch-on-port-available | ||||
| + | ||||
| +### Load audio drivers statically | ||||
| +### (it's probably better to not load these drivers manually, but instead | ||||
| +### use module-udev-detect -- see below -- for doing this automatically) | ||||
| +#load-module module-alsa-sink device="hw:1,0" channels=8 rate=48000 format=s32le | ||||
| +#load-module module-alsa-source device="hw:1,0" channels=8 rate=48000 format=s32le | ||||
| +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input | ||||
| +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input | ||||
| +#load-module module-null-sink | ||||
| +#load-module module-pipe-sink | ||||
| + | ||||
| +### Automatically load driver modules depending on the hardware available | ||||
| +.ifexists module-udev-detect.so | ||||
| +load-module module-udev-detect  | ||||
| +#channels=8 rate=48000 format=s32le | ||||
| +.else | ||||
| +### Use the static hardware detection module (for systems that lack udev support) | ||||
| +load-module module-detect | ||||
| +.endif | ||||
| + | ||||
| +### Automatically connect sink and source if JACK server is present | ||||
| +.ifexists module-jackdbus-detect.so | ||||
| +.nofail | ||||
| +load-module module-jackdbus-detect channels=2 | ||||
| +.fail | ||||
| +.endif | ||||
| + | ||||
| +### Automatically load driver modules for Bluetooth hardware | ||||
| +.ifexists module-bluetooth-policy.so | ||||
| +load-module module-bluetooth-policy | ||||
| +.endif | ||||
| + | ||||
| +.ifexists module-bluetooth-discover.so | ||||
| +load-module module-bluetooth-discover | ||||
| +.endif | ||||
| + | ||||
| +### Load several protocols | ||||
| +.ifexists module-esound-protocol-unix.so | ||||
| +load-module module-esound-protocol-unix | ||||
| +.endif | ||||
| +load-module module-native-protocol-unix | ||||
| + | ||||
| +### Network access (may be configured with paprefs, so leave this commented | ||||
| +### here if you plan to use paprefs) | ||||
| +#load-module module-esound-protocol-tcp | ||||
| +#load-module module-native-protocol-tcp | ||||
| +#load-module module-zeroconf-publish | ||||
| + | ||||
| +### Load the RTP receiver module (also configured via paprefs, see above) | ||||
| +#load-module module-rtp-recv | ||||
| + | ||||
| +### Load the RTP sender module (also configured via paprefs, see above) | ||||
| +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" | ||||
| +#load-module module-rtp-send source=rtp.monitor | ||||
| + | ||||
| +### Load additional modules from GConf settings. This can be configured with the paprefs tool. | ||||
| +### Please keep in mind that the modules configured by paprefs might conflict with manually | ||||
| +### loaded modules. | ||||
| +.ifexists module-gconf.so | ||||
| +.nofail | ||||
| +load-module module-gconf | ||||
| +.fail | ||||
| +.endif | ||||
| + | ||||
| +### Automatically restore the default sink/source when changed by the user | ||||
| +### during runtime | ||||
| +### NOTE: This should be loaded as early as possible so that subsequent modules | ||||
| +### that look up the default sink/source get the right value | ||||
| +load-module module-default-device-restore | ||||
| + | ||||
| +### Automatically move streams to the default sink if the sink they are | ||||
| +### connected to dies, similar for sources | ||||
| +load-module module-rescue-streams | ||||
| + | ||||
| +### Make sure we always have a sink around, even if it is a null sink. | ||||
| +load-module module-always-sink | ||||
| + | ||||
| +### Honour intended role device property | ||||
| +load-module module-intended-roles | ||||
| + | ||||
| +### Automatically suspend sinks/sources that become idle for too long | ||||
| +load-module module-suspend-on-idle | ||||
| + | ||||
| +### If autoexit on idle is enabled we want to make sure we only quit | ||||
| +### when no local session needs us anymore. | ||||
| +.ifexists module-console-kit.so | ||||
| +load-module module-console-kit | ||||
| +.endif | ||||
| +.ifexists module-systemd-login.so | ||||
| +load-module module-systemd-login | ||||
| +.endif | ||||
| + | ||||
| +### Enable positioned event sounds | ||||
| +load-module module-position-event-sounds | ||||
| + | ||||
| +### Cork music/video streams when a phone stream is active | ||||
| +load-module module-role-cork | ||||
| + | ||||
| +### Modules to allow autoloading of filters (such as echo cancellation) | ||||
| +### on demand. module-filter-heuristics tries to determine what filters | ||||
| +### make sense, and module-filter-apply does the heavy-lifting of | ||||
| +### loading modules and rerouting streams. | ||||
| +load-module module-filter-heuristics | ||||
| +load-module module-filter-apply | ||||
| + | ||||
| +### Make some devices default | ||||
| +#set-default-sink output | ||||
| +#set-default-source input | ||||
| +set-default-source alsa_input.platform-soc_sound.seeed-source | ||||
| +set-default-sink alsa_output.platform-soc_sound.seeed-sink | ||||
| diff --git a/pulseaudio/pulse_config_2mic/seeed-voicecard.conf b/pulseaudio/pulse_config_2mic/seeed-voicecard.conf | ||||
| new file mode 100644 | ||||
| index 0000000..a050002 | ||||
| --- /dev/null | ||||
| +++ b/pulseaudio/pulse_config_2mic/seeed-voicecard.conf | ||||
| @@ -0,0 +1,36 @@ | ||||
| +# /usr/share/pulseaudio/alsa-mixer/profile-sets/seeed-voiced.conf | ||||
| + | ||||
| +[General] | ||||
| +auto-profiles = no | ||||
| +[Mapping seeed-source] | ||||
| +device-strings = hw:%f | ||||
| +channel-map = front-left,front-right | ||||
| +exact-channels = false | ||||
| +fallback = yes | ||||
| +paths-input = seeed-source | ||||
| +priority = 3 | ||||
| +direction = input | ||||
| + | ||||
| +[Mapping seeed-sink] | ||||
| +device-strings = hw:%f | ||||
| +channel-map = front-left,front-right | ||||
| +exact-channels = false | ||||
| +fallback = yes | ||||
| +paths-output = seeed-sink | ||||
| +direction = output | ||||
| +priority = 2 | ||||
| + | ||||
| +[Profile output:seeed-sink+input:seeed-source] | ||||
| +output-mappings = seeed-sink | ||||
| +input-mappings = seeed-source | ||||
| +priority = 100 | ||||
| +skip-probe = yes | ||||
| + | ||||
| +[Profile output:seeed-sink] | ||||
| +output-mappings = seeed-sink | ||||
| +priority = 4 | ||||
| +skip-probe = yes | ||||
| + | ||||
| +[Profile input:seeed-source] | ||||
| +input-mappings = seeed-source | ||||
| +priority = 5 | ||||
| --  | ||||
| 2.20.1 | ||||
|  | ||||
| @@ -29,6 +29,8 @@ define RESPEAKER_INSTALL_TARGET_CMDS | ||||
|         $(INSTALL) -D -m 0644 $(@D)/seeed-8mic-voicecard.dtbo $(BINARIES_DIR)/overlays/ | ||||
|  | ||||
| 	mkdir -p $(TARGET_DIR)/usr/share/pulseaudio/alsa-mixer/profile-sets/ | ||||
|         $(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_2mic/seeed-voicecard.conf \ | ||||
|                 $(TARGET_DIR)/usr/share/pulseaudio/alsa-mixer/profile-sets/seeed-voicecard-2mic.conf | ||||
| 	$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_4mic/seeed-voicecard.conf \ | ||||
| 		$(TARGET_DIR)/usr/share/pulseaudio/alsa-mixer/profile-sets/seeed-voicecard-4mic.conf | ||||
| 	$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_6mic/seeed-voicecard.conf \ | ||||
| @@ -36,6 +38,10 @@ define RESPEAKER_INSTALL_TARGET_CMDS | ||||
| 	$(INSTALL) -D -m 0644 $(@D)/pulseaudio/91-seeedvoicecard.rules \ | ||||
| 		$(TARGET_DIR)/etc/udev/rules.d/91-seeedvoicecard.rules | ||||
|  | ||||
|         $(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_2mic/default.pa \ | ||||
|                 $(TARGET_DIR)/etc/pulse/seeed-voicecard-2mic-default.pa | ||||
|         $(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_2mic/daemon.conf \ | ||||
|                 $(TARGET_DIR)/etc/pulse/seeed-voicecard-2mic-daemon.conf | ||||
| 	$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_4mic/default.pa \ | ||||
| 		$(TARGET_DIR)/etc/pulse/seeed-voicecard-4mic-default.pa | ||||
| 	$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_4mic/daemon.conf \ | ||||
|   | ||||
| @@ -79,6 +79,8 @@ if [ "x${is_1a}" != "x" ] && [ "x${is_35}" == "x" ] ; then | ||||
|     echo "install 2mic" | ||||
|     overlay=seeed-2mic-voicecard | ||||
|     asound_state=/etc/voicecard/wm8960_asound.state | ||||
|     pulse_default=/etc/pulse/seeed-voicecard-2mic-default.pa | ||||
|     pulse_daemon=/etc/pulse/seeed-voicecard-2mic-daemon.conf | ||||
| fi | ||||
|  | ||||
| if [ "x${is_3b}" != "x" ] && [ "x${is_35}" == "x" ] ; then | ||||
|   | ||||
		Reference in New Issue
	
	Block a user