Advanced Audio Framework
- AMPhibian® is entirely software-based and therefore configurable for different levels of CPU usage and audio quality
- Allows implementation on a variety of devices from PCs to PDAs and Smartphones
- PPC/Mac OSX
|Fixed Point Arithmetic.
||Suitable for platforms without FPU. These include most of today's embedded devices.
|Low Resource Consumption.
- Low Memory Footprint
- Low CPU usage requirements
- Scalable in both memory and CPU usage
|Excellent for implementation on embedded platforms.
|High Level C++ APIs.
Different interfaces suited for application requirements. Basic APPKIT SDK interfaces are:
Custom-built applications can be designed by combining different basic APPKIT SDK interfaces.
- Player - Standalone Player
- PlayerCF - Player with crossfade capability
- Mixer - Standalone Mixer
- Recorder - Pre-process, Encode and Save
- Processor - Processing only
- PlaySound - One-shot playback of short audio clips
- Easy to use
- Rapid application development
- Short learning curve
- Quality documentation
Support for storing and activating:
- Application state
- Module settings
- Defaults and Presets
- Provides a standardized way for Modules to store their parameters in XML form
- Serialization handled with little developer intervention
- Easily applicable vendor customized presets for different audio devices in order to achieve best quality playback
|Platform Independent Messaging System.
- State Change Messages (Started, Stopped, Paused, EOS, Closed)
- Stream Information Messages
- Module Update Messages (VU Meter Update, Frequency Analyzer Update…)
|Simplifies user interface design.
||Analysis information and position events are always synchronized with playback.
Binary, run-time loadable plug-ins perform function such as:
- Codecs (MP3 Decoder, AAC Decoder, AMR Codec…)
- Effects (Graphical Eq/Analyzer, Resampler, Echo…)
- Input modules (File, CDA, HTTP Streaming, MIDI…)
- Output modules (FileSink, WaveSink)
- Variety of audio applications with different degree of complexity
- Online effects update provided by vendor (defined throughout terms of agreement)
|"On the fly" Module Insertion.
||Insert/Remove effects without playback interruption.
Part of the AMPhibian® distribution that enables third party Module development.
- Enables applications engineers to create their own special feature/purpose Modules
- Customized audio playback solutions
- A rich set of utility libraries provided for handling the media library, playlist and meta-data information (e.g. ID3 Tags of all flavors)
- Fast development of fully functional audio application
|Advanced Playlist Manipulation.
Shuffle, Repeat, Insert, Remove, Query, Sort, Viewing by different attributes (genre, artist, year…)…
- Effective manipulation with playlist entries
- Cataloging music
Simplifies track analysis (ID3 Tag, media format, spectral content, peak volume, RMS, begin/end silence, beat detection…). Options are defined through easy-to-use interface.
|Detailed track information and analysis for achieving high quality audio playback, e.g.:
- Setting each track's volume automatically
- Optimizing crossfade option
- Removing the begin/end silence
|"Batteries included" Distribution.
AMPhibian® distribution comes in "Batteries included" form with both APPKIT and MODKIT SDKs and a set of different Modules.
|Many Modules are already available, with more in development. Ideally, customers should only need to write their own Modules when they have very specific needs, such as obfuscation or deploying on closed, proprietary platforms.
AMPhibian® is designed to be a portable framework. It is entirely software-based and therefore configurable for different levels of CPU usage and audio quality. The use of system-dependent tools/libraries is reduced to a minimum and entire framework is based upon fixed-point arithmetic. This, along with the low resource consumption (low memory footprint and low CPU usage requirements) makes it suitable for platforms without FPU (majority of today’s embedded devices.
The AMPhibian® Framework can be used to implement various audio applications on many different devices from PCs to PDAs and smart phones. The development of such applications is the same for all of supported platforms. Therefore, a developer doesn’t have to put an extra effort to port an application to a different platform, which makes the use of AMPhibian® Framework extremely efficient and suitable when multi-platform functionality is required.
AMPhibian® is currently available on:
Besides currently available platforms, AMPhibian® Framework is designed to be portable to any platform with audio streaming capability and a C++ compiler.
- PPC/Mac OSX
back to F&B table
Standard AMPhibian ®Framework distribution provides a set of high level interfaces (APPKIT SDK) suited for various application requirements. In addition to presenting many new audio playback features, APPKIT interfaces solve many issues connected with building audio clients, making them simple and effective. Their technical superiority and flexibility makes them suitable for developing wide range of different audio applications from small and simple to those of larger scope of functionality.
The standard APPKIT SDK interfaces are:
Listed standard APPKIT interfaces are designed to meet common audio application demands e.g. playing an audio file or mixing many streams into one and playing them simultaneously. Creating custom-built/special featured audio applications can be done by combining standard interfaces. Unlike many other currently available SDKs, Amphibian’s set of APIs is easy to use and enable developers to obtain maximum performance in the least possible time.
- Player – Standalone player
- PlayerCF – Player with crossfade capability
- Mixer – Standalone mixer
- Processor – Processing only – no audio output
- PlaySound – One-shot playback of short audio clips
- Recorder – Pre-process, encode and save
back to F&B table
The AMPhibian® serialization system provides a support for storing/retrieving different sets of application settings, and consequently makes customization of audio applications more elegant and easy to perform. Apart from storing/retrieving user defined application settings, this system also enables easy manipulation of user or vendor defined module (e.g. audio effect) defaults and presets.
Application settings, as well as module parameters, are stored in the form of an XML file. Since XML is independent of hardware, software and application, it makes a good, multiplatform solution for storing and distributing module defaults and presets.
Serializing module parameters by using XML files enables different module developers to effectively distribute various sets of presets and therefore make their modules more applicable when it comes to customizing audio applications. Audio equipment manufacturers can also distribute supporting presets for their devices (e.g. headphones, speakers, etc.). That way best quality playback is achieved regarding music genre and environment conditions.
back to F&B table
The AMPhibian® Framework is suitable for a variety of audio applications of different degree of complexity - from simple command line tools for e.g. audio format conversion to more advanced multi-stream player applications. The system is designed to consist of processing modules, which are connected into chains for processing or playback of the audio stream. AMPhibian® Framework provides an API for effective control of streams built this way.
By grouping different modules together, developers can add product-differentiating audio effects, codecs, and data delivery methods e.g. file or HTTP stream. File security and rights management methods can be added if such demands are put on an application. Therefore, applications built with the AMPhibian® APPKIT SDK are extendable. New features are easily added by adding new modules.
The Framework enables for modules to be compiled as dynamic libraries and loaded at run-time without playback interruption. Therefore it is possible to write an application that can use filters/effects developed as AMPhibian® modules by a third-party vendor.
Generally, AMPhibian® modules can be divided into following groups:
|Source Modules - Modules used to read data from a storage
- File Input
- HTTP Streaming Input
- MIDI (due Q1 2005)
|Sink Modules - Modules that render data to a device such as audio card or file on disk
|Converter Modules - Modules used internally to manipulate raw audio data
- Sample Rate Converter
- Sample Format Converter
- Mono-Stereo Converter
|Codecs - encoders/decoders
- MP3 Decoder
- AAC Decoder (due Q1 2005)
- AMR Decoder/Encoder
- OGG Vorbis Decoder
- WMA (due Q1 2005)
|Filter/Effect Modules - Modules that process audio signal to achieve specific audio effect
- Compander (Compressor/Expander)
- Graphic Equalizer
- Parametric Equalizer
- Silence Detector
- Volume Ramp
- Frequency Analyzer
back to F&B table
The AMPhibian® Framework provides a rich set of utility tools for handling the most common issues related to audio applications development such as media library, playlist and meta-data information.
Standard AMPhibian® utility tools are:
- Playlist – provides advanced playlist manipulation
- Track Checker – simplifies track analysis
- ID3 Tag Reader/Writer
- Archive – enables serialization
Provided utilities make the development of fully functional and feature versatile audio applications fast and efficient. Their functionalities, apart from development purposes, also improve audio playback experience and handle many important issues closely related to playback itself e.g. crossfade option, automatically setting the track’s volume, detecting and clipping silence at begin/end of track, cataloging music etc.
back to F&B table