any port use /dev/dsp directly?

Dan Nelson dnelson at allantgroup.com
Thu Jan 14 21:19:50 UTC 2010


In the last episode (Jan 14), Gary Kline said:
> On Thu, Jan 14, 2010 at 10:57:17AM -0600, Dan Nelson wrote:
> > In the last episode (Jan 13), Gary Kline said:
> > > On Wed, Jan 13, 2010 at 08:37:46PM -0500, Glen Barber wrote:
> > > > Gary Kline wrote: 
> > > > > I have a couple short programs where I mess with /dev/dsp.  I'll
> > > > > open check to be sure the speed is right, open in mono or stereo,
> > > > > &c.  is there anything is ports that uses this dev by opening, doing
> > > > > ioctls and so forth?
> > 
> > A better way to play wav files would be to install the sox port and use
> > its included "play" command, which will parse the wav file format and
> > only send the audio data to /dev/dsp.  It'll also play compressed audio
> > files (mp3, or other non-raw wav encodings).
> 
> the hiss at the end probably is due to whatever metadata at the end of my
> WAV file.  Can sox translate this file into a raw byte-stream of data that
> I can cat of write() into the device?

Didn't I just say that in the paragaph above? :)  The sox port comes with
its own "play" command that can parse many containers and encodings,
including wav files.

> (I thought that /dev/dsp was associated with the *.WAV files ... but
> evidently not.)

Well, it's an audio device, and wav files contain audio data, but that's
about it.  The driver doesn't parse its input looking for file headers or
anything.  If you're lucky and /dev/dsp's default settings happen to match
the format of a raw-encoded wav file, then you can cat your file to
/dev/dsp.  But otherwise you'll get static.  Try catting any of the sample
wavs at http://en.wikipedia.org/wiki/WAV to /dev/dsp and see how many sound
good.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list