Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JanosGit/OpenGLRealtimeVisualization4JUCE
A JUCE Module containing OpenGL accelerated realtime (audio) data visualization Components
https://github.com/JanosGit/OpenGLRealtimeVisualization4JUCE
Last synced: 3 months ago
JSON representation
A JUCE Module containing OpenGL accelerated realtime (audio) data visualization Components
- Host: GitHub
- URL: https://github.com/JanosGit/OpenGLRealtimeVisualization4JUCE
- Owner: JanosGit
- License: mit
- Created: 2018-06-18T13:51:04.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-22T13:26:46.000Z (almost 5 years ago)
- Last Synced: 2024-04-23T04:53:47.306Z (7 months ago)
- Language: C++
- Homepage:
- Size: 359 KB
- Stars: 61
- Watchers: 3
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-juce - OpenGLRealtimeVisualization4JUCE - accelerated realtime audio visualization components| MIT|63|Β 5Β years<sub><sup>π΄</sup></sub>| (OpenGL)
README
# OpenGLRealtimeVisualization4JUCE
This is a side-product from current work on my Master Thesis I'd like to share with you.
## Basic idea
This repo should contain some classes helping to implement Open GL accelerated JUCE Components that visualize measurements of realtime signals. Motivated through the target application of my Master Thesis special focus was set on the possibility of connecting the GUI Components and the realtime data collection mechanism in different ways, e.g. both running in one application, both running in seperate processes on the same machine or even both running on different Hardware devices connected via Network. Because of this my design always needs a data sink and a data source which are connected over some abstract channel and to which all data collection classes as well as all visualization Components are connected.For applications with more than one GL-accelerated visualization Component, a shared OpenGL Context class manages to render multiple Components without expensive Context switching.
Furthermore all visualization Components are designed to (re)store their state through a JUCE ValueTree.
To use it, just add it to your personal modules folder and add it to your Project from within the Projucer. Note that the JUCE OpenGL module is not specified as a dependency to this project because the module is also designed for scenarios where the sender is a GUI-less process maybe even running on an embedded processor without any GUI ressources. However adding the juce_opengl module to your project will enable all GUI-related parts of this module.
## Currently implemented parts
### GUI Components- Oscilloscope
- Spectral Analyzer### Connection
- Local sink and source allowing to let both the data collection and visualization take place in the same process
## Next steps
- A Network-Based Connection
- Extending the data collector interfaces to complex valued sample buffers for project internal use
- A 3D surface plot to visualize matrix-based calculations## Example Project
An example JUCE project of how to set up an oscilloscope and spectral analyser for analyzing two incomming audio channels in a simple JUCE Audio App template based project can be found under
```
examples/StandaloneOscilloscopeSpectralAnalyzer
```Have fun playing around with it and try out to customize the look!
![](img/StandaloneOscilloscopeSpectralAnalyzerExampleScreenshot.png)