My search for Karaoke on my laptop led me to writing to a book still in alpha on Linux sound programming. But I kept returning to the original topic, and my question this time was on how to support two microphones. I also wanted to introduce effects like reverb because it makes the voice sound richer. I suppose that means two sound cards unless I can find one with two microphone inputs. Basically, to do it in software I need to duplicate a mixer preferably with FX for reverb.
Real mixers aren't usually cheap. The ones in Chinese DVD players are though, as a complete player with two microphone inputs and reverb effects is often less than $100. But I had thrown out my old players :-(.
Then I came across the Behringer MIX800 ultra compact Karaoke machine. You can get it from Amazon for US$64. I paid A$109 from an Australian distributor Store DJ. It's good: two microphone inputs with reverb/echo. One line input from your CD/Computer with voice cancellation (which works sort of). Play the karaoke files on your computer using kmid or my Java programs, feed the output to the MIX800, plug in your microphones and send the mixed output to an amp. Easy! No need to mess around with mixing by PulseAudio or other s/w. I'll get the s/w working eventually as I want it, but for now this is a very good and easy solution.