[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