In order to get full performance from the Samson C01 USB microphone,
there are two separate gain parameters that must be set by the
mixer application. I experienced suboptimal results with the C01 USB
microphone under Linux. I was not getting the full dynamic range that
a 16-bit device should give. I emailed Samson and offered my help
to get their mic working nicely under Linux, but I got no response and
I returned the mic to the store and bought an analog mic which works well.
Months later was I contacted by an engineer at Samson who explained the C01 USB microphone to me. He seemed very willing to help, but I no longer had the mic.
I guess it isn't proper for me for post the Samson engineer's message, but I can paraphrase. He used a chip that has two digitally controlled variable gain amplifiers, stereo ADC, and USB transceiver. A key piece of information about this chip is that it provides analog outputs after the variable gain amplifiers, but before the ADCs. Since the chip is stereo and the mic is mono, he played a cute trick. He cascaded both variable gain amplifiers by taking the analog out of the first channel and feeding it to the input of the second channel. He got more gain adjustment range this way and he says that the performance is better too. So only the second channel should be used at the computer. But both of those gain adjustment controls affect the sound. So they need to be moved together in some special way to get optimal performance. But even adjusting them naively, it should work OK. Of course if I knew all of this when I had the mic, I could have experimentally determined the optimal tracking curves for the gain controls and then modified somebody's volume control app to do provide a single control to the user but send the two optimal values to the mic. But I don't have the mic anymore, and in the meantime I bought an analog mic. It is kind of a sad outcome because it was just lack of communication.
My previous experiences and incorrect conclusions are here.