Quickscope |
Quickscope is now available on github at github.com/lanceman2/quickscope.
Quickscope is a free Software Oscilloscope. Quickscope is a C/C++ application programming interface (API) and programs. Like a real oscilloscope, Quickscope has a mode that draws a trace that fades in time, like how a real oscilloscope fades it's beam trace on a fluorescing screen at the viewing end of a cathode ray tube (CRT). It also has a sweep/swipe mode where the beam trace replaces the previous X sweep traced points as time goes on. The data input may come from any source that can be read by the system like for example a pipe, socket, device file, regular file, and/or a real-time computation. Quickscope is written using the X11 (XLIB) and GTK+ 3.0 APIs. Current development is on a Debain GNU/Linux system.
These images are generated using Quickscope. A screen capture program, like gnome-screenshot, will not get a true snapshot of Quickscope because the screen capture program reads the display in a time that is longer than the monitor refresh period; unless you pause the scope. Quickscope can pause the display, and when it resumes it displays the data that is currently being read.
Because Quickscope has a fading beam mode, Quickscope may be used in X/Y draw mode as well as sweep mode, like a real oscilloscope. Here we plot two sine waves with two different frequencies, one is X and the other is Y, giving a classic Lissajous figure. Notice there is a fade delay time as well as a fade (tail) time.
Here's a more resent screen capture, using the pause feature with a screen capture program, with the full background of grid, subgrid, axis, ticks, main menu, and float input widget:
As you can see the current full view Sweep Period is 0.0167 seconds which is about a sweep rate (1/Period) of 60Hz which is about the refresh rate of the LCD monitor. The sound source is being read and displayed at a rate of 44,100 Hz, so there's about one sample point per pixel in the X direction. The widget you see displaying the Sweep Period can be switched to editing 32 other scope parameters as the scope continues to display. Key bindings for the widget are arrow keys change the float value, and the n (next) and p (prev) keys change to the next and previous parameters respectively in the widget parameter list. This universal parameter adjusting widget is one way of dealing with the ridiculous number of parameters that a software oscilloscope has.
Since this is software, the universal parameter adjusting widget automatically adds parameters and removes unused parameters, so you don't get useless knobs on this scope like you do on other scopes, be they hard or soft.
The following image links to a full screenshot (1920x1080). It shows a quickscope program that uses sweep and X-Y mode at the same time with 3 windows.
Reading the mic input with ALSA: