@@ -27,12 +27,17 @@ electroncapture/
2727├── window-audio-stream.js # Audio capture stream handling
2828├── package.json # Build config and dependencies
2929├── scripts/
30- │ ├── install-custom-electron.js # Downloads custom Electron for Windows
31- │ └── install-window-audio-capture.js # Builds native audio module
30+ │ ├── install-custom-electron.js # Downloads custom Electron for Windows
31+ │ ├── install-window-audio-capture.js # Builds window audio capture module
32+ │ └── install-electron-asio.js # Builds ASIO audio capture module
3233├── native-modules/
33- │ └── window-audio-capture/ # Git submodule (private repo)
34- │ ├── src/ # C++ WASAPI capture code
35- │ ├── index.js # Node.js bindings
34+ │ ├── window-audio-capture/ # Git submodule (private repo)
35+ │ │ ├── src/ # C++ WASAPI capture code
36+ │ │ ├── index.js # Node.js bindings
37+ │ │ └── build/Release/ # Compiled .node binary
38+ │ └── electron-asio/ # ASIO audio capture (public)
39+ │ ├── src/ # C++ PortAudio/ASIO code
40+ │ ├── deps/portaudio/ # PortAudio library
3641│ └── build/Release/ # Compiled .node binary
3742├── docs/ # Website (GitHub Pages from master:/docs)
3843├── assets/ # Icons and images
@@ -126,6 +131,52 @@ native-modules/window-audio-capture/
126131│ └── window_audio_capture.node # Compiled binary
127132```
128133
134+ ## ASIO Audio Capture Plugin (Public)
135+
136+ ### Overview
137+ A native Node.js addon for capturing audio from ASIO devices (professional audio interfaces). Uses PortAudio with ASIO backend for ultra-low latency audio capture.
138+
139+ ### Building the Native Module
140+ ``` bash
141+ # Rebuild manually
142+ npm run native-modules:rebuild
143+
144+ # Or build just ASIO module
145+ cd native-modules/electron-asio
146+ npm install
147+
148+ # Skip building (for CI/testing)
149+ ELECTRON_ASIO_SKIP=1 npm install
150+ ```
151+
152+ ### Module Structure
153+ ```
154+ native-modules/electron-asio/
155+ ├── src/
156+ │ ├── addon.cc # N-API entry point
157+ │ ├── asio_wrapper.cc # AsioStream class
158+ │ └── asio_wrapper.h
159+ ├── deps/
160+ │ └── portaudio/ # PortAudio library
161+ │ ├── include/ # Headers
162+ │ └── lib/ # Windows libs and DLL
163+ ├── binding.gyp # Node-gyp build config
164+ ├── index.js # JavaScript wrapper (graceful fallback)
165+ ├── lib/index.js # Full library with AsioStream
166+ ├── preload/
167+ │ ├── ipc-handlers.js # IPC handlers for main process
168+ │ └── asio-preload.js # Preload script exposure
169+ ├── build/Release/
170+ │ ├── electron_asio.node # Compiled binary
171+ │ └── portaudio_x64.dll # PortAudio runtime
172+ ```
173+
174+ ### Requirements for Building
175+ - Windows 10/11
176+ - Visual Studio Build Tools 2019+ with C++ workload
177+ - Node.js 18+
178+ - Python 3.x (for node-gyp)
179+
129180## Build Commands
130181
131182### Windows (Custom Electron + Audio Capture)
@@ -168,13 +219,15 @@ npm start # Run in development mode
168219| Custom Electron (QP-cap) | Yes | No | No |
169220| NVENC/HEVC | Yes | No | No |
170221| Application Audio Capture | Yes | No | No |
222+ | ASIO Audio Capture | Yes | No | No |
171223| Cursor Suppression | Yes | No | No |
172224| Electron Version | 39.2.13-qp20 | 39.2.7 | 39.2.7 |
173225
174226### Environment Variables
175227``` bash
176228CUSTOM_ELECTRON_SKIP=1 # Skip custom Electron download
177- WINDOW_AUDIO_CAPTURE_SKIP=1 # Skip native module build
229+ WINDOW_AUDIO_CAPTURE_SKIP=1 # Skip window audio capture module build
230+ ELECTRON_ASIO_SKIP=1 # Skip ASIO audio capture module build
178231CUSTOM_ELECTRON_LOCAL_DIR=... # Use local Electron build
179232```
180233
0 commit comments