On Thu, Jun 17, 2010 at 3:20 AM, Peter Nelson <[email protected]> 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 > [email protected] > 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?
_______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
