APRL To Do list
APRL is in its early stages. Here are some of the things we think
it really needs that we want to add soon. Please feel free to
make additional suggestions.
- Expression evaluator - something that allows you to
write an expression involving data sources, constants and
Tcl variables, and will generate a stream as output. This
is quite hard, but I think quite possible.
- Multi-channel streams - At the moment, all the data sources
are intrinsically mono, which is a bit of a drag, particularly
if we'd like to do multi-microphone beamforming within APRL
(which we would). But it utterly precludes things like
filterbanks, which we'd also like. The idea is to go through
everything and add a Channels attribute to every stream,
and make all the operators treat it sensibly. Multi-channel
data will be stored as an interleaved vector, the easiest thing
for vectors of uncertain length.
- Clearer initialization logic - Not something to concern
the user unduly, but a note to myself; at the moment, there
is confusion about how and when each object sets its sampling
rate and buffer size - since, in general, these depend on the
input, which can be changed dynamically. I think the buffer
size should be determined by a global value known to the scheduler,
and the sampling rate should be updated via a propagation scheme
called whenever the input changes.
- Pitch tracker - Bill Gardner has promised to write us one
of these. Definitely needed, and I know he can do a good job.
- Filters - The current low-pass filter is an embarassment,
and we need a high-pass filter too. Figure out a good design
algorithm and a correct specification.
- Grayscale output - If we had multi-channel data types
and filterbanks to feed them, we could have an equivalent of
the chart-recorder display object, but handling multi-channel
data and displaying it as a spectrogram. It wouldn't be
that fast, but I bet it could be useful.
- Better waveform display - The current waveform display is
very limited. It needs to be able to access a longer buffer
than it displays (to provide scrollback, maybe even in a dynamic
way : "display from 0.2 s to 0.1 s into the past), and we need
to be able to select regions in the displays to save to file.
- Matched filter - Everyone knows you can't do pattern
recognition without a matched filter. The idea here is to
allow people to select patterns with the better waveform display,
save little snippets out to disk, then read them in again
as templates for the matched-filter operator in a different
program. This operator just keeps calculating those multi-channel
inner products till it's blue in the face.
- Interaural parameter calculation - i.e. cross-correlators
etc. Yeah, yeah, we want everything to be done inside
APRL.
If you want to write any of these, we're taking contributions.
We'll even pay you -- with gratitude ;-)
Go back to the APRL page .
DAn Ellis <dpwe@media.mit.edu>
MIT Media Lab Perceptual Computing
$Header: /ti/http/projects/aprl/RCS/todo.html,v 1.2 95/02/26 19:01:21 dpwe Exp $