Hi again everyone,
I just found out how to do it. I stopped using this card for a while, that's why I took so long to find out how, but now it's almost fixed.
Here's how, for others who might fall on this thread for help:
Step #1: We have to define the card as "softvol" in alsa, si lets edit our .asoundrc:
Now copy this at the end (the file is probably empty, even not existing yet):
gksudo gedit ~/.asoundrc
Be sure to change hw:1,0 to the correct soundcard. Any ALSA mixer will give it.
In short, I define a new ALSA output, which will be used later by pulseaudio. Since its type is softvol, ALSA will decrease the volume of the audio before sending it on the card, which will always be at 100%.
This time, we will edit /etc/pulse/default.pa . We also can edit the user's configuration in ~/.pulse, but I don't really know how it works, si I take the easy way.
and add at the end:
gksudo gedit /etc/pulse/default.pa
This just add a basic ALSA sink to pulseaudio. I works fine without any problems with the usual autodectection that Ubuntu uses since pulseaudio comes shipped with it. Other devices will continue to work properly.
# Tenx USB Soundcard fix
load-module module-alsa-sink device=usbsoft sink_name=usbsoft sink_properties=device.description=Tenx_USB_Card
Note: I putted the .fail tag before, so if the card is not plugged in, pulseaudio will still start (otherwise, it just won't start).
Step #3: Restart pulseaudio:
If there's no message after that, then everything should work fine. Juste redirect your streams to Tenx_USB_Card and enjoy your cheap card, now with a working volume control!
Removing the card doesn't cause any problem, but the USB card won't get loaded automatically anymore. it will be loaded on the pulseaudio's startup or when done manually with this command:
pactl load-module module-alsa-sink device=usbsoft sink_name=usbsoft sink_properties=device.description=Tenx_USB_Card
If someone knows how to make it load automatically, please let me know!