any port use /dev/dsp directly?

Gary Kline kline at thought.org
Thu Jan 14 22:31:20 UTC 2010


On Thu, Jan 14, 2010 at 03:19:47PM -0600, Dan Nelson wrote:
> 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 did see that.  I'm wondering of theses is some sox translation that 
	would do say 

	%sox -w WAV -r [rawoutfile]

	I found that using your code, or part of it, I can do very nearly what
	my own dspplayer.c was doing.  Only yours works and mine works with the
	hiss.  I'm only using the dev/dsp part of your program; it reads from
	stdin; I.... well, I'm not sure where I screwup.... rats.


	time to take printouts and go in a corner and see why my 109-lines
	fails.  --Of course, it worked before to create two flawless sine
	waves.  I modified it, but not correctly.  

	Meanwhile, I've rebuilt sox and will poke it with a stick!


> 
> > (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.
> 

	Wow, great; thanks for the pointer...


> -- 
> 	Dan Nelson
> 	dnelson at allantgroup.com

-- 
 Gary Kline  kline at thought.org  http://www.thought.org  Public Service Unix
        http://jottings.thought.org   http://transfinite.thought.org
    The 7.79a release of Jottings: http://jottings.thought.org/index.php



More information about the freebsd-questions mailing list