any port use /dev/dsp directly?

Gary Kline kline at thought.org
Thu Jan 14 20:16:35 UTC 2010


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?
> > > > 
> > > > 	I think I may need to flush my data before closing the FILE *FP. Not
> > > > 	sure; just guessing.
> > > > 
> > > 
> > > I don't know if this directly answers your question, but from sound(4):
> > > 
> > > hw.snd.default_unit
> > > 	Default sound card for systems with multiple sound cards.  When
> > > 	using devfs(5), the default device for /dev/dsp.  Equivalent to a
> > > 	symlink from /dev/dsp to /dev/dsp${hw.snd.default_unit}.
> > > 
> > > FWIW, www/linux-f10-flashplugin10 is using /dev/dsp0.0 on my system at the
> > > moment.
> > 
> > Thanks, but I already read the sound man page.  I am trying to emulate 
> > 
> > /bin/cat WAVEFILE > /dev/dsp
> > 
> > which works well by opening /dev/dsp, making sure everything is set, the
> > writing the bytes of the WAVEFILE thru/into the device with a write()
> > call.  It works, the sound echoes, but at the end is an ugly HISSing or
> > FIZZZZ sound.


	saved the program to /tmp, thanks!

> 
> You're probably playing an mp3-style tag at the end of the file, or some
> other metadata encoded in the wav file format.  /dev/dsp takes raw bytes,
> and doesn't parse a file headers at all.
> 
> 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?

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

> 
> If you want a simple example of how to play a raw sound file, try this.  You
> can tell its age by the fact that it can play through /dev/pcaudio, but it
> still works :)
> 

	Ear-to-ear!!

	gary


> 
> 
> -- 
> 	Dan Nelson
> 	dnelson at allantgroup.com
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"

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