enhancement, cross-platform, feature, GSSoC 2026
Summary
Paraline is entirely Windows-only due to its reliance on WASAPI loopback audio capture via a C# helper process. However, Electron and all of Paraline's canvas rendering logic are completely cross-platform. macOS has its own system audio APIs (Core Audio, ScreenCaptureKit) that can provide equivalent functionality. Extending Paraline to macOS would double the addressable user base while requiring changes only to the audio capture bridge.
Problem
- The
audio-helper/ directory contains a C# binary compiled against WASAPI — a Windows-exclusive API.
- macOS does not expose system audio loopback natively without a virtual audio device driver.
- There is no
package.json build target for macOS (darwin).
- The Electron window uses Windows-specific layering (
WS_EX_LAYERED via transparent: true), but Electron handles this transparently on macOS as well via vibrancy/NSWindow.
- macOS users who discover Paraline on GitHub have no path to use it.
Proposed Solution
I propose a phased approach:
Phase 1 (this PR — documentation + workaround):
Add a docs/MACOS_SETUP.md guide explaining how to use BlackHole (a free, open-source virtual audio driver for macOS) as a system audio loopback source:
## macOS Setup with BlackHole
1. Install BlackHole: `brew install blackhole-2ch`
2. Open Audio MIDI Setup → Create a Multi-Output Device (System Audio + BlackHole)
3. Set Multi-Output as your default audio output
4. Paraline will capture BlackHole's loopback stream
Phase 2 (follow-up issue — native bridge):
Implement a Swift/Objective-C audio helper using ScreenCaptureKit (macOS 12.3+) that mirrors the C# helper's IPC protocol exactly, so the Electron layer requires zero changes:
// audio-helper-mac/Sources/main.swift
import ScreenCaptureKit
import Accelerate
// Capture system audio via ScreenCaptureKit
// Compute FFT bands
// Write JSON to stdout: {"bands": [0.1, 0.4, 0.8, ...]}
// (identical protocol to Windows C# helper)
I am participating in GSSoC 2026 and would like to start with Phase 1 immediately. Could you please assign this issue to me?
enhancement, cross-platform, feature, GSSoC 2026
Summary
Paraline is entirely Windows-only due to its reliance on WASAPI loopback audio capture via a C# helper process. However, Electron and all of Paraline's canvas rendering logic are completely cross-platform. macOS has its own system audio APIs (Core Audio, ScreenCaptureKit) that can provide equivalent functionality. Extending Paraline to macOS would double the addressable user base while requiring changes only to the audio capture bridge.
Problem
audio-helper/directory contains a C# binary compiled against WASAPI — a Windows-exclusive API.package.jsonbuild target for macOS (darwin).WS_EX_LAYEREDviatransparent: true), but Electron handles this transparently on macOS as well via vibrancy/NSWindow.Proposed Solution
I propose a phased approach:
Phase 1 (this PR — documentation + workaround):
Add a
docs/MACOS_SETUP.mdguide explaining how to use BlackHole (a free, open-source virtual audio driver for macOS) as a system audio loopback source:Phase 2 (follow-up issue — native bridge):
Implement a Swift/Objective-C audio helper using
ScreenCaptureKit(macOS 12.3+) that mirrors the C# helper's IPC protocol exactly, so the Electron layer requires zero changes:I am participating in GSSoC 2026 and would like to start with Phase 1 immediately. Could you please assign this issue to me?