[mythtv] Quiet, cheap, simple - but crappy audio

mythtv-dev at snowman.net mythtv-dev@snowman.net
Sun Jan 12 05:48:12 EST 2003


I see a lot of questions about building a mythtv box 
so I thought I'd document my experience and maybe solicit 
some help. 

What I wanted was a box that was quiet, cheap, and simple. 
In that order, but still able to do 480x480 with deinterlace. 

I have most of this information on 
   http://lloyd.dyndns.org/index.php?MythTV%20Page 

Some highlights of what follows: 
        Using a PCChips M841L (SIS740) Chipset 
        Using btaudio 
        Crappy sound 

I put my first mythtv box together from some old 
leftover parts to see how it worked. 

The system: 
        Red Hat 7.3 
        K2-6-500 
        256MB 
        WinTV-GO 
        20 GB Disk 
        Aureal 8830 soundcard (yeah, that hurt) 

The first time I tried it, I ran into a bunch of 
problems like illegal instruction and so on. 
I figured it was RedHat and so I was going to do 
another debian install after 5 years. Instead, I 
waited and Robert updated the HOWTO with a RH8 
section. (Thanks!) 

>From there I did the dance of perl package installs 
with XMLTV and finally got the system to run. 
I could only get 320x240, but it worked! Now 
I had to have more. I set about trying to put 
together a fast, quiet system. 

Here is what I ended up with: 

$189        Athlon XP 1800+ Barebones     http://www.outletpc.com/c4015.html 
($169        PCChips M841         
 now)        Integrated SIS 740 Chipset 
        Video 
        Sound 
        LAN 
$50        WinTV-GO Card (The cheap one.) 
$32        Zalman Quiet HeatSink 
$??        A QUIET old 275W ATX PS - (I hear the Seasonic SS-300FS is good for 
$30) 
$20        256 MB PC133 RAM 
$??        The same old 20GB Disk 

This path was a little more expensive because I had to 
toss the 450W PS and Heatsink that came with the barebones 
system. I'm sure it could be put together for less if 
one person assembled the components. 

I thought I was hosed until I found the kernel params 
to enable the integrated chipset to work. I'm using 
RedHat 8.0 and I boot with grub. So I just edit grub.conf 
and reboot. The kernal params to add are: 
        pci=bios,biosirq idebus=66 

Now everything boots, but I have to get alsa loaded so 
I can use the sound card. The alsa module is snd-intel8x0. 
Just find a general modules.conf for alsa and change the 
sound driver module to this value. 

I set all the configuration values and viola, Mythtv 
is working! Unfortunately the sound is really bad. 
It mostly is very hissy and a little distorted like it 
is over-driven. I check the levels and it gets a little 
better, but I'm never able to get it right. I figure I 
need to get the data directly from the capture card. 

Believe them when they tell you that getting btaudio 
working is hard. Here are the two things that threw me. 

1. It matters what order you load the modules in, no matter 
what is in modules.conf. You should load the output 
sound driver first. (The one you put your speakers on.) 
This will grab /dev/dsp. 

2. When you load btaudio, It takes the next two devices 
and uses them. That would be /dev/dsp1 and /dev/dsp2. 
People with a standard RH8 install will notice that there 
is no /dev/dsp2 and that MAKEDEV doesn't know how to make one. 

Thanks to these guys- http://dab.cs.tum.edu/README 
Here are the commands to make more dsp and mixers nodes: 
        mknod /dev/dsp1 c 14 19 
        mknod /dev/dsp2 c 14 35 
        mknod /dev/dsp3 c 14 51 
        mknod /dev/dsp4 c 14 67 

        mknod /dev/mixer1 c 14 16 
        mknod /dev/mixer2 c 14 32 
        mknod /dev/mixer3 c 14 48 
        mknod /dev/mixer4 c 14 64 

Okay, now I'm loading btaudio (after my alsa driver) 
and I have /dev/dsp1 (digital stereo) and /dev/dsp2 (analog). 

Now I run Kmix and I get two mixers. One for the alsa 
driver for the integrated audio, and another for the 
btaudio driver. I find that the line2 input is the signal 
I need to use for the tuner. 

The easiest way to test the audio was to run xawtv to bring 
up a channel and then pipe the output of one dsp into the 
other like so. 

        sox -r 32000 -c 1 -t ossdsp /dev/dsp2 -t ossdsp /dev/dsp 


This still sounded crappy and now I'm noticing that the 
sampling rates are not as requested. It turns out the sampling 
rate of the audio chip on the WinTV-GO (bt878) is 448000. 
Yes, the extra zero is right. So I try this: 

        sox -r 448000 -c 1 -t ossdsp /dev/dsp2 -t ossdsp /dev/dsp 

Sounds great! 
Now here is my problem. How do I get mythtv to downsample the 
really high audio rate so my sound is good. 

Chuck






More information about the mythtv-dev mailing list