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

From: James Morris <james@email-addr-hidden-art.net>
Date: Thu Jun 17 2010 - 10:57:26 EEST

On 17 June 2010 08:20, Peter Nelson <peter@email-addr-hidden> 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.
>

How about taking a look at some of the sound editors, snd, mhwaveedit,
etc? Or perhaps Freqtweak?

I seem to recall seeing a reference somewhere recently, to
oscilloscope type software, which also might be useful to read the
code of, but can't remember where.

James
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Thu Jun 17 12:15:05 2010

This archive was generated by hypermail 2.1.8 : Thu Jun 17 2010 - 12:15:05 EEST