Home
 

Framework Overview

 

Advanced Audio Framework

FEATURES BENEFITS
Portability.

  • 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 Tablets to Smartphones
Runs on:

  • x86/Windows
  • x86/Linux
  • ARM/Windows Phone
  • ARM/Linux
  • 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:

  • 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

Custom-built applications can be designed by combining different basic APPKIT SDK interfaces.

  • Easy to use
  • Rapid application development
  • Short learning curve
  • Quality documentation
Serialization.
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.
Exact Timing. Analysis information and position events are always synchronized with playback.
Modular Design.
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.
MODKIT SDK.
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
Utility Libraries.
  • 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
Track Checker.
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.

 



Portability

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 tablets to 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:

  • x86/Windows
  • x86/Linux
  • ARM/Windows Phone
  • ARM/Linux
  • Mac OSX

Besides currently available platforms, AMPhibian Framework is designed to be portable to any platform with audio streaming capability and a C++ compiler.

 


back to F&B table 

 



High Level C++ API’s

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:

  • 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

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.

 


back to F&B table 

 



Serialization

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 

 



Modular Design

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:

 

FUNCTIONALITY TYPE
Source Modules – Modules used to read data from a storage
  • File Input
  • HTTP Streaming Input
  • MIDI (due Q1 2005)
  • Mic
Sink Modules – Modules that render data to a device such as audio card or file on disk
  • Wave Output
  • File Output
Converter Modules – Modules used internally to manipulate raw audio data
  • Sample Rate Converter
  • Sample Format Converter
  • Mono-Stereo Converter
Codecs – encoders/decoders
  • MP3 Decoder
  • AMR Decoder/Encoder
  • OGG Vorbis Decoder
Filter/Effect Modules – Modules that process audio signal to achieve specific audio effect
  • Compander (Compressor/Expander)
  • Echo
  • Gain
  • Graphic Equalizer
  • Parametric Equalizer
  • Reverb
  • Silence Detector
  • Silencer
  • Tempo
  • Volume Ramp
  • Frequency Analyzer
  • VU-Meter


back to F&B table 

 



Utility Libraries

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