[LAD] Real-time plotting of audio/ oscilloscope.

Jeremy jeremybubs at gmail.com
Thu Jun 17 08:09:08 UTC 2010


On Thu, Jun 17, 2010 at 3:20 AM, Peter Nelson <peter at fuzzle.org> wrote:

> On Thu, 2010-06-17 at 00:29 -0400, Jeremy wrote:
> > Hi,
> >
> >
> > When I'm programming, I find it immensely helpful to be able to plot
> > audio data at different points in its processing, for debugging, and
> > to test new ideas.
> >
> >
> > Essentially I want an oscilloscope, which plots each chunk of 1024
> > samples.
> >
> >
> > I've tried using libplot, but it seems too slow.  It's causing
> > constant xruns, even when I only plot every 5th sample.
> >
> >
> > I thought that maybe libplot was too abstract, and that I needed to
> > draw the pixels on the screen directly.  I tried using SDL, but it
> > caused excessive xruns also.  Simply setting 48000 pixels per second
> > was enough to cause the flow of xruns.  This is  *not* erasing the
> > screen, just drawing the points.  I'd expect that erasing the screen
> > is the slow part, but apparently not.
> >
> >
> > At this point I'm not sure if it's even possible to plot the audio
> > data in realtime.  I did a rough calculation, that on my 2 Ghz cpu, it
> > should have roughly 40,000 cycles to process each sample.  It seems to
> > me that considering running the whole plugin only uses 1/4 of my cpu,
> > the other 30000 cycles should be plenty to put a pixel on the screen.
> >
> >
> > So I would guess that something else is the bottleneck, like my video
> > chip, or maybe the libraries I'm using.
> >
> >
> > So basically my question is:  Has anyone else had any luck with
> > plotting audio data in real time, and if so, how?  Is it not possible
> > to plot every sample, but only a certain percentage of them?  Is there
> > a fundamental restriction on doing so, or is my problem in software?
>
> I'm going to assume you're plotting directly within the realtime process
> thread, which will never work. Push the audio data in a ring buffer,
> then do the plotting in your main thread.
>
> --
> Peter
>
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev at lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev
>
>
Yes, I'll bet that's my problem. Is it because writing to the screen is high
bandwidth but high latency?   Or is it just not possible to draw anywhere
near every sample?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20100617/89afad49/attachment.html>


More information about the Linux-audio-dev mailing list