[2825] in comp.os.os2.announce archive
BETA: AudioRiver MM system
daemon@ATHENA.MIT.EDU (Norbert Heller)
Wed Apr 23 16:50:21 1997
To: os2ann.DISCUSS@bloom-picayune.MIT.EDU
Date: Wed, 23 Apr 1997 12:46:45 GMT
From: NorbertHeller@swol.de (Norbert Heller)
Reply-To: NorbertHeller@swol.de (Norbert Heller)
Reply-to: NorbertHeller@swol.de (Norbert Heller)
[Followups directed to comp.os.os2.multimedia]
---------------------------------------------------------------------
AUDIORIVER MM
version 2 BETA 1
kernel release 2.1
by
- Filippo Sartori : sartori@pdigi1.igi.pd.cnr.it
- Norbert Heller : norbertheller@swol.de
The AudioRiver MM beta is available for download at
http://www.bmtmicro.com/catalog/heller
as
http://194.231.6.35/util/share/audio_river_sw1.zip
or at
http://hobbes.nmsu.edu
The AudioRiver beta comprises sample applications from the
AudioStream library, which will be available on demand.
The applications are a text mode and a PM player, a text mode and a
PM mixer.
Developers Versions for Freeware / Shareware /Commercial Developers are already
available, so that you can use the sound and mixer, imput & output libraries in
your own files.
(Add Sound to your Application with only 20 lines of code !!)
The AudioStream library is the core of the implementation of all these tools.
The library is a collection of classes that implements a fully portable
multimedia subsystem. All the OS2 specific calls are relegated in specific
classes that will be adapted for each ported platform.
The main advantage of the library is the plug&play concept. All the higher
level objects use the feature of the inner kernel to allow a glueless link. So
you can design a player application by simply creating a reading object and a
music-output object and linking them together just like this:
music >> player;
But the plug&play goes even further:
music >> player;
player >> monitor;
This syntax means you pipe the output through two objects. There is virtually
no limit to the amount of chaining you can do. In the upcoming v2.5 of the
kernel the syntax is also expanded to allow multiple inputs and outputs:
player(3) >> monitor[0] means that the output #3 of the player is connected to
the input 0 of the monitor.
These links are highly efficient! The consume less than 1% of the processing
power in a normal application. These links are interprocessor capable: if you
have a multiprocessor system you can link objects that runs in a different CPU.
(they are obviously multitask enabled). This capability is the base for the
RTMMM mixer that is shipped with the distribution. The mixer is an object that
resides in a separate task. When you play to it you establish a link to the
RTMMMD demon task.
In version 2.5 these links have been enhanced to allow connection and
disconnection of object when they are playing! So you can start with a reader
connected to a player, you listen to the music and suddenly decide to see the
spectral output. You simply start the FFT monitor and plug it to the player.
Now you are fed up of the stupid bar graphs and you simply unplug it. All this
while listening to the same music. This technology is now demoed in the RTMMMD
mixer demon. It in facts allows multiple inputs to play together on the same
DART and allows an input to be attached and removed any time without hiccups in
the overall music result.
An other key feature of the system, which will enhanced in v 3.0 of the
library, is the AudioPacket elaboration. Each object is in fact enabled to
accept any sort of input (stereo/mono/any frequency/16/8 bits) to produce your
desired kind of output. This feature is visible in the Playlist GroupAudiStream
object: It is a container class which inherited the interface of the reader
classes. So you can play the container which will mimic a multi track music
file (just like a CD). The tracks can have any frequency, bitness, number of
channels, and therefore the stream produce will vary during the time, but
nevertheless the player will play it at your desired frequency. No special
coding is required!
Comparison on the MPEG Player's features
AudioRiver MPEG123 Maplay96 Maplay95
====================================================================
CPU Usage MP3 43% 42% 45% 49%
128 kbps Stereo
P-180/Warp4/64MB
(with ODESK 1.5)
Driver Type DART/Rtmmm MMPM/2 MMPM/2 MMPM/2
RTMMM Mixer YES NO NO NO
Support
APP Type VIO + PM VIO VIO VIO
Seeking on YES NO NO NO
MPEG files
Pausing on YES NO NO NO
MPEG files
Developer YES NO NO NO
API
Expandable to YES NO NO NO
other Filetypes
Other Filetype MOD Files -- -- --
Support CD Tracks
WAV Files
RAW Files
MIDI Files
(any other
future Input
Stream also)
OUTPUT DART MMPM2 MMPM2 MMPM2
Support RTMMM File File File
WAV Files
MPEG Encoding
(any other
future Output
Stream also)
Realtime YES YES NO NO
Downsampling
Realtime Mixing YES NO NO NO
to other APPS
Simultaneous YES NO NO NO
Write to File &
Playback
Playlist Support YES NO YES YES
(1 in VIO ) (1) (1)
(5 in PM-APP)
Volume Control YES NO NO NO
Support
// NorbertHeller@swol.de
//
// home : http://www.bmtmicro.com/catalog/heller
// home of albatros CD & Media player - infoPM - PMcd2Wav
=====================================================================
| c.o.o.announce submissions: POST [or email comp-os-os2-announce@uunet.uu.net]
| Correspondence to the COOA Moderator: mailto:lfirrantello@bix.com .
| Please see: http://www.bix.com/pub/os2ann/pindex.htm for posting guidelines