Provides audio basics to any ofApp: Select sound APIs and devices. Sound File Player. Detector Engine. Waveform plotting. [ WIP Windows only ]
README
ofxSoundDevicesManager
OVERVIEW
An openFrameworks add-on to provide audio basics to any ofApp. Easily handles and selects system sound devices. Currently working on Windows only, and for Input devices only. <details> <summary>NOTE</summary>It will not work _out-of-the-box_ without ofxSurfingImGui, or using ofxGui instead. But could be fixed for that. Look on USE_OFXGUI_INTERNAL directive. For similar basic purposes (maybe for devices selector only) you can use ofxSoundDeviceManager from @roymacdonald instead of this add-on. </details> <details> <summary>WIP</summary>
- ONLY MS WINDOWS YET. SHOULD ADD macOS AND MAYBE LINUX APIs ENGINES.
- NOW I'AM USING THE MS DIRECTSHOW API. ASIO OR WASAPI HAS NOT BEEN HARDLY TESTED BUT IT SHOULD WORK.
- CURRENTLY ONLY USING INPUTS YET. INTENDED TO BE USED MAINLY ON AN AUDIO ANALYZER.
- DEVICES OUTPUT SELECTOR SEEMS NOT WORKING YET. IT USES THE DEFAULT DEVICE.
- SOUND FILE PLAYER GOES THROUGH THE DEFAULT OUTPUT. BUT IT´S FEEDING THE DETECTOR ENGINE FINE.
- COMPATIBLE WITH ofxSurfingAudioPlots FOR STYLED WAVEFORM PLOT.
<details> <summary>SCREENSHOTS</summary>
1-example_Basic
2-example_ofxSurfingAudioPlots
4-example_Player
5-example_ExtrasDetector
Instagram VIDEO </details>
FEATURES
- Provides audio basics to any ofApp.
- Device selector:
- Input and Output (WIP) audio devices.
- All (MS Windows yet) sound APIs: DS/ASIO/WASAPI.
- ImGui based GUI.
- Intuitive VU / RMS.
- Custom Smoother module.
- Bangs detector using a threshold.
- Gate with release timer. Bypasses upcomming bangs.
- Custom auto pilot AWENGINE:
- Auto timed callibrates threshold to last peak from history.
- Testing scene to set detector.
- New ImGui audio widgets:
- Waveform plot with threshold line.
- Big sertical slider for the threshold.
- FFT.
- Sound file player.
- Compatible with styled waveform plot module.
ofApp.h
``.cpp include "ofxSoundDevicesManager.h"
ofxSoundDevicesManager audioDevices;
ofApp.cpp
.cpp void ofApp::setup(){ // Set samplerate and buffer size audioDevices.setup(44100, 512); } void ofApp::draw(){ audioDevices.drawGui(); } void ofApp::audioIn(ofSoundBuffer& input) { audioDevices.audioIn(input); } `` </details>DEPENDENCIES
ofxSurfingImGui ofxImGui / Fork ofxSurfingHelpers ofxSurfingBox <details> <summary>OPTIONAL</summary> ofxSurfingWaveplots / for the example 2 ofxGui (oF core) </details><details> <summary>CURRENT SYSTEMS</summary>
- Windows 10 / VS 2022 / oF 0.11+
<details> <summary>TODO</summary>
Improve settings using Port names instead of Port Numbers. Test and make it macOS-compatible. Merge some stuff from ofxSoundDeviceManager from @roymacdonald. (?) Make it ofxSoundObjects compatible. (?) </details>
<details> <summary>NOTES</summary>
Would crash when hot-changing the sound API DS/ASIO/WASAPI, but should wake up and reload fine the settings after restarting the app or by hardcoding devices. </details>
AUTHOR
An add-on by @moebiusSurfing (ManuMolina). 2020-2023.LICENSE
MIT License*Get this addon
Latest release
v0.2
published 3y ago
- More intuitive VU / RMS.
- Bangs detector using threshold.
- Gate with release timer.
- New audio widgets.
- Testing scene.
- New AWENGINE: autopilot mode for live auto tuning of detector parameters.
ofxAddons