Ok... was looking around, because this is above my head now, and found the following solution:
Since the volume levels can not be stored, I needed an /etc/asound.conf and a way to restore/set the
volume at boot...
/etc/asound.conf
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type softvol
slave {
pcm "array"
}
control {
name "MicArray Master"
card 0
}
max_dB 50.0
}
pcm.speaker {
type plug
slave {
pcm "hw:0,0"
}
}
pcm.array {
type plug
slave {
pcm "hw:1,0" <-------will change depending on your config (when in alsamixer press F6 to get the card index #)
}
}
To restore/set the alsa volume at boot, I added this to /etc/rc.local
arecord -d 1 --device=default -r 48000 -c 1 -f S16_LE test.wav
sleep 1
amixer sset 'MicArray Master' 70%
For pulseaudio....
Since the mic volume isn't stored between boots, setting the array volume,
starting pulseaudio and then setting the volume for pulseaudio worked for my
app that needed pulseaudio.
So my /etc/rc.local looks like this...
arecord -d 1 --device=default -r 48000 -c 1 -f S16_LE test.wav
sleep 1
amixer sset 'MicArray Master' 70%
su pi -c '/usr/bin/pulseaudio --start'
sleep 1
pactl set-source-volume 0 250%
None of this will be necessary when the drivers are finished but for now, this is what
worked for me.
From:
https://www.google.com/url?sa=t&source=web&rct=j&url=https://github.com/matrix-io/matrixio-kernel-modules/issues/24&ved=2ahUKEwjW6pzBpubyAhVxLH0KHY2eAyUQFnoECAYQAQ&usg=AOvVaw0lg1Masieu4-gBBJBkQZ3p
You will have to edit the script from MicArray Master to whatever your mic/soundcard/hardware is.