[mad-dev] Equaliser style effect.. i.e visualisation.

Thomas Rathbone tomrat@hplb.hpl.hp.com
Mon, 13 May 2002 11:49:04 +0100


I'm using the high level API. Could I implement the bar drawing code in
the filter callback or would this cause problems/delays with the
decoding process? Otherwise how do I get at the frame structure?

Thanks.



Rob Leslie wrote:

 > On Thursday, May 2, 2002, at 07:56  AM, Thomas Rathbone wrote:
 >
 >> In what stage of the decoding process can i find the information I
 >> would need to create an equaliser (a frequencies bar graph)
 >> visualisation?  Do I just look at the subband levels or is that
 >> totally wrong?  Has anybody done this?
 >
 >
 > You could look at the subbands after decoding a frame, yes, before
 > synthesis (or actually whether or not you perform synthesis.) The
 > subbands are somewhat coarse, and there is some overlap between them,
 > so implementing an equalizer *control* with them is tricky, but they
 > should be sufficient for a simple *visualization*.

 >
 > The subband samples are found in:
 >
 >     frame->sbsample[channel][timeslice][subband]
 >
 > where `channel' is less than MAD_NCHANNELS(&frame->header),
 > `timeslice' represents an output unit of 32 PCM samples and is less
 > than MAD_NSBSAMPLES(&frame->header), and `subband' is 0-31 covering
 > the frequency spectrum in equal-width bands up to the Nyquist frequency.
 >
 > One thing to keep in mind is that the subband values are both positive
 > and negative. The general range is +/- MAD_F_ONE, but actually any
 > value is possible.

 >
 >
 > --
 > Rob Leslie
 > rob@mars.org
 >