Trouble using presets with Ultra++ [Solved ]

I have an Ultra++ on a raspberry pi 3 running the latest buster desktop distribution. I installed as per the instructions and can get output on onboard speakers and the headset and input from the onboard microphones. However, I’d like to get input from an external microphone. I am sure that the hardware works as I have gotten to work using a usb audio dongle on the pi and on a port on a Mac. I think the problem has to do with the setting of the mixer. However, there are a bewildering array of controls and I don’t understand what they do. I tried using some of the presets pointed to in the installation instructions both to use directly and to learn form. However, the results are inconsistent and I can’t quite figure things out. Part of the problem is that my device has the name seeed2micvoicec and the preset example files have outputs for a number of devices including wm8960soundcard (and some others).

Is there a description of what all the mixer controls do?

It seems that the relevant ones for the external microphone are ‘Left Boost Mixer LINPUT1 Switch’ (and corresponding one for the right channel) and the volumes for ‘Left Input Boost Mixer LINPUT2 Volume’ (and the corresponding right channel). However, the volumes also see to mute=1 set, and sending an unmute doesn’t work and sets the volume back to zero. I am using mixer cset commands to do the setting. Any idea what I am doing wrong?

I figured it out. The following are the names and values of the amixer control items.

numid=45 name=‘Left Boost Mixer LINPUT1 Switch’=: off:
numid=43 name=‘Left Boost Mixer LINPUT2 Switch’=: on:
numid=44 name=‘Left Boost Mixer LINPUT3 Switch’=: off:
numid=9 name=‘Left Input Boost Mixer LINPUT1 Volume’=: 0:
numid=5 name=‘Left Input Boost Mixer LINPUT2 Volume’=: 2:
numid=4 name=‘Left Input Boost Mixer LINPUT3 Volume’=: 0:
numid=49 name=‘Left Input Mixer Boost Switch’=: on:
numid=48 name=‘Right Boost Mixer RINPUT1 Switch’=: off:
numid=46 name=‘Right Boost Mixer RINPUT2 Switch’=: on:
numid=47 name=‘Right Boost Mixer RINPUT3 Switch’=: off:
numid=8 name=‘Right Input Boost Mixer RINPUT1 Volume’=: 0:
numid=7 name=‘Right Input Boost Mixer RINPUT2 Volume’=: 2:
numid=6 name=‘Right Input Boost Mixer RINPUT3 Volume’=: 0:
numid=50 name=‘Right Input Mixer Boost Switch’=: on:

I used seeed2micvoicec as the card name that is, I used the command:
amixer cset numid=NN val
where NN is the integer id above and value is the value to the left.

I also found that the presets worked if I deleted all the states except the wm8960soundcard and renamed the line containing that at the top of the structure to
state.seeed2micvoicec

With that setting, the command:
alsactl --file preset_file restore seeed2micvoicec

worked.

Glad that you solved it :blush: