OK, I think I've got it sorted now, but it took some head scratching. When Paul first wrote Zyn, the vast majority of sound chipsets were 16 bit, with a smattering of 8 bit ones still around. However things move on, and almost all modern ones are 24 bit. But, ALSA doesn't look at the card. It looks at the *driver*, and it seems that modern drivers are 32 bit.
I have access to four completely different machines spanning more than seven years. All the motherboard drivers support 32 bit audio. They also seem to support 16 bit - probably for CDs. The drivers for both my external cards also support 32 bit but don't support 16 bit. What seems to work across all of these is to try for 32 bit first, then 24 and finally 16. I'm actually wondering how far back you have to go to get a driver that is 16 bit only. So, interleaved shorts has become just interleaved and when set for 16 bit I've used a algorithm to pack two shorts into an integer's space in the ALSA buffer. As implemented, this would fail on a setup with an odd number of channels, but I really don't think it's worth the effort to support that. I had to temporarily remove the 32 bit option to test 16 bit operation, and it looks like in the real world it'll hardly ever actually get used! Another problem was, surprisingly, the number of channels. The code was demanding 2 channels, but the KA6 insists on 6, so now we 'request' 2 and accept what we get, but just use the first two, sending silence to the others. The only remaining issue was endian conversion. Again, when Paul started he was using a 386 processor which would be little endian, and probably the on-board chipset which would have been the same. The code is now in the 'buffers' branch to do the checks, and make the conversions, but I can only emulate a test as I would need big endian cards and processors to prove it was correct. I have neither :( P.S. When I started doing music on Linux I pretty quickly moved to jack for audio. This is just as well, Zyn. would never have been able to talk ALSA to my audiophile 2496! -- Will J Godfrey http://www.musically.me.uk Say you have a poem and I have a tune. Exchange them and we can both have a poem, a tune, and a song. ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ Yoshimi-devel mailing list Yoshimi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/yoshimi-devel