Overview of APRL

Quick Index


APRL is an object-oriented language built in C, C++, and Tcl. It consists of a real-time scheduling system and a specification language for defining a signal processing network to operate on audio data.

While you don't have to know much about Tcl to get started with APRL, you can use Tcl and the Tk toolkit to augment APRL's capabilities immensely and build many clever applications. If you don't know Tcl already, a good introduction is the book Tcl and the Tk Toolkit by John Ousterhout.

Basic Description

APRL programs have to do two major things: they have to create a signal processing network, and they have to run data through that network.

The basic data structure in APRL is the sound processing object . Objects get linked together to form a signal processing network, and come in four basic types:

In addition to these four kinds of objects, there are two special kinds of objects:

A Small Example Program

Here is an example of a small APRL program, which we will examine line by line.
scheduler	s
audiosrc	as	-sampleRate 11025
bpfilter	bpf	-centerFreq 440 -input as
rms		pwr	-sampleRate 100
dB		.	-ref 0.01
wavesink	.ws1	-scale 0.05

pack		.ws1

proc run {} {
  s step
  after 10 {run}
}

run

The effect of this program is to calculate the power of the live audio signal in a narrow band centered on 440 Hz (the 'A' above middle 'C'), and display the power in a graph on the screen.

Go on to the APRL commands page.
Go back to the APRL page.


eds@media.mit.edu
MIT Media Lab Perceptual Computing Section
$Header: /ti/http/projects/aprl/RCS/overview.html,v 1.2 95/02/26 19:01:14 dpwe Exp $