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@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
This archive was generated by hypermail 2.1.8 : Thu Jun 17 2010 - 12:15:04 EEST