{"id":17788843,"url":"https://github.com/moebiussurfing/ofxsounddevicesmanager","last_synced_at":"2025-03-16T09:33:44.607Z","repository":{"id":53898012,"uuid":"262706154","full_name":"moebiussurfing/ofxSoundDevicesManager","owner":"moebiussurfing","description":"Provides audio basics to any ofApp: Select sound APIs and devices. Sound File Player. Detector Engine. Waveform plotting. [ WIP Windows only ]","archived":false,"fork":false,"pushed_at":"2023-09-08T07:14:22.000Z","size":3880,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-27T07:13:34.992Z","etag":null,"topics":["openframeworks","openframeworks-addon"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moebiussurfing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-10T03:43:03.000Z","updated_at":"2023-03-05T02:02:14.000Z","dependencies_parsed_at":"2023-02-18T03:31:12.383Z","dependency_job_id":null,"html_url":"https://github.com/moebiussurfing/ofxSoundDevicesManager","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSoundDevicesManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSoundDevicesManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSoundDevicesManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSoundDevicesManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moebiussurfing","download_url":"https://codeload.github.com/moebiussurfing/ofxSoundDevicesManager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243809888,"owners_count":20351407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openframeworks","openframeworks-addon"],"created_at":"2024-10-27T10:24:19.902Z","updated_at":"2025-03-16T09:33:43.751Z","avatar_url":"https://github.com/moebiussurfing.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ofxSoundDevicesManager\n\n# OVERVIEW\nAn **openFrameworks** add-on to provide audio basics to any ofApp.  \nEasily handles and selects system sound devices.  \nCurrently working on Windows only, and for Input devices only.  \n \n\u003cdetails\u003e\n\u003csummary\u003eNOTE\u003c/summary\u003e\n\nIt will not work _out-of-the-box_ without [ofxSurfingImGui](https://github.com/moebiussurfing/ofxSurfingImGui), or using **ofxGui** instead. But could be fixed for that. Look on **USE_OFXGUI_INTERNAL** directive. \nFor similar basic purposes (maybe for devices selector only) you can use [ofxSoundDeviceManager](https://github.com/roymacdonald/ofxSoundDeviceManager) from **@roymacdonald** instead of this add-on.\n\u003c/details\u003e\n \n\u003cdetails\u003e\n\u003csummary\u003eWIP\u003c/summary\u003e\n\n- ONLY MS WINDOWS YET. SHOULD ADD macOS AND MAYBE LINUX APIs ENGINES.\n- NOW I'AM USING THE MS DIRECTSHOW API. ASIO OR WASAPI HAS NOT BEEN HARDLY TESTED BUT IT SHOULD WORK.\n- CURRENTLY ONLY USING INPUTS YET. INTENDED TO BE USED MAINLY ON AN AUDIO ANALYZER.\n- DEVICES OUTPUT SELECTOR SEEMS NOT WORKING YET. IT USES THE DEFAULT DEVICE.\n- SOUND FILE PLAYER GOES THROUGH THE DEFAULT OUTPUT. BUT IT´S FEEDING THE DETECTOR ENGINE FINE.\n- COMPATIBLE WITH **ofxSurfingAudioPlots** FOR STYLED WAVEFORM PLOT.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSCREENSHOTS\u003c/summary\u003e\n\n### 1-example_Basic\n![](/1-example_Basic/Capture.PNG)  \n\n### 2-example_ofxSurfingAudioPlots\n![](/2-example_ofxSurfingAudioPlots/Capture.PNG)  \n\n### 4-example_Player\n![](/4-example_Player/Capture.PNG)  \n\n### 5-example_ExtrasDetector\n![](/5-example_ExtrasDetector/Capture.PNG)  \n\n[Instagram VIDEO](https://www.instagram.com/p/CooVhhrjW2g/)  \n\u003c/details\u003e\n\n## FEATURES\n- Provides **audio basics** to any ofApp.\n- Device selector: \n\t- Input and Output (WIP) **audio devices**.\n\t- All (MS Windows yet) sound APIs: **DS/ASIO/WASAPI**. \n- **ImGui** based **GUI**.\n- **Intuitive VU / RMS**.\n\t- Custom Smoother module.\n- **Bangs detector** using a threshold.\n\t- Gate with release timer. Bypasses upcomming bangs.\n- Custom auto pilot **AWENGINE**: \n\t- Auto timed callibrates threshold to last peak from history.\n\t- Testing scene to set detector.\n- New **ImGui** audio widgets:\n\t- Waveform plot with threshold line.\n\t- Big sertical slider for the threshold.\n\t- FFT.\n- **Sound file player**.\n- Compatible with styled **waveform plot** module.\n\n\u003cdetails\u003e\n\u003csummary\u003eUSAGE\u003c/summary\u003e\n \n#### ofApp.h\n```.cpp\n#include \"ofxSoundDevicesManager.h\"\n\nofxSoundDevicesManager audioDevices;\n```\n\n#### ofApp.cpp\n```.cpp\nvoid ofApp::setup(){\n\t// Set samplerate and buffer size\n\taudioDevices.setup(44100, 512);\n}\nvoid ofApp::draw(){\n\taudioDevices.drawGui();\n}\nvoid ofApp::audioIn(ofSoundBuffer\u0026 input) {\n\taudioDevices.audioIn(input);\n}\n```\n\u003c/details\u003e\n\n### DEPENDENCIES\n* [ofxSurfingImGui](https://github.com/moebiussurfing/ofxSurfingImGui)\n* [ofxImGui](https://github.com/Daandelange/ofxImGui/) / Fork\n* [ofxSurfingHelpers](https://github.com/moebiussurfing/ofxSurfingHelpers)\n* [ofxSurfingBox](https://github.com/moebiussurfing/ofxSurfingBox) \n\u003cdetails\u003e\n\u003csummary\u003eOPTIONAL\u003c/summary\u003e\n\t\n* [ofxSurfingWaveplots](https://github.com/moebiussurfing/ofxSurfingWaveplots) / for the example 2\n* ofxGui (oF core)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCURRENT SYSTEMS\u003c/summary\u003e\n \n- **Windows 10** / **VS 2022** / **oF 0.11+**\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTODO\u003c/summary\u003e\n\n* Improve settings using Port names instead of Port Numbers.\n* Test and make it macOS-compatible.\n* Merge some stuff from [ofxSoundDeviceManager](https://github.com/roymacdonald/ofxSoundDeviceManager) from **@roymacdonald**. (?)\n* Make it [ofxSoundObjects](https://github.com/roymacdonald/ofxSoundObjects) compatible. (?)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eNOTES\u003c/summary\u003e\n\n* 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. \n\u003c/details\u003e\n\n## AUTHOR\nAn add-on by **@moebiusSurfing**  \n*(ManuMolina). 2020-2023.*\n\n## LICENSE\n*MIT License*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoebiussurfing%2Fofxsounddevicesmanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoebiussurfing%2Fofxsounddevicesmanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoebiussurfing%2Fofxsounddevicesmanager/lists"}