Banner showing base of Eiffel tower


Download version 1.4.8: Windows or Linux

Multimedia Library: Laabhair Audio Analysis Framework

This library has 13 classes.

ECF: laabhair.ecf

Source code: directory list

Status: No longer maintained

The Laabhair* audio analysis framework was developed at the Digital Media Centre at the Dublin Institute of Technology to do audio analysis with Eiffel in real-time, presenting graphical audio representations using an Adobe Flash player GUI.

(*Laabhair is the Gaelic for talk.)

Benefits for various developer audiences

Eiffel Programmers

  1. Easy access to the advanced sound analysis capabilities of Praat and conversely gives Praat programmers easy access to the advanced engineering capabilities of Eiffel. Praat script is an elegant little language with an ADA like syntax that does for sound analysis what PL/SQL does for database querying. The level of Eiffel required to make use of the framework is very minimal. The essence of a Laabhair application can be understood from a single Eiffel class.
  2. Easy access to the advanced presentation capabilities of Flash and conversely gives Flash programmers easy access to the advanced engineering capabilities of Eiffel. The most significant part of this framework is an elegantly simple XML-orientated network-RPC protocol allowing Eiffel to make asynchronous calls to ActionScript procedures in a Flash application. Unlike SOAP, Laabhair RPC messages have a very transparent syntax that is self-explanatory. Communication in the other direction is through parameterless commands representing Flash button clicks.

Praat programmers

Easy access to the advanced presentation capabilities of Flash and conversely gives Flash programmers easy access to the advanced sound analysis capabilities of Praat.

Structure of the Laabhair framework

The framework is used to develop both an Eiffel sound analyis program and a Flash presentation program which communicate over a network socket. The analyzer has a small GUI consisting of a status light and a sound level meter and a minimize and close caption bar button. The analyzer window situates itself in the top right hand corner. The presentation application is launched in fullscreen mode by the analyzer. The analyzer window is set to be "always on top" so it is not obscured by the Flash application. A button on the Flash GUI is used to stop and start the analyzer taking input from the mic. Another button closes the application.

The sound analysis program implements an application specific Praat analyzer which is fed by a continuous stream of small sound clips streamed from audio input. (Typically of 100 millisecs duration) The analyzer class contains an embedded Praat script which is run for each sound clip sample. The analyzer does some calculation on the results (in Eiffel) before calling (asynchronously) a Flash presentation procedure with the results.

The framework allows editing of application configuration values in a dialog activated from a drop down menu. Each time the analyzer is activated any edit changes are propagated to registered listeners. Out of the box the configuration edit dialog allows you to change the following parameters:

All of the configurable values can also be set from the command line at startup.

Related libraries in Eiffel-Loop

Directory: library/multimedia/laabhair

[ . ]

. /UI/Flash


[ . ]


Lb application


Consumes audio clips for analysis and posts results as XML remote procedure call messages


Basic Laabhair user defined application configuration


Lb constants


Lb shared configuration



Proxy to the Flash object defined by the interface: com.laabhair.Application


Lb microphone flash ui listener



Lb audio input window


Proxy object to (asynchronously) call procedures of LB_AUDIO_INPUT_WINDOW from an external thread (non GUI thread)


Lb basic config edit dialog


Lb console manager dialog


Lb main window


Generated by h2e from the file D:\Articulate!\Programming\eiffel\soundbow\soundbow.rc.