[LAD] LV2 Oscilloscope

Robin Gareus robin at gareus.org
Thu Oct 10 19:27:55 UTC 2013


On 10/10/2013 08:37 PM, Lars Luthman wrote:
> I would just bypass the LV2 host altogether and use shared memory to get
> the audio data to the GUI. This is what the DSSI plugin does. This means
> that it will not work if the plugin and the GUI are running on separate
> machines, but that seems to be pretty rare.

These days it not as rare as it used to be.

A scope is just 1D - say 1024 pixels width -> 1K values that need to be
transmitted from the back-end to the UI. No need to use shared memory,
really.

The only reason for using shmem would be transmitting _all_ the raw
audio-data for upsampling in the UI-thread[1]. But even so, 1.5 Mbit/sec
is nothing these days. Besides, up/down-sampling requires a ringbuffer
anyway, and shmem won't buy you anything.

Message-passing (LV2 Atom messages) can go directly into the UI's
ringbuffer (no extra copy) and will allow the UI to run remotely.

2c,
robin

[1] Upsampling can be CPU heavy, but since it's for display only, it
should not cause DSP load -> delegate to UI-thread.


More information about the Linux-audio-dev mailing list