Easily plot an audio signal waveform. Customized presets with shapes and styles.
README
OVERVIEW
openFrameworks add-on to easily plot an audio signal waveform using different customized presets with many combined shapes and different styles.SCREENSHOTS
exampleSimple
An example from ofxSoundDevicesManager. (Using ofxBloom)
FEATURES
Scalable and draggable box container. Extra gain control for scaling. Combine different reactive to the audio elements: Scope lines. Thin lines. Transparent circles. Rounded fat bars. Circled shaped elements. Filled or outlined contour mesh. A 3d rective object as an alternative example. Spreaded or padding more closer between elements. All the styles are handled by a Presets Manager. Smoother to customize animation speed and release behavior. OPTIONAL: WIP Bloom Shader for shader post-FX styling. OPTIONAL: Easily integrable with my add-on: ofxSoundDevicesManager.<details> <summary>USAGE</summary>
ofApp.h
``.cpp include "ofxSurfingImGui.h"
include "ofxSurfingAudioPlots.h"
ofxSurfingGui ui; void setupGui(); void drawGui();
void audioIn(ofSoundBuffer & input); WaveformPlot waveformPlot;
#### ofApp.cpp
.cpp void ofApp::setup() { setupGui(); // Look the examples.
waveformPlot.setup(); waveformPlot.setUiPtr(&ui); // We will use a parent ui! Passed as reference. } void ofApp::update() { waveformPlot.update(); } void ofApp::drawGui() { ui.Begin(); { //..
waveformPlot.drawImGui(false); } ui.End(); } void ofApp::draw() { waveformPlot.drawPlots(); drawGui(); } void ofApp::audioIn(ofSoundBuffer& input) { // Feed the waveformPlot object with the incomming audio samples. // Look the examples. } ` </details>
DEPENDENCIES
ofxSurfingImGui ofxImGui / Fork ofxSurfingHelpers ofxSurfingBox <details> <summary>OPTIONAL</summary>ofxGui / oF core (Probably not working _out-of-the-box_ as a full replacement to ofxSurfingImGui
, but could be done with some work. ofxBloom / WIP </details>
<details> <summary>TODO</summary>
BUG: Fix bloom shader that fails whe resizing the fbo / box container. Improve plotting performance using ofMesh`. Improve spread of elements correctly related to audio samples and buffer size. </details>
ofxAddons