Git Product home page Git Product logo

oscilloscope's Introduction

Oscilloscope

A software oscilloscope attempting to mimic the aesthetic of old school ray oscilloscopes.

How to use

After starting the oscilloscope a welcome message is already loaded, press ▶︎ play to make sure your audio setup works. If it doesn't, open ⚙ settings and try to choose another output device.

To open files you can either click the folder icon, or drag a file from Explorer/Finder/Nautilus/... to the application.

Key Action
Space Play/Pause
f Fullscreen
Tab Hide interface
e Export to image sequence

For more information

Programmer Documentation

Project setup

Things are moving around a bit sometimes. Make sure to read these instructions before each build.

  1. Download and unzip Openframeworks 0.10.1
  2. Open the folder apps/myApps/ (in the OpenFrameworks folder)
  3. Clone the repository with submodules: git clone --recursive https://github.com/kritzikratzi/Oscilloscope.git
  4. Download the binary release for ofxAvCodec from https://github.com/kritzikratzi/ofxAvCodec/releases/tag/0.2
  5. Replace the addons/ofxAvCodec/libs with the libs folder from the download

Compiling with XCode (OSX11.5+)

  1. Add the --deep value to the Other Code Signing Flags key in the Build Settings tab
  2. Open apps/myApps/oscilloscope/Oscilloscope.xcodeproject and then Build&Run
  3. (Optional) Sign&Notarize with apple: Copy scripts/osx-config-template.sh to osx-config.sh, then run scripts/dist.sh osx 1.1.0

You can also build with make && make run on the command line. The resulting build will have no icon/no proper name/no retina support.

Compiling with Visual studio 2017

The shell commands can be run from a git bash, cygwin, msys, or any other shell emulator.

  1. run scripts/clean.sh
  2. run scripts/prepare.sh win64
  3. Open oscilloscope.sln and Build&Run

Compiling with make in Linux

This is a full install including OF (thx rrolison68!)

