[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [linrad] FFT performance

Hi Edson,
> I just finished performing a test with a SoundBlaster Live card and the
> problem is indeed in the sound driver, as I've expected. I have also
> encountered a lot of problems with sound drivers. It is actually quite
> common to find drivers that do not comply with the OSS programming
> standards and there are drivers that don't even work with select().
> I will perform a new test with the alsa drivers and see what happens. It
> is a pity since the C-Media chip has a decent SNR and is very simple to
> control. My SB-Live card is a nightmare. The mixer has twenty two thousand
> controls. I have no idea of what they do since I am yet to find a diagram
> for the mixer connections! But the driver API works flawlesly!
Have you tried OSS?

> Lief, on a side subject, have you considered spliting the user interface
> from the processing code for linrad? Another area of problems for many
> folks is the svgalib configuration. In all my machines I had to tweak the
> svga config to get it working. Although X11 consumes a good ammount of
> resources, I believe it would be easier to deal than svgalib.
No. I have no experience with X11 so I have no idea how to do it.
I am sure it would be easy for someone familiar to X11 and I would
gladly incorporate it as an option if someone else makes the X11 related
things. Linrad needs a few graphic functions:
1) get screen size
2) get font size
3) get mouse x,y and button status
4) set pixel
5) write string
6) get box
7) put box
Maybe  I forgot something.

I could call through some interface routine that could be
supplied in a svgalib and an X11 version.

> ------------------------------------------------------------------
> --------------
> /dev/dsp opened as RDONLY 
> 16bit format supported
> Max no of channels = 2
> Max input speed 48000 Hz
> ------------------------------------------------------------------
> --------------
> /dev/dsp opened as WRONLY 
> 16bit format supported
> Max no of channels = 2
> Max input speed 48000 Hz
> ------------------------------------------------------------------
> --------------
> /dev/dsp opened as RDWR 
> 16bit format supported
> Max no of channels = 2
> Max input speed 48000 Hz
>  /dev/dsp selected by user for input.
> User selected RDONLY
> Min sampling speed = 8000 Hz
> 8000 Hz selected by user
> 8000 Hz reported by device
> Input format: 16 bit
> Read test OK
> No output device found while input is open.
> /dev/dspW 
> /dev/dspW0 
> /dev/dspW1 
> /dev/dspW2 
> /dev/dspW3 
> /dev/dspW4 
> /dev/dspW5 
> /dev/dspW6 
> /dev/dspW7 
> /dev/dspW8 
> /dev/dspW9 
> /dev/dspW10 
> /dev/dspW11 
> /dev/dspW12 
> /dev/dspW13 
> /dev/dspW14 
> /dev/dspW15 
> /dev/dspW16 
> /dev/dspW17 
> /dev/dspW18 
> /dev/dspW19 
> /dev/dspW20 
> /dev/dspW21 
> /dev/dspW22 
> /dev/dspW23 
> /dev/dspW24 
> /dev/dspW25 
> /dev/dspW26 
> /dev/dspW27 
> /dev/dspW28 
> /dev/dspW29 
> /dev/dspW30 
> /dev/dsp 
> /dev/dsp opened as WRONLY with no input open.
> Max output speed 48000
> /dev/dsp0 
> /dev/dsp1 
> /dev/dsp2 
> /dev/dsp3 
> /dev/dsp4 
> /dev/dsp5 
> /dev/dsp6 
> /dev/dsp7 
> /dev/dsp8 
> /dev/dsp9 
> /dev/dsp10 
> /dev/dsp11 
> /dev/dsp12 
> /dev/dsp13 
> /dev/dsp14 
> /dev/dsp15 
> /dev/dsp16 
> /dev/dsp17 
> /dev/dsp18 
> /dev/dsp19 
> /dev/dsp20 
> /dev/dsp21 
> /dev/dsp22 
> /dev/dsp23 
> /dev/dsp24 
> /dev/dsp25 
> /dev/dsp26 
> /dev/dsp27 
> /dev/dsp28 
> /dev/dsp29 
> /dev/dsp30 
> User selected /dev/dsp for output.
> Normal end

Oooh! "No output device found while input is open."
You do not have duplex capabilities. I must have made a mistake
in some recent version because if you can not have input and
output open simultaneously you should have got a warning on the screen.

Linrad should allow looking at spectra and you should be able to
save the incoming raw data. It should then be possible to
read the data from disk and process data to get loudspeaker output.
Something is not working properly. I will see if I can get the
same error on some old non-duplex card. If I can fix it you will
have the F=Hardware ... function but you will not be able to use
Linrad as a receiver.

What happens if you open RDWR? What does the log file say then?