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

Robin Gareus robin at gareus.org
Thu Jun 17 14:23:14 UTC 2010


On 06/17/2010 06:29 AM, 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?
> 
> Jeremy

There's jack.scope that comes with jackd, jack_oscrolloscope[1] and
QoscC[2] which display the wave-form in realtime on-screen (but IIRC
won't save the graphic to file).
"bitscope" is nice for detecting value-range issues (sticky bits,
Nan..); "baudline" has a waveform option.. and a more generic
Oscilloscope: "xoscope"

As for "plotting" the signal: most audio-editors will do. just fire up
ardour or any sound-editor, record the signal & take a screenshot :)
Well, there's a couple of utilities to render wave-forms but all tools I
know there operate on files and not real-time.

http://apps.linuxaudio.org/apps/categories/scopes_and_realtime_visualizers


[1] http://das.nasophon.de/jack_oscrolloscope/
[2] http://flup.homelinux.org/qoscc.html



More information about the Linux-audio-dev mailing list