[LAU] Playing a wav file from stdin in JACK?

Erik de Castro Lopo mle+la at mega-nerd.com
Fri Nov 16 22:02:28 EST 2007


Ken Restivo wrote:

> I'm looking for a way to play a wav file from STDIN that'll work with JACK.

In general, WAV files are not designed for reading from things like pipes.
The problem is that they can contain metadata *after* the audio data.

There are however file formats that are specifically design to be allowed
to be read from pipes, like AU and CAF. Both of these formats have all
metadata before the audio data and do not allow trailing metadata.

Both AU and CAF formats support a wide range of audio data formats
including 16, 24 and 32 bit integer PCM, 32 bit floats, 64 bit floats,
Alaw, ulaw etc.

> mplayer -ao jack (or just mplayer without JACK) won't handle WAV files on stdin, for some reason.
> 
> 	Cannot seek backward in linear streams!
> 	Seek failed

Mplayer is probably being a little conservative.

libsndfile does allow reading from pipes as long as the file is
not too broken.
 
> I need to do this because I'm playing wavpack'ed files: I need to do
> "wvunpack -o - filename.wv | SOMETHING - ". I do *not* want to have to
> unpack them to disk just to play them.

Does wvunpack support output as AU of CAF?

If wvunpack only does WAV output, you have two solutions:

  - Write SOMETHING to use libsndfile which does read from a pipe.

  - Hack wavpack support into libsndfile :-).

Erik
-- 
-----------------------------------------------------------------
Erik de Castro Lopo
-----------------------------------------------------------------
"It's not that perl programmers are idiots, it's that the
language rewards idiotic behavior in a way that no other
language or tool has ever done." --  Erik Naggum



More information about the Linux-audio-user mailing list