cd
wget -c https://openframeworks.cc/versions/v0.10.1/of_v0.10.1_linux64gcc6_release.tar.gz
tar -zxvf of_v0.10.1_linux64gcc6_release.tar.gz
mv of_v0.10.1_linux64gcc6_release OF
cd OF/scripts/linux/ubuntu
sudo ./install_dependencies.sh
cd
cd OF/apps/myApps
git clone --recursive https://github.com/kritzikratzi/Oscilloscope.git
cd Oscilloscope
scripts/clean.sh
cp -R addons/ofxMightyUI/bin/data/* bin/data/
cp -R addons/ofxFontAwesome/bin/data/* bin/data/
make -j2
bin/Oscilloscope

See scripts/readme.md for the full distribution process.

Package the software

  • for osx run scripts/dist.sh $platform $version
  • platform is one of osx linux linux64 win64
  • version is whatever version you want, e.g. 1.0.6

Contributors

License/Source code

  • Openframeworks. A creative coding library. The larger part of it is licensed as MIT/BSD.
  • FFmpeg and ofxAvCodec. FFmpeg is the encoder/decoder library and licensed under the gpl/lgpl 2.1. The binaries included here were compiled to comply with the lgpl. A copy of the LGPL together with instructions how the library was compiled for each platform can be found in the legal folder.
  • The sourcecode for this application is freely available on github.

oscilloscope's People

Contributors

bostelk avatar kritzikratzi avatar m1el avatar normand1 avatar s-ol avatar subwolf avatar

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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oscilloscope's Issues

Rename window title more accurately?

For example, i load a file in the player, when i switch to microphone/stereo mix the window title still tells me the full path to the loaded file which is it not applicable when using input mode until we return to the player mode. Perhaps add a indicator that we are on the specified input device?

"Not a valid Win32 application" error on Windows XP

I'm trying to run this on Windows XP Home, I have SP3 plus the unofficial SP4 installed.

I can't see any reason why it wouldn't work if it's actually 32-bit as described,

The reason I'm using XP is because this is a rather old PC but it has hardware which can output to a CRT TV.

Windows: Include MSVC runtime

seems its legal to include the visual studio runtime dlls. hurray! these should definitely be included in the download.

Arrows for playback speed and time

left and right arrows for time
up and down for time stretch or playback speed (honestly "time stretch" is misleading)
Useful for playing back some missed moments and tweaking speed with ui hidden

Linear mode with adjustable speeds and sync

Not all signals are going to produce pretty pictures. I think this would make an excellent regular scope given its attention to detail and aesthetics. But we need a way to switch to that mode and a slider for setting speed.

Optionally, on real scopes, you can set a different signal to sync to. That'd be nice. Say, use the left channel as sound source and right channel as sync, or vice versa.

integrate sparkle

automatic updates would be very nice.
either submit to the app store, or use sparkle+winsparkle.

improve afterglow

i suppose afterglow could be hugely improved by using a different approach:
instead of drawing ontop of the old frame, keep a bunch of past buffers in vbos, and draw those with increasing darkness from past to present.

this should look vastly better than the current approach.

VST Version?

i was just wondering if you had the time to make a vst version of this, it'd help out alot.

Add support for toggling Repeat mode.

Repeat is forcefully enabled and there's no way to disable it.
Sure it can be enabled by default but i guess most people would prefer it to stop when it finishes playing.

[UI] Play time randomly flickering

it's me or there's still some settings to polish yet?
Yes, as the title says, the play time bar swaps from the current position to the beginning and returns to the same position, it happens fast.
Also when using microphone mode you can still play/pause uselessly(?) and the button gets somewhat stuck (Didn't fully test this)
Exact values are not shown in the app but it's almost impossible to get "perfect" values when using the slider.

fullscreen during export

when exporting, leave fullscreen and disable fullscreen while the export is ongoing. else a frame can go missing each time fullscreen is turned on and off because the fbo is cleared.

support 3channel wavs

support for 3channel wavs woul be very nice.

necessary changes:

  • update the resampling pipeline (3rd channel must be available, but discarded before playback)
  • add an option to enable/disable z-modulation when there are three channels
  • update the shader accordingly

Crash related to audio devices

Haven't tested much but, crash conditions so far:

  • any invalid/unsupported setting will make it crash
  • As soon a device disappears: hang and crash (i can pull the event log if needed)
  • A bit unrelated: using input does not release the output.

EDIT: apparently yes. it seems to be a performance issue that isn't anyone's fault!

Windows: BEX error

oscilloscope.exe crashes on startup with a BEX (branching exception?) error.

e14b8b32814633c4f720590a3c186713426dfe517d6108c63acb027512cf11de

use local addons with submodules

at the moment building is a pita for anyone except me.
use submodules for the required addons to make this easier for other people.

Linux: remove glut dependency

Hello, everytime I try to start the program I get ./Oscilloscope: error while loading shared libraries: libGLEW.so.1.10: cannot open shared object file: No such file or directory. I've checked glew, I have 2.0.0-1

Crash report

Tried running the app on OSX 10.10.3 and got this error message

screen shot 2015-07-30 at 1 52 03 pm

video export

use (my local) ofxAvVideoWriter to export directly to a movie file with the audio.

Does not detect any sound playing from Macbook Pro

It does detect input from the microphone. I'm running the program on a 2014 Retina Macbook Pro running Yosemite. The sound devices all show up, but it does not detect the sound running out of any of them.

[Suggestion] Optional White Bleed

In the spirit of mimicking a analog oscilloscope i think it should have a white bleed instead of having a bleed of the same color one has set.

improve ui hiding

make the ui hide faster when the cursor is outside the playback controls,

add a tiny bit of tolerance before showing the cursor again.

play sound after export

export runs at ~6fps, so can take a while even for short clips.
a little "ding" sound would be nice when it's done.

Win32 Binary Issue, Windows 10

I'm not entirely sure what the cause of this is, however, when running the precompiled binary for release 1.0.8 the program frequently crashes. A heap failure is reported when running the binary. When the program didn't crash, and I attempted to access the settings panel, it immediately crashed.

In trying to debug this myself, compiling for 32 bit on Windows 10, Visual Studio 2015, I also noticed some oddities with memory access exceptions without significant cause.

Having no luck with attempting to debug the program, I tried an attempt to compile for x64 and, surprisingly, the program compiled (having redirected the lib files). Moreover, there was no longer any crashing during load or file open operations. Even more astoundingly, the settings panel opened and worked fine.

I don't quite know which combination of actions made the program work, I just wanted to alert you to the fact that they did.

High contrast theme causes GUI to disappear

Hello,
I have a laptop running Windows 8.1 with a customised high contrast theme. When using high contrast mode the interface to control playback and settings disappears (or possibly goes black).

1.0.8 Windows: Forced ASIO?

I have ASIO installed but I am unable to get the standard windows stuff.

Users should be able to choose like before. (batch script)

make: *** No rule to make target '../../../libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk'.

I'm having trouble installing this on Ubuntu 16.04.

I've cloned the addons into their folders, prepare.sh runs fine, but trying to run make gives the following error:

Makefile:20: ../../../libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk: No such file or directory


make: *** No rule to make target '../../../libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk'.  Stop.

Any idea how to fix this?

Windows: does not open files with special characters

So, I just found out this software and thought how different songs in my library would look on this app. That's how I run into the problem where the app flat out won't load audio files that has special (Unicode) characters in the filename.

Reproduction steps

  • Open the app
  • Load an audio file with Unicode characters in its filename (e.g. 02 リサフランク420 - 現代のコンピュー.flac)
  • Audio won't play. (Renaming the file to, say, risafranku420.flac will make the file readable again.)

[Windows] [UI] controls never hide with mouse hovering the window

Whenever i hover the mouse in the window the UI refuses to disappear, TAB only helps for 1ms
holding tab just fast-switches the ui hide/show state
Fullscreen is unusable this way, i had to use screen extension to be able to get the mouse outside the window scope

fetching shaders from disk frequently?

Apparently there's a point where the visualization begins to freeze.
i notice that during the freeze it's reloading the shaders files from disk (opening then closing), one at a time.

[Playback] Sluggish visualization when playing FLAC

while it can play more formats than WAV (AFAIK, i only tried FLAC) it doesn't render a consistent visual. it keeps muting (not exactly audio mute) every 1ms (dot flashing on the screen) and also it renders in a sluggish manner (likely lots of drops)

[Playback] Compared to previous versions: larger drops and accuracy issue

Interestingly enough using the old shader causes a even larger fps drop than with the current one. its kind of subtle but i do notice some sluggishness.
Now I do not have 60 fps but 58-56fps. drop counter acts differently than before; values jump more in input mode, in playback mode it jumps twice or so. for the record the drop counter was more accurate before
I additionally note a accuracy error with it: playing Blocks in compressed form is drawn incorrectly while it did draw closer to the actual uncompressed audio on the previous version.
Also noticing an odd intensity flickering. like every few moments it flickers, similarly to how it did flicker before particularly with flac playback.
FLAC playback in 192khz now lags less than before

maybe the software requirements were unintentionally increased?

Repository does not have a license

Readme states only "sourcecode for this application is freely available on github".

Please pick an appropriate license and put the LICENSE file in the root of the repository.

can't start application

After i try to start it, i can see in task manager Windows Troubleshooter (or something like that, my os is not english) starts, but the oscilloscope not. tried to start in all of the compatibility settings, but no success.
i've tried version 1.0.7, but it's the same. i think the vc lib is installed for me, because visual studio is installed, but to make sure i've ran the installer. it showed me an error (seems like it got bugged again...), but after repair nothing changed, just the installer now shows options for uninstall and repair rather than install (which gave me an error message before repair action), so it seems it's good now.
it would be good if you could do something to display an error message with details of what happened, because if don't needed i don't want to restart my pc, and it's needed to uninstall and install the lib

Linux version won't open audio card

edit: aside, i cant seem to get audio output working on arch. here is the error code:
RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (hw:1,0), Device or resource busy.
it falls between some other HDMI outputs.
this problem could probably be fixed by plugging into pulse/alsa.

mono mode

show y as the signal and x as time when the file is mono.

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.