pkgsrc-Users archive

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

Proposed package: audio/pulseaudio




See www.pulseaudio.org.  I think this would be a useful addition to pkgsrc, namely to replace the moribund audio/esound.

From the web site:

     Library licensed under LGPL and server daemon under GPL
     Extensible plugin architecture (by loading dynamic loadable modules with dlopen())
     Support for static linking of modules, allowing a single binary for all your needs
     Module autoloading
     Support for more than one sink/source
     Good low latency behaviour
     Very accurate latency measurement for playback and recording.
     Client side latency interpolation
     Embedabble into other software (the core is available as C library)
     Completely asynchronous C API, complemented by two synchronous variants for simple use in synchronous applications
     Simple command line interface for reconfiguring the daemon while running
     Flexible, implicit sample type conversion and resampling
     "Zero-Copy" architecture
     May be used to combine multiple sound cards to one (with sample rate adjustment)
     Ability to fully synchronize multiple playback streams

    

"PulseAudio can stream audio data to an IP multicast group via the standard protocols RTP, SAP and SDP (RFC3550, RFC3551, RFC2327, RFC2327). This can be used for multiple different purposes: for sharing a single microphone on multiple computers on the local LAN, for streaming music from a single controlling PC to multiple PCs with speakers or to implement a simple "always-on" teleconferencing solution.

The current implementation is designed to be used exlusively in local area networks, though Internet multicasting is theoretically supported. Only uncompressed audio is supported, hence you won't be able to multicast more than a few streams at the same time over a standard LAN.

PulseAudio implements both a sender and a reciever for RTP traffic. The sender announces itself via SAP/SDP on the same multicast group as it sends the RTP data to. The reciever picks up the SAP/SDP announcements and creates a playback stream for each session. Alternatively you can use any RTP capable client to recieve and play back the RTP data (such as mplayer)."

module-xeroconf-publish:
Publish all local sinks/sources using mDNS Zeroconf.


There are __many__ more interesting features aside from those here.  Moreover, they've already done Linux, FreeBSD, and win32 ports.
Surely this would be a superior option to esound on Interix, for example.  And how about using this among different domains in Xen (or a cluster of machines) using this module:

module-combine:

This combines two or more sinks into one. A new virtual sink is allocated. All data written to it is forwarded to all connected sinks. In aequidistant intervals the sample rates of the output sinks is recalculated: i.e. even when the sinks' crystals deviate (which is normally the case) output appears synchronously to the human ear. The resampling required for this may be very CPU intensive.


Please explore the wiki, especially noting all of the plugins here:

http://pulseaudio.org/wiki/Modules

IMHO, adding this to pkgsrc would significantly enahnce NetBSD's audio capability and flexibility, not to mention
improve the "desktop experience".

I'm going to try this out on my machine, but I'm no pkgsrc developer (hope to get there at some point, heh); perhaps
someone else more pkgsrc-savvy would care to work on this?

Regards,

--Blair



Home | Main Index | Thread Index | Old Index