audio play 1.029
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 2630
Audio::Play 1.029
Audio::Play is an interface for Audio::Data to hardware. more>>
Audio::Play is an interface for Audio::Data to hardware.
SYNOPSIS
use Audio::Data;
use Audio::Play;
$audio = Audio::Data->new(...)
$svr = Audio::Play->new;
$svr->play($audio);
Audio::Play is an wrapper class which loads Audio::Play::$^O i.e. a per-platform driver.
Each class provides the following interface:
$svr = $class->new([$wait])
Create the server and return an object. $wait is supposed to determine whether to wait for device (and for how long) but is currently not really working for many devices.
$svr->rate($rate)
Set sample rate (if possible) to $rate.
$rate = $svr->rate;
Return sample rate.
$svr->play($audio[,$gain])
Play $audio via the hardware. Should take steps to match hardware and datas sampling rate.
$svr->gain($mult)
Set gain (if possible).
$svr->flush
Wait for playing to complete.
$svr->DESTROY
Destructor flushes and closes hardware.
<<lessSYNOPSIS
use Audio::Data;
use Audio::Play;
$audio = Audio::Data->new(...)
$svr = Audio::Play->new;
$svr->play($audio);
Audio::Play is an wrapper class which loads Audio::Play::$^O i.e. a per-platform driver.
Each class provides the following interface:
$svr = $class->new([$wait])
Create the server and return an object. $wait is supposed to determine whether to wait for device (and for how long) but is currently not really working for many devices.
$svr->rate($rate)
Set sample rate (if possible) to $rate.
$rate = $svr->rate;
Return sample rate.
$svr->play($audio[,$gain])
Play $audio via the hardware. Should take steps to match hardware and datas sampling rate.
$svr->gain($mult)
Set gain (if possible).
$svr->flush
Wait for playing to complete.
$svr->DESTROY
Destructor flushes and closes hardware.
Download (0.086MB)
Added: 2006-06-20 License: GPL (GNU General Public License) Price:
1221 downloads
Audio::Data 1.029
Audio::Data is a module for representing audio data to perl. more>>
Audio::Data is a module for representing audio data to perl.
SYNOPSIS
use Audio::Data;
my $audio = Audio::Data->new(rate => , ...);
$audio->method(...)
$audio OP ...
Audio::Data represents audio data to perl in a fairly compact and efficient manner using C via XS to hold data as a C array of float values. The use of float avoids many issues with dynamic range, and typical float has 24-bit mantissa so quantization noise should be acceptable. Many machines have floating point hardware these days, and in such cases operations on float should be as fast or faster than some kind of "scaled integer".
Nominally data is expected to be between +1.0 and -1.0 - although only code which interacts with outside world (reading/writing files or devices) really cares.
It can also represent elements (samples) which are "complex numbers" which simplifies many Digital Signal Processing methods.
Methods
The interface is object-oriented, and provides the methods below.
$audio = Audio::Data->new([method => value ...])
The "constructor" - takes a list of method/value pairs and calls $audio->method(value) on the object in order. Typically first "method" will be rate to set sampling rate of the object.
$rate = $audio->rate
Get sampling rate of object.
$audio->rate($newrate)
Set sampling rate of the object. If object contains existing data it is re-sampled to the new rate. (Code to do this was derived from a now dated version of sox.)
$audio->comment($string)
Sets simple string comment associated with data.
$string = $audio->comment
Get the comment
$time = $audio->duration
Return duration of object (in seconds).
$time = $audio->samples
Return number of samples in the object.
@data = $audio->data
Return data as list of values - not recommended for large data.
$audio->data(@data)
Sets elements from @data.
$audio->length($N)
Set number of samples to $N - tuncating or padding with zeros (silence).
($max,$min) = $audio->bounds([$start_time[,$end_time]])
Returns a list of two values representing the limits of the values between the two times if $end_time isnt specified it defaults to the duration of the object, and if start time isnt specified it defaults to zero.
$copy = $audio->clone
Creates copy of data carrying over sample rate and complex-ness of data.
$slice = $audio->timerange($start_time,$end_time);
Returns a time-slice between specified times.
$audio->Load($fh)
Reads Sun/NeXT .au data from the perl file handle (which should have binmode() applied to it.)
This will eventually change - to allow it to load other formats and perhaps to return list of Audio::Data objects to represnt multiple channels (e.g. stereo).
$audio->Save($fh[,$comment])
Write a Sun/NeXT .au file to perl file handle. $comment if specified is used as the comment.
$audio->tone($freq,$dur,$amp);
Append a sinusoidal tone of specified freqency (in Hz) and duration (in seconds), and peak amplitude $amp.
$audio->silence($dur);
Append a period of 0 value of specified duration.
$audio->noise($dur,$amp);
Append burst of (white) noise of specified duration and peak amplitude.
$window = $audio->hamming($SIZE,$start_sample[,$k])
Returns a "raised cosine window" sample of $SIZE samples starting at specified sample. If $k is specified it overrides the default value of 0.46 (e.g. a value of 0.5 would give a Hanning window as opposed to a Hamming window.)
windowed = ((1.0-k)+k*cos(x*PI))
$freq = $audio->fft($SIZE)
$time = $freq->ifft($SIZE);
Perform a Fast Fourier Transform (or its inverse). (Note that in general result of these methods have complex numbers as the elements. $SIZE should be a power-of-two (if it isnt next larger power of two is used). Data is padded with zeros as necessary to get to $SIZE samples.
@values = $audio->amplitude([$N[,$count]])
Return values of amplitude for sample $N..$N+$count inclusive. if $N is not specified it defaults to zero. If $count is not specified it defaults to 1 for scalar context and rest-of-data in array context.
@values = $audio->dB([$N[,$count]])
Return amplitude - in deci-Bells. (0dB is 1/2**15 i.e. least detectable value to 16-bit device.) Defaults as for amplitude.
@values = $audio->phase([$N [,$count]])
Return Phase - (if data are real returns 0). Defaults as for amplitude.
$diff = $audio->difference
Returns the first difference between successive elements of the data - so result is one sample shorter. This is a simple high-pass filter and is much used to remove DC offsets.
$Avalues = $audio->lpc($NUM_POLES,[$auto [,$refl]])
Perform Linear Predictive Coding analysis of $audio and return coefficents of resulting All-Pole filter. 0th Element is not a filter coefficent (there is no A[0] in such a filter) - but is a measure of the "error" in the matching process. $auto is an output argument and returns computed autocorrelation. $refl is also output and are so-called reflection coefficents used in "lattice" realization of the filter. (Code for this lifted from "Festival" speech systems speech_tools.)
$auto = $audio->autocorrelation($LENGTH)
Returns an (unscaled) autocorrelation function - can be used to cause peaks when data is periodic - and is used as a precursor to LPC analysis.
<<lessSYNOPSIS
use Audio::Data;
my $audio = Audio::Data->new(rate => , ...);
$audio->method(...)
$audio OP ...
Audio::Data represents audio data to perl in a fairly compact and efficient manner using C via XS to hold data as a C array of float values. The use of float avoids many issues with dynamic range, and typical float has 24-bit mantissa so quantization noise should be acceptable. Many machines have floating point hardware these days, and in such cases operations on float should be as fast or faster than some kind of "scaled integer".
Nominally data is expected to be between +1.0 and -1.0 - although only code which interacts with outside world (reading/writing files or devices) really cares.
It can also represent elements (samples) which are "complex numbers" which simplifies many Digital Signal Processing methods.
Methods
The interface is object-oriented, and provides the methods below.
$audio = Audio::Data->new([method => value ...])
The "constructor" - takes a list of method/value pairs and calls $audio->method(value) on the object in order. Typically first "method" will be rate to set sampling rate of the object.
$rate = $audio->rate
Get sampling rate of object.
$audio->rate($newrate)
Set sampling rate of the object. If object contains existing data it is re-sampled to the new rate. (Code to do this was derived from a now dated version of sox.)
$audio->comment($string)
Sets simple string comment associated with data.
$string = $audio->comment
Get the comment
$time = $audio->duration
Return duration of object (in seconds).
$time = $audio->samples
Return number of samples in the object.
@data = $audio->data
Return data as list of values - not recommended for large data.
$audio->data(@data)
Sets elements from @data.
$audio->length($N)
Set number of samples to $N - tuncating or padding with zeros (silence).
($max,$min) = $audio->bounds([$start_time[,$end_time]])
Returns a list of two values representing the limits of the values between the two times if $end_time isnt specified it defaults to the duration of the object, and if start time isnt specified it defaults to zero.
$copy = $audio->clone
Creates copy of data carrying over sample rate and complex-ness of data.
$slice = $audio->timerange($start_time,$end_time);
Returns a time-slice between specified times.
$audio->Load($fh)
Reads Sun/NeXT .au data from the perl file handle (which should have binmode() applied to it.)
This will eventually change - to allow it to load other formats and perhaps to return list of Audio::Data objects to represnt multiple channels (e.g. stereo).
$audio->Save($fh[,$comment])
Write a Sun/NeXT .au file to perl file handle. $comment if specified is used as the comment.
$audio->tone($freq,$dur,$amp);
Append a sinusoidal tone of specified freqency (in Hz) and duration (in seconds), and peak amplitude $amp.
$audio->silence($dur);
Append a period of 0 value of specified duration.
$audio->noise($dur,$amp);
Append burst of (white) noise of specified duration and peak amplitude.
$window = $audio->hamming($SIZE,$start_sample[,$k])
Returns a "raised cosine window" sample of $SIZE samples starting at specified sample. If $k is specified it overrides the default value of 0.46 (e.g. a value of 0.5 would give a Hanning window as opposed to a Hamming window.)
windowed = ((1.0-k)+k*cos(x*PI))
$freq = $audio->fft($SIZE)
$time = $freq->ifft($SIZE);
Perform a Fast Fourier Transform (or its inverse). (Note that in general result of these methods have complex numbers as the elements. $SIZE should be a power-of-two (if it isnt next larger power of two is used). Data is padded with zeros as necessary to get to $SIZE samples.
@values = $audio->amplitude([$N[,$count]])
Return values of amplitude for sample $N..$N+$count inclusive. if $N is not specified it defaults to zero. If $count is not specified it defaults to 1 for scalar context and rest-of-data in array context.
@values = $audio->dB([$N[,$count]])
Return amplitude - in deci-Bells. (0dB is 1/2**15 i.e. least detectable value to 16-bit device.) Defaults as for amplitude.
@values = $audio->phase([$N [,$count]])
Return Phase - (if data are real returns 0). Defaults as for amplitude.
$diff = $audio->difference
Returns the first difference between successive elements of the data - so result is one sample shorter. This is a simple high-pass filter and is much used to remove DC offsets.
$Avalues = $audio->lpc($NUM_POLES,[$auto [,$refl]])
Perform Linear Predictive Coding analysis of $audio and return coefficents of resulting All-Pole filter. 0th Element is not a filter coefficent (there is no A[0] in such a filter) - but is a measure of the "error" in the matching process. $auto is an output argument and returns computed autocorrelation. $refl is also output and are so-called reflection coefficents used in "lattice" realization of the filter. (Code for this lifted from "Festival" speech systems speech_tools.)
$auto = $audio->autocorrelation($LENGTH)
Returns an (unscaled) autocorrelation function - can be used to cause peaks when data is periodic - and is used as a precursor to LPC analysis.
Download (0.086MB)
Added: 2006-06-19 License: GPL (GNU General Public License) Price:
1222 downloads
Audio::DSP 0.02
Audio::DSP is a Perl interface to *NIX digital audio device. more>>
Audio::DSP is a Perl interface to *NIX digital audio device.
SYNOPSIS
use Audio::DSP;
($buf, $chan, $fmt, $rate) = (4096, 1, 8, 8192);
$dsp = new Audio::DSP(buffer => $buf,
channels => $chan,
format => $fmt,
rate => $rate);
$seconds = 5;
$length = ($chan * $fmt * $rate * $seconds) / 8;
$dsp->init() || die $dsp->errstr();
# Record 5 seconds of sound
for (my $i = 0; $i < $length; $i += $buf) {
$dsp->read() || die $dsp->errstr();
}
# Play it back
for (;;) {
$dsp->write() || last;
}
$dsp->close();
Audio::DSP is built around the OSS (Open Sound System) API and allows perl to interface with a digital audio device. It provides, among other things, an initialization method which opens and handles ioctl messaging on the audio device file. Audio::DSP also provides some rudimentary methods for the storage and manipulation of audio data in memory.
In order to use Audio::DSP, youll need to have the necessary OSS drivers/libraries installed. OSS is available for many popular Unices, and a GPLed version (with which this extension was initially developed and tested) is distributed with with the Linux kernel.
<<lessSYNOPSIS
use Audio::DSP;
($buf, $chan, $fmt, $rate) = (4096, 1, 8, 8192);
$dsp = new Audio::DSP(buffer => $buf,
channels => $chan,
format => $fmt,
rate => $rate);
$seconds = 5;
$length = ($chan * $fmt * $rate * $seconds) / 8;
$dsp->init() || die $dsp->errstr();
# Record 5 seconds of sound
for (my $i = 0; $i < $length; $i += $buf) {
$dsp->read() || die $dsp->errstr();
}
# Play it back
for (;;) {
$dsp->write() || last;
}
$dsp->close();
Audio::DSP is built around the OSS (Open Sound System) API and allows perl to interface with a digital audio device. It provides, among other things, an initialization method which opens and handles ioctl messaging on the audio device file. Audio::DSP also provides some rudimentary methods for the storage and manipulation of audio data in memory.
In order to use Audio::DSP, youll need to have the necessary OSS drivers/libraries installed. OSS is available for many popular Unices, and a GPLed version (with which this extension was initially developed and tested) is distributed with with the Linux kernel.
Download (0.028MB)
Added: 2006-06-19 License: GPL (GNU General Public License) Price:
1226 downloads
Audio Daemon 0.99
Audio Daemon is a perl module to daemonize various players and support a single UDP interace for different players. more>>
Audio Daemon is a perl module to daemonize various players and support a single UDP interace for different players. Currently you can set up a server for MPG123, Xmms and an icecast stream (using libshout).
Audio::Daemon is made of two parts, the client and server.
The Client (Audio::Daemon::Client) remains the same across the board no matter what server you are communicating with, with a few exceptions noted in the pods.
The Server currently can be configured to be MPG123, Xmms or an Icecast (libshout) stream. Neither the Client nor the Servers need to be run as root and I strongly advise against it.
Audio::Daemon::MPG132:
Requires Audio::Play::MPG123 an optionally Audio::Mixer for volume control. It automatically spawns mpg123 in the background so there is no need to prestart it.
Audio::Daemon::Xmms:
Requires the Xmms and MP3::Info perl module and xmms installed. Id suggest getting the latest version of the Xmms perl module. It uses the volume and random feature built into xmms and if it doesnt find an xmms running it will try to spawn its own copy. Bear in mind that
xmms MUST HAVE an X display to export to, and that xmms must be running as the same user Audio::Daemon::Xmms is.
Audio::Daemon::Shout:
This wasnt easy to do. It requires MP3::Info and libshout to be installed (http://developer.icecast.org/libshout/) as well as a functioning icecast server. The timing here is pretty critical so I recomend being careful not to be polling the server too much. Be sure to read the icecast docs as Im still confused on how I got this part to work.
<<lessAudio::Daemon is made of two parts, the client and server.
The Client (Audio::Daemon::Client) remains the same across the board no matter what server you are communicating with, with a few exceptions noted in the pods.
The Server currently can be configured to be MPG123, Xmms or an Icecast (libshout) stream. Neither the Client nor the Servers need to be run as root and I strongly advise against it.
Audio::Daemon::MPG132:
Requires Audio::Play::MPG123 an optionally Audio::Mixer for volume control. It automatically spawns mpg123 in the background so there is no need to prestart it.
Audio::Daemon::Xmms:
Requires the Xmms and MP3::Info perl module and xmms installed. Id suggest getting the latest version of the Xmms perl module. It uses the volume and random feature built into xmms and if it doesnt find an xmms running it will try to spawn its own copy. Bear in mind that
xmms MUST HAVE an X display to export to, and that xmms must be running as the same user Audio::Daemon::Xmms is.
Audio::Daemon::Shout:
This wasnt easy to do. It requires MP3::Info and libshout to be installed (http://developer.icecast.org/libshout/) as well as a functioning icecast server. The timing here is pretty critical so I recomend being careful not to be polling the server too much. Be sure to read the icecast docs as Im still confused on how I got this part to work.
Download (0.015MB)
Added: 2006-08-03 License: GPL (GNU General Public License) Price:
1178 downloads
Audio::Ao 0.01
Audio::Ao is a Perl wrapper for the Ao audio library. more>>
Audio::Ao is a Perl wrapper for the Ao audio library.
SYNOPSIS
use Audio::Ao qw(:all);
initialize_ao;
my $device = open_live(default_driver_id(), 16, $rate, $channels,
is_big_endian(), {});
while (#have data) {
play($device, $data_buffer, $len_of_buffer);
}
close_ao($device($device));
shutdown_ao;
Provides access to Libao, "a cross-platform library that allows programs to output PCM audio data to the native audio devices on a wide variety of platforms." Libao currently supports OSS, ESD, ALSA, Sun audio, and aRts.
<<lessSYNOPSIS
use Audio::Ao qw(:all);
initialize_ao;
my $device = open_live(default_driver_id(), 16, $rate, $channels,
is_big_endian(), {});
while (#have data) {
play($device, $data_buffer, $len_of_buffer);
}
close_ao($device($device));
shutdown_ao;
Provides access to Libao, "a cross-platform library that allows programs to output PCM audio data to the native audio devices on a wide variety of platforms." Libao currently supports OSS, ESD, ALSA, Sun audio, and aRts.
Download (0.004MB)
Added: 2006-06-20 License: Perl Artistic License Price:
1225 downloads
Audio::Play::MPG321 0.004
Audio::Play::MPG321 is a frontend to MPG321. more>>
Audio::Play::MPG321 is a frontend to MPG321.
SYNOPSIS
use Audio::Play::MPG321; my $player = new Audio::Play::MPG321;
$SIG{CHLD} = IGNORE; # May not work everywhere! $SIG{INT} = sub { $player->stop(); exit 0; };
$player->play("/home/dabreegster/foo.mp3"); do { $player->poll(); print $player->{sofar}, " ", $player->{remains}, " ", $player->state(), "n"; } until $player->state() == 0;
$player->play("/home/dabreegster/bar.mp3"); sleep until $player->state() == 0;
This is a frontend to the MPG321 MP3 player. It talks to it in remote mode and provides constant feedback about the time elapsed so far, the time remaining, and the state of the player.
If you use Audio::Play::MPG321 directly, then you will have to do some extra work outside of the module, as demonstrated in the synopsis. If you want to build a basic queue (Play one song, then play another), then you must keep calling poll() to make sure Audio::Play::MPG321 knows how MPG321 is doing and testing state() to be 0.
<<lessSYNOPSIS
use Audio::Play::MPG321; my $player = new Audio::Play::MPG321;
$SIG{CHLD} = IGNORE; # May not work everywhere! $SIG{INT} = sub { $player->stop(); exit 0; };
$player->play("/home/dabreegster/foo.mp3"); do { $player->poll(); print $player->{sofar}, " ", $player->{remains}, " ", $player->state(), "n"; } until $player->state() == 0;
$player->play("/home/dabreegster/bar.mp3"); sleep until $player->state() == 0;
This is a frontend to the MPG321 MP3 player. It talks to it in remote mode and provides constant feedback about the time elapsed so far, the time remaining, and the state of the player.
If you use Audio::Play::MPG321 directly, then you will have to do some extra work outside of the module, as demonstrated in the synopsis. If you want to build a basic queue (Play one song, then play another), then you must keep calling poll() to make sure Audio::Play::MPG321 knows how MPG321 is doing and testing state() to be 0.
Download (0.004MB)
Added: 2006-11-14 License: Perl Artistic License Price:
1074 downloads
Audio::Play::MPG123 0.63
Audio::Play::MPG123 is a frontend to mpg123 version 0.59r and beyond. more>>
Audio::Play::MPG123 is a frontend to mpg123 version 0.59r and beyond.
SYNOPSIS
use Audio::Play::MPG123;
$player = new Audio::Play::MPG123;
$player->load("kult.mp3");
print $player->artist,"n";
$player->poll(1) until $player->state == 0;
$player->load("http://x.y.z/kult.mp3");
# see also mpg123sh from the tarball
This is a frontend to the mpg123 player. It works by starting an external mpg123 process with the -R option and feeding commands to it.
While the standard mpg123 player can be used to play back mp3s using this module you will encounter random deadlocks, due to bugs in its communication code. Also, many features (like statfreq) only work with the included copy of mpg123, so better use that one before deciding that this module is broken.
(In case you wonder, the mpg123 author is not interested in including these fixes and enhancements into mpg123).
<<lessSYNOPSIS
use Audio::Play::MPG123;
$player = new Audio::Play::MPG123;
$player->load("kult.mp3");
print $player->artist,"n";
$player->poll(1) until $player->state == 0;
$player->load("http://x.y.z/kult.mp3");
# see also mpg123sh from the tarball
This is a frontend to the mpg123 player. It works by starting an external mpg123 process with the -R option and feeding commands to it.
While the standard mpg123 player can be used to play back mp3s using this module you will encounter random deadlocks, due to bugs in its communication code. Also, many features (like statfreq) only work with the included copy of mpg123, so better use that one before deciding that this module is broken.
(In case you wonder, the mpg123 author is not interested in including these fixes and enhancements into mpg123).
Download (0.22MB)
Added: 2006-11-17 License: Perl Artistic License Price:
1071 downloads
Audio::MPD 0.12.3
Audio::MPD is a class for talking to MPD (Music Player Daemon) servers. more>>
Audio::MPD is a class for talking to MPD (Music Player Daemon) servers.
SYNOPSIS
use Audio::MPD;
my $mpd = new Audio::MPD();
$mpd->play();
sleep 10;
$mpd->next();
Audio::MPD gives a clear object-oriented interface for talking to and controlling MPD (Music Player Daemon) servers. A connection to the MPD server is established as soon as a new Audio::MPD object is created. Commands are then send to the server as the classs methods are called.
<<lessSYNOPSIS
use Audio::MPD;
my $mpd = new Audio::MPD();
$mpd->play();
sleep 10;
$mpd->next();
Audio::MPD gives a clear object-oriented interface for talking to and controlling MPD (Music Player Daemon) servers. A connection to the MPD server is established as soon as a new Audio::MPD object is created. Commands are then send to the server as the classs methods are called.
Download (0.020MB)
Added: 2006-06-23 License: Perl Artistic License Price:
1220 downloads
Audio Input-Output Library 0.2.0
Audio Input-Output Library (libaio) is meant to solve the problem of differing digital audio platforms once and for all. more>>
Audio Input-Output Library (libaio) is meant to solve the problem of differing digital audio platforms once and for all.
JACK is unnecessarily complex for most applications, and while libaos support for file output is cool, it limits what the API can do and is therefore inadequate for any kind of real time application.
libaio provides a clean application interface and a simple compile-time driver switching decision, yielding a lightweight way to use the local sound hardware without having to care what it is.
Libaios first sparkle was when I, Hod McWuff (alias, of course), found myself trying to debug ALSA implementations for libao and madplay, and another audio-related project Id been working on. That project needed multiplatform audio support of its own, with latency management, which libao lacked.
It also seemed that libao shouldnt have been trying to be both a hardware abstraction *AND* an output abstraction, and also that it seemed more intuitive as an output (live vs file) abstraction.
Enter libaio. All it does is abstract the local sound hardware platform, to present a clean, uniform interface to playing and capturing digital audio, with facilities for basic latency management. It was written from scratch around its developing ALSA driver, from many many reference sources including libao and Robert Leslies excellent madplay MP3 decoder, and of course the ALSA documentation and examples.
Libaios distinction comes from its build-time decisionmaking. It only compiles and links the best driver available for the given platform. Therefore, selecting and loading a driver no longer applies; and well it shouldnt, theres never more than one correct choice anyway.
Libaio is not intended to replace libao; rather it is intended to supplement it. The key argument is, why would anyone EVER have more than one running sound platform type on any single machine? Sure, they might have ESD or ARTS, but they more resemble file output than a live device. Theres also the OSS emulation in ALSA, but given a good ALSA driver, whod use OSS?
Then theres the fact that applications have to tell libao what "plugin" to use, and all the drivers in libao have different parameters. That means the application has to know more than it should about what it shouldnt have to see. The app shouldnt have to say more than "give me the local device for playback with *** format" or something to that effect, and start writing.
Finally, plugins for stuff like proprietary file formats, ESD et al, but there shouldnt be any need for more than one of (ALSA|OSS|SUN|WIN32|MACOSX ) on any given distribution. Therefore, binary distribution of a compiled-in driver is possible, even preferred.
It is proposed that all of the hardware drivers in libao, and madplay, and several other places, be reviewed and ported to libaio. Then, they can be removed from those packages in favor of an AIO interface.
Installation:
## building
./configure
make
## installing (as root)
make install
<<lessJACK is unnecessarily complex for most applications, and while libaos support for file output is cool, it limits what the API can do and is therefore inadequate for any kind of real time application.
libaio provides a clean application interface and a simple compile-time driver switching decision, yielding a lightweight way to use the local sound hardware without having to care what it is.
Libaios first sparkle was when I, Hod McWuff (alias, of course), found myself trying to debug ALSA implementations for libao and madplay, and another audio-related project Id been working on. That project needed multiplatform audio support of its own, with latency management, which libao lacked.
It also seemed that libao shouldnt have been trying to be both a hardware abstraction *AND* an output abstraction, and also that it seemed more intuitive as an output (live vs file) abstraction.
Enter libaio. All it does is abstract the local sound hardware platform, to present a clean, uniform interface to playing and capturing digital audio, with facilities for basic latency management. It was written from scratch around its developing ALSA driver, from many many reference sources including libao and Robert Leslies excellent madplay MP3 decoder, and of course the ALSA documentation and examples.
Libaios distinction comes from its build-time decisionmaking. It only compiles and links the best driver available for the given platform. Therefore, selecting and loading a driver no longer applies; and well it shouldnt, theres never more than one correct choice anyway.
Libaio is not intended to replace libao; rather it is intended to supplement it. The key argument is, why would anyone EVER have more than one running sound platform type on any single machine? Sure, they might have ESD or ARTS, but they more resemble file output than a live device. Theres also the OSS emulation in ALSA, but given a good ALSA driver, whod use OSS?
Then theres the fact that applications have to tell libao what "plugin" to use, and all the drivers in libao have different parameters. That means the application has to know more than it should about what it shouldnt have to see. The app shouldnt have to say more than "give me the local device for playback with *** format" or something to that effect, and start writing.
Finally, plugins for stuff like proprietary file formats, ESD et al, but there shouldnt be any need for more than one of (ALSA|OSS|SUN|WIN32|MACOSX ) on any given distribution. Therefore, binary distribution of a compiled-in driver is possible, even preferred.
It is proposed that all of the hardware drivers in libao, and madplay, and several other places, be reviewed and ported to libaio. Then, they can be removed from those packages in favor of an AIO interface.
Installation:
## building
./configure
make
## installing (as root)
make install
Download (0.15MB)
Added: 2006-04-07 License: LGPL (GNU Lesser General Public License) Price:
1298 downloads
Audio::CD 0.04
Audio::CD is a Perl interface to libcdaudio (cd + cddb). more>>
Audio::CD is a Perl interface to libcdaudio (cd + cddb).
SYNOPSIS
use Audio::CD ();
my $cd = Audio::CD->init;
Audio::CD provides a Perl interface to libcdaudio by Tony Arcieri, available from http://cdcd.undergrid.net/
Several classes provide glue for the libcdaudio functions and data structures.
Audio::CD Class ^
init
Initialize the Audio::CD object:
my $cd = Audio::CD->init;
stat
Stat the Audio::CD object, returns an Audio::CD::Info object.
my $info = $cd->stat;
cddb
Returns an Audio::CDDB object.
my $cddb = $cd->cddb;
play
Play the given cd track (defaults to 1).
$cd->play(1);
stop
Stop the cd.
$cd->stop;
pause
Pause the cd.
$cd->pause;
resume
Resume the cd.
$cd->resume;
eject
Eject the cd.
$cd->eject;
close
Close the cd tray.
$cd->close;
play_frames
$cd->play_frames($startframe, $endframe);
play_track_pos
$cd->play_track_pos($strarttrack, $endtrack, $startpos);
play_track
$cd->play_track($strarttrack, $endtrack);
track_advance
$cd->track_advance($endtrack, $minutes, $seconds);
advance
$cd->advance($minutes, $seconds);
get_volume
Returns an Audio::CD::Volume object.
my $vol = $cd->get_volume;
set_volume
$cd->set_volume($vol);
<<lessSYNOPSIS
use Audio::CD ();
my $cd = Audio::CD->init;
Audio::CD provides a Perl interface to libcdaudio by Tony Arcieri, available from http://cdcd.undergrid.net/
Several classes provide glue for the libcdaudio functions and data structures.
Audio::CD Class ^
init
Initialize the Audio::CD object:
my $cd = Audio::CD->init;
stat
Stat the Audio::CD object, returns an Audio::CD::Info object.
my $info = $cd->stat;
cddb
Returns an Audio::CDDB object.
my $cddb = $cd->cddb;
play
Play the given cd track (defaults to 1).
$cd->play(1);
stop
Stop the cd.
$cd->stop;
pause
Pause the cd.
$cd->pause;
resume
Resume the cd.
$cd->resume;
eject
Eject the cd.
$cd->eject;
close
Close the cd tray.
$cd->close;
play_frames
$cd->play_frames($startframe, $endframe);
play_track_pos
$cd->play_track_pos($strarttrack, $endtrack, $startpos);
play_track
$cd->play_track($strarttrack, $endtrack);
track_advance
$cd->track_advance($endtrack, $minutes, $seconds);
advance
$cd->advance($minutes, $seconds);
get_volume
Returns an Audio::CD::Volume object.
my $vol = $cd->get_volume;
set_volume
$cd->set_volume($vol);
Download (0.007MB)
Added: 2006-06-22 License: Perl Artistic License Price:
1222 downloads
FUPlayer 0.2.4
FUPlayer is a music manager/player/ripper/burner. more>>
FUPlayer is a music player/manager/ripper/burner.
FUPlayer is a full featured music manager and player for the GNOME desktop. With it, you can play music from your hard drive, create playlists, do real file management using its Trash, and play, rip, and burn audio CDs.
It features an interface similar to those of many modern manager-style players, but with many improvements, such as true non-modal search and browse functionality, find-as-you-type, and drag destination highlighting. It aims to be extremely user friendly and efficient to use.
<<lessFUPlayer is a full featured music manager and player for the GNOME desktop. With it, you can play music from your hard drive, create playlists, do real file management using its Trash, and play, rip, and burn audio CDs.
It features an interface similar to those of many modern manager-style players, but with many improvements, such as true non-modal search and browse functionality, find-as-you-type, and drag destination highlighting. It aims to be extremely user friendly and efficient to use.
Download (0.066MB)
Added: 2006-03-13 License: GPL (GNU General Public License) Price:
1321 downloads
ZoltanPlayer 1.0.0
ZoltanPlayer is a music playing daemon. more>>
ZoltanPlayer is a music playing daemon. It accepts remote commands via its own mini HTTP server and can use seamlessly Audio or Data CDs. Audio CDs are played internally (optionally querying CDDB info servers) and digital songs in audio CDs are played via external players. Its not limited to CDs, as a hard disk directory can also be used.
The optimal equipment for ZoltanPlayer is a CDROM-equipped computer directly connected to an amplifier or stereo. Its not a streaming server, nor a ripper, nor a simple HTTP+HTML interface jukebox (this could be done with a CGI). ZoltanPlayer integrates the controlling of CD insertion / eject with the capability of directly playing CD Audio and spawning external player for MP3 / Ogg Vorbis / whatever song files.
Current version is 1.0.0. This software only runs on Linux and its licensed under the GPL.
Here is a list of commands for ZoltanPlayer:
mount: Mounts the CD in the drive (closing it if necessary). If its a CD Audio, it will take info about it and search the local CDDB cache; if no info for this CD is found, it will query a remote CDDB server. If its a CD-ROM, it will traverse it recursively looking for playable files and the subdirectories containing songs will be treated as groups. Anyway, the list of songs will be stored in its internal database ready for playing.
umount: Unmounts the CD, and ejects it.
xmount: A combination of the previous two. If CD is mounted, umount it, and vice-versa.
hd: Reads a directory from the hard disk (this directory must be defined in the config file to be used). It will be treated the same as a CD-ROM. This command can also be used to re-read the hard disk directory contents if it has been updated since ZoltanPlayer read it.
play: Starts playing the first song.
stop: Stops playing.
pause: Pauses / unpauses the currently playing song.
next-song: Moves to the next song and plays it.
prev-song: Move to the previous song and plays it.
goto-N: Moves to song number N and plays it.
next-group: Moves to the first song of the next group and plays it If no group is defined (as in Audio CDs), it restarts playing from the first song.
prev-group: Moves to the first song of the previous group and plays it.If no group is defined (as in Audio CDs), it restarts playing from the first song.
song-info: Returns information about the song being played in one line. This command can be used from a shell script to display the info on an LCD, a ticker or something like that.
vol-up: Pumps up the volume by 5%. Only operative if the sound card mixer is being used (see sample config file).
vol-down: Lowers the volume by 5%. Only operative if the sound card mixer is being used.
cd-info: Shows the current list of songs, and information about the current group and song being played, if any.
skip-N: disable the song number N (do not play it).
rest-N: enable the previously disabled song number N.
toggle: toggle the skip selection.
toggle-playlist: toggle the skip selection for those songs inside playlists.
shuffle: shuffle the playing order of songs.
unshuffle: get back to original sorting of songs (CD order for Audio CDs, or alphabetical ordering if song files from CDROMs or hard di
Enhancements:
- Support for CD cover images.
- First stable release.
<<lessThe optimal equipment for ZoltanPlayer is a CDROM-equipped computer directly connected to an amplifier or stereo. Its not a streaming server, nor a ripper, nor a simple HTTP+HTML interface jukebox (this could be done with a CGI). ZoltanPlayer integrates the controlling of CD insertion / eject with the capability of directly playing CD Audio and spawning external player for MP3 / Ogg Vorbis / whatever song files.
Current version is 1.0.0. This software only runs on Linux and its licensed under the GPL.
Here is a list of commands for ZoltanPlayer:
mount: Mounts the CD in the drive (closing it if necessary). If its a CD Audio, it will take info about it and search the local CDDB cache; if no info for this CD is found, it will query a remote CDDB server. If its a CD-ROM, it will traverse it recursively looking for playable files and the subdirectories containing songs will be treated as groups. Anyway, the list of songs will be stored in its internal database ready for playing.
umount: Unmounts the CD, and ejects it.
xmount: A combination of the previous two. If CD is mounted, umount it, and vice-versa.
hd: Reads a directory from the hard disk (this directory must be defined in the config file to be used). It will be treated the same as a CD-ROM. This command can also be used to re-read the hard disk directory contents if it has been updated since ZoltanPlayer read it.
play: Starts playing the first song.
stop: Stops playing.
pause: Pauses / unpauses the currently playing song.
next-song: Moves to the next song and plays it.
prev-song: Move to the previous song and plays it.
goto-N: Moves to song number N and plays it.
next-group: Moves to the first song of the next group and plays it If no group is defined (as in Audio CDs), it restarts playing from the first song.
prev-group: Moves to the first song of the previous group and plays it.If no group is defined (as in Audio CDs), it restarts playing from the first song.
song-info: Returns information about the song being played in one line. This command can be used from a shell script to display the info on an LCD, a ticker or something like that.
vol-up: Pumps up the volume by 5%. Only operative if the sound card mixer is being used (see sample config file).
vol-down: Lowers the volume by 5%. Only operative if the sound card mixer is being used.
cd-info: Shows the current list of songs, and information about the current group and song being played, if any.
skip-N: disable the song number N (do not play it).
rest-N: enable the previously disabled song number N.
toggle: toggle the skip selection.
toggle-playlist: toggle the skip selection for those songs inside playlists.
shuffle: shuffle the playing order of songs.
unshuffle: get back to original sorting of songs (CD order for Audio CDs, or alphabetical ordering if song files from CDROMs or hard di
Enhancements:
- Support for CD cover images.
- First stable release.
Download (0.036MB)
Added: 2006-07-20 License: GPL (GNU General Public License) Price:
1191 downloads
Audio::Moosic 0.09
Audio::Moosic is a Moosic client library for Perl. more>>
Audio::Moosic is a Moosic client library for Perl.
SYNOPSIS
use Audio::Moosic;
$moo = Audio::Moosic::Unix->new();
$moosic->append(/home/me/somewhat.ogg);
$moosic->play;
print $moosic->current, "n";
$moosic->pause;
...
Audio::Moosic acts as a client for the musical jukebox programm Moosic (http://nanoo.org/~daniel/moosic/) by Daniel Pearson.
Using Audio::Moosic you can connect to a moosic server either via an UNIX socket or an INET socket.
<<lessSYNOPSIS
use Audio::Moosic;
$moo = Audio::Moosic::Unix->new();
$moosic->append(/home/me/somewhat.ogg);
$moosic->play;
print $moosic->current, "n";
$moosic->pause;
...
Audio::Moosic acts as a client for the musical jukebox programm Moosic (http://nanoo.org/~daniel/moosic/) by Daniel Pearson.
Using Audio::Moosic you can connect to a moosic server either via an UNIX socket or an INET socket.
Download (0.009MB)
Added: 2007-01-03 License: Perl Artistic License Price:
1025 downloads
Audacity-HPI 1.2.3
Audacity-HPI is a version of the popular Audacity Cross-Platform Sound Editor. more>>
Audacity-HPI is a version of the popular Audacity Cross-Platform Sound Editor that has been specially modified so as to work with the line of high performance audio adapters manufactured by AudioScience Corporation using the native HPI driver.
It runs on the GNU/Linux operating system and is freely available.
Compilation instructions:
First you must download wxWidgets from:
http://www.wxWidgets.org/
If you install the RPM, make sure you install the devel RPM as well, otherwise, you wont be able to compile Audacity from source.
To compile on Linux, Mac OS X, and other Unix systems, simply execute these commands:
./configure
make
make install # as root
To see compile-time options you can set, you can type
"./configure --help".
If you want to do any development, you might want to generate a configure cache and header dependencies:
./configure -C
make dep
To compile on Windows using MSVC++, please follow the instructions found in compile.txt in the "win" subdirectory.
Known issues/problems:
- Audacity can import and display MIDI files, but they cannot be played or edited.
- Linux only: Recording in full duplex on some Linux systems causes mono recordings to sound slowed-down or low-pitched. To work around this problem, set Audacity to record in stereo.
Enhancements:
- Fixed a bug that caused recording to stop or display incorrectly after about 50 minutes on some Windows systems. (This was partly fixed in Audacity 1.2.2, but still didnt work on some systems.)
- The Change Pitch and Change Tempo effects have been upgraded to use a new version of the SoundTouch library by Olli Parviainen, with better speed and higher quality.
- libsndfile has been upgraded to version 1.0.11.
- Fixed a bug that caused the program to run slowly when using the Envelope tool.
- Shift-clicking on a mute or solo button now un-mutes (or un-solos) all other tracks.
- Nyquist plug-ins can now accept strings as input. Also, a "Debug" button has been added to Nyquist effect dialogs, which allows you to see all of the output produced by Nyquist, for aid in debugging.
- When the audio file referenced ("aliased") by an Audacity project is missing, Audacity will now always play silence. Before, Audacity would sometimes repeat the most recent audio that was played previously.
- VU Meters will now always reset when audio I/O has stopped.
- Fixed a major Mac-only bug that was causing Audacity to crash at seemingly random times, but especially during audio playback and recording.
- New or updated translations: Italian (it), Hungarian (hu), Ukrainian (uk), Spanish (es). Polish (pl), Simplified Chinese (zh), Norsk-Bokmal (nb), French (fr).
<<lessIt runs on the GNU/Linux operating system and is freely available.
Compilation instructions:
First you must download wxWidgets from:
http://www.wxWidgets.org/
If you install the RPM, make sure you install the devel RPM as well, otherwise, you wont be able to compile Audacity from source.
To compile on Linux, Mac OS X, and other Unix systems, simply execute these commands:
./configure
make
make install # as root
To see compile-time options you can set, you can type
"./configure --help".
If you want to do any development, you might want to generate a configure cache and header dependencies:
./configure -C
make dep
To compile on Windows using MSVC++, please follow the instructions found in compile.txt in the "win" subdirectory.
Known issues/problems:
- Audacity can import and display MIDI files, but they cannot be played or edited.
- Linux only: Recording in full duplex on some Linux systems causes mono recordings to sound slowed-down or low-pitched. To work around this problem, set Audacity to record in stereo.
Enhancements:
- Fixed a bug that caused recording to stop or display incorrectly after about 50 minutes on some Windows systems. (This was partly fixed in Audacity 1.2.2, but still didnt work on some systems.)
- The Change Pitch and Change Tempo effects have been upgraded to use a new version of the SoundTouch library by Olli Parviainen, with better speed and higher quality.
- libsndfile has been upgraded to version 1.0.11.
- Fixed a bug that caused the program to run slowly when using the Envelope tool.
- Shift-clicking on a mute or solo button now un-mutes (or un-solos) all other tracks.
- Nyquist plug-ins can now accept strings as input. Also, a "Debug" button has been added to Nyquist effect dialogs, which allows you to see all of the output produced by Nyquist, for aid in debugging.
- When the audio file referenced ("aliased") by an Audacity project is missing, Audacity will now always play silence. Before, Audacity would sometimes repeat the most recent audio that was played previously.
- VU Meters will now always reset when audio I/O has stopped.
- Fixed a major Mac-only bug that was causing Audacity to crash at seemingly random times, but especially during audio playback and recording.
- New or updated translations: Italian (it), Hungarian (hu), Ukrainian (uk), Spanish (es). Polish (pl), Simplified Chinese (zh), Norsk-Bokmal (nb), French (fr).
Download (4.4MB)
Added: 2006-02-16 License: GPL (GNU General Public License) Price:
1348 downloads
RealPlayer 10.0.9 GOLD
RealPlayer plays streaming audio and video over the Internet in real-time. more>>
RealPlayer plays streaming audio and video over the Internet in real-time. RealPlayer plays RealAudio, RealVideo, MP3, 3GPP Video, Flash, SMIL 2.0, JPEG, GIF, PNG, RealText, Ogg Vorbis, RealPix and Ogg Theora.
It is available for Windows, Macintosh, Pocket PC, Nokia 9200 Series, Nokia 7650, Palm OS 5-based handhelds, Linux, Solaris, and many Unix variants.
Main features:
Play popular datatypes
- RealPlayer@ 10 supports RealAudio, RealVideo 10, MP3, Ogg Vorbis and Theora, H263, AAC and more. Get ready for accelerated video, full screen playback, and a lot more to play.
Mozilla-compatible plug-in
- You can now watch and listen to embedded video right in your Web browser without opening RealPlayer. Enjoy media from your favorite music and news sites with just one click.
New UI adopts your theme
- The elegant UI design is based on GTK technology. That means the player adopts the theme youve chosen, and blends itself accordingly into your desktop environment.
Enhancements:
- fixes
<<lessIt is available for Windows, Macintosh, Pocket PC, Nokia 9200 Series, Nokia 7650, Palm OS 5-based handhelds, Linux, Solaris, and many Unix variants.
Main features:
Play popular datatypes
- RealPlayer@ 10 supports RealAudio, RealVideo 10, MP3, Ogg Vorbis and Theora, H263, AAC and more. Get ready for accelerated video, full screen playback, and a lot more to play.
Mozilla-compatible plug-in
- You can now watch and listen to embedded video right in your Web browser without opening RealPlayer. Enjoy media from your favorite music and news sites with just one click.
New UI adopts your theme
- The elegant UI design is based on GTK technology. That means the player adopts the theme youve chosen, and blends itself accordingly into your desktop environment.
Enhancements:
- fixes
Download (5.5MB)
Added: 2007-08-12 License: GPL (GNU General Public License) Price:
601 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above audio play 1.029 search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed