Coder Social home page Coder Social logo

sisco.lv2's Introduction

Simple Scope

A simple audio oscilloscope with variable time scale, triggering, cursors and numeric readout in LV2 plugin format.

The minimum grid resolution is 50 micro-seconds - or a 32 times oversampled signal. The maximum buffer-time is 15 seconds.

Currently variants up to four channels are available.

For documentation please see http://x42.github.io/sisco.lv2/

Install

Compiling this plugin requires the LV2 SDK, gnu-make, a c-compiler, libpango, libcairo and openGL (sometimes called: glu, glx, mesa).

  git clone https://github.com/x42/sisco.lv2.git
  cd sisco.lv2
  make submodules
  make
  sudo make install PREFIX=/usr

Note to packagers: The Makefile honors PREFIX and DESTDIR variables as well as CFLAGS, LDFLAGS and OPTIMIZATIONS (additions to CFLAGS), also see the first 10 lines of the Makefile. You really want to package the superset of x42-plugins.

Usage

# Just run the stand-alone jack app
x42-scope
# Some info
man x42-scope

Screenshots

screenshot screenshot

Oscilloscope vs Waveform Display

screenshot

Background Information

This project was created to test and exemplify LV2 Atom-Vector communication and demonstrate the short-comings of LV2 thread synchronization and LV2Atoms for visualization UIs:

LV2Atom messages are written into a ringbuffer in the LVhost in the DSP-thread. This ringbuffer is sent to the UI in another thread (jalv and ardour use g_timeout() usually at 40ms ~ 25fps), and finally things are painted in the main thread.

Accurate (low-latency, high-speed) visualization is a valid use-case for LV2 instance access in particular if visual sync to v-blank is of importance. This is not the case for a scope. A ringbuffer using message-passing is sufficient since signal acquisition is usually perform on a trigger condition and subject to hold-off times.

The basic structure of this plugin is now available as eg05-scope example plugin from the official lv2plug.in repository.

Compared to the example, this plugin goes to some length to add features in order to make it use-able beyond simple visualization and make it useful for scientific measurements. It is however still rather simple compared to a fully fledged oscilloscope. See the TODO file included with the source.

sisco.lv2's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sisco.lv2's Issues

window grabs focus when mouse is over it

The i3 window manager has a keyboard shortcut that lets you toggle focus between the foating and the normal windows.
When the scope is floating and the mouse is over it, it won't release focus.

I know of no other program that does this.

This is whith the stand-alone jack version, not tested with other versions.

Using this with lv2vst problems

Hi,
first of all, thanks for all the great projects under the x42 banner!

I'm aware that you're not supporting vst (there's an issue already about that), so I tried to get this working in Bitwig on Linux Mint by using the lv2vst bridge.

Are there any reports on people getting this to work or are there any reasons this shouldn't work?

Here's some debug on what I did

lv2vst

I successfully build this so all should be working, but Bitwig doesn't find any of the x42 plugins.

The docs seems to indicate that x42 plugins should be working

git clone https://github.com/x42/lv2vst
cd lv2vst
make
mkdir -p ~/.vst/lv2vst
cp lv2vst.so ~/.vst/lv2vst/lv2vst.so

# this assume you have x42-plugins, specifically x42-eq installed
# or use `lv2ls` to find some LV2 URI/URI-prefixes.
echo "http://gareus.org/oss/lv2/fil4#mono" > ~/.vst/lv2vst/.whitelist
echo "http://gareus.org/oss/lv2/fil4#stereo" >> ~/.vst/lv2vst/.whitelist

I added the sisco plug

> cat .vst/lv2vst/.whitelist 
http://gareus.org/oss/lv2/fil4#mono
http://gareus.org/oss/lv2/fil4#stereo
http://gareus.org/oss/lv2/sisco#4chan

x42-plugins

They are installed

> apt search x42-plugins 
i   x42-plugins                     - Collection of LV2 plugins                 

> lv2ls
http://gareus.org/oss/lv2/balance
...
http://gareus.org/oss/lv2/sisco#3chan
http://gareus.org/oss/lv2/sisco#4chan
http://gareus.org/oss/lv2/sisco#Mono
http://gareus.org/oss/lv2/sisco#Stereo
...
http://gareus.org/oss/lv2/xfade
http://kxstudio.sf.net/carla/plugins/audiofile
...
http://kxstudio.sf.net/carla/plugins/miditranspose

All the kxstudio plugins are showing up in Bitwig, which is why I find this strange. Unless the x42 plugs actually shouldn't work with the lv2vst bridge.

Thanks a lot for any insight that might help me get this up :)

Support for CV data signals?

CV data signal can go above 1.0, but there is an upper limit of 1.0 on sisco.lv2.

Might a CV version of the scope be possible?

Porting to other platforms/formats (VST, AU)?

Stumbled upon this Oscilloscope (on a KVR Audio Forum). Look very usefull! Are there any plans to support other platforms/formats? Like VST? I bet the community would appreciate. I would.

CV port varient?

I'd like to request a straight CV port variant of sisco. Different to #15 because that was the context of signals above 1 and below -1. Having any kind of scope with CV ports would be handy compared to nothing.

X/Y/Amp settings set to minimum at start

Hello,

In the latest git of sisco.lv2 (27/01/14) and latest svn Ingen (5325), the X/Y/Amp settings are set to their minimum values when the GUI is opened.

I attached a screenshot of the GUI status the first time it is opened.

I cannot reproduce this issue in Ardour.
screenshot from 2014-01-27 16 32 15

If you need further info on this issue, do not hesitate to ask me.

Aurélien

Allow hiding the grid and cursors overlay

Hi!

Sometimes I'd like to be able to hide the grid and other control parameters displayed on the scope screen to have only the waveforms, with nothing else.

Could there be a switch for hiding the extra overlays?

Here's a little mockup:

selection_658

That'd be for capturing and re-using sisco display in a video foe example, as eye candy, so the grid, cursors and other stuff would make it harder to composite the image.

Wrong display after resizing the plugin window in Carla host

I'm using Carla-git and newest x42 plugins from KX Studio repositories underl Linux mInt, with KDE5 desktop.

When I try resizing the SiSco window, it doesn't seem to redraw itself properly.

selection_667

(The funky gradient effect is because my window manager makes windows semi-transparent when I resize them and on black background it gets darkened and fed back into the draw buffer.)

13.33 grid

Hi,

If I have the time-scale configuration set to 1s, the time-scale info shows the screen width to be 13.33s which makes me believe the grid is 13.33 cells wide.

If I display a LFO with a frequency of 1 Hz, the graph keeps steping back at each run (I don't know if I'm clear, what I mean is that the graphs doesn't superpose one run from another).

It would be great if the number of cells in the grid is an integer number so that given a frequency of a LFO, I can set the time-scale configuration any way I want to get the graphs to superpose at each run.

I don't know if I'm clear of confusing :)
Would you need more information, please let me know.

Aurélien

Option to hide/toggle sidebar?

Hi Robin,

First of all, thanks for the useful plugin(s)!

I was wondering if it would be possible to add an option to hide/toggle the sidebar? I'm using the scope as part of a streaming session to explain synthesis and would like to have as much room on my screen available for the scope itself :)

I'm not sure if this is possible/a good idea for the LV2 plugins, you probably know that better ;) but I expect it shouldn't be a problem for the standalone application?

Doesn't work with Ingen

Hello,

The Oscilloscope doesn't work in Ingen:

  • I cannot open the OpenGL version, but I believe Ingen doesn't support OpenGL GUI so that's to be expected:
  • Nothing happen in the GTK version though.

Is the issue with sisco.lv2 or is it related to this issue with Ingen: http://dev.drobilla.net/ticket/941

Scope crashes the host when deleted

Hello,

When the scopes are removed from the host while the GUI is open, scopes and host would crash.

I can reproduce this issue in Ingen.

If you need further information, please let me know,

Regards,
Aurélien

No time sweep in GTK

Hi,

I compiled sisco.lv2 with the BUILDGTK?=yes in Makefile.

The resultant scope_gtk gui is displayed in Carla and ingen but there is no time sweep so no signal is captured. The x42-scope app though works fine in Carla and as a standalone via jack.

Not sure what other info to give you but happy to help with any follow up you require.

Regards,
Chris.

Display digital samples

I think it'd be neat if there was a way to enable a display of digital samples on the signal curve.
I guess small circle (or a 3x3 sqare?) would do.

I think it'd be great in explaining how digital audio works - I love that SiSco shows a perfectly smooth continuous signal, but a digital sample overlay would be very useful as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.