3.4 KiB
MODIFIED Requirements
Requirement: Recording mode captures microphone and computer output
Meeting Assistant SHALL capture microphone input and computer output and combine them into one audio stream for transcription on supported Windows and macOS hosts.
Meeting Assistant SHALL capture audio as 16 kHz mono PCM chunks for the existing recording and transcription pipeline.
Meeting Assistant SHALL capture microphone and system loopback as separate input streams before producing the final mono chunks.
On Windows, Meeting Assistant SHALL retain the existing NAudio microphone and WASAPI loopback implementation.
On macOS, Meeting Assistant SHALL capture the default microphone through AVFoundation and computer output through ScreenCaptureKit without requiring a virtual audio device.
The macOS capture adapter SHALL convert both native sources to signed 16-bit PCM using the active run's configured sample rate and channel count before passing chunks to the existing managed mixing pipeline.
The macOS capture adapter SHALL stop its native capture process when the recording capture token is cancelled.
When macOS privacy permission is missing or denied, Meeting Assistant SHALL fail capture with an actionable message identifying the required Microphone or Screen Recording/System Audio permission.
Meeting Assistant SHALL clean the microphone stream with a local acoustic echo cancellation stage that uses system loopback as the far-end reference.
Meeting Assistant SHALL produce final mono chunks by adding the cleaned microphone samples and system samples.
Meeting Assistant SHALL align microphone and system samples through per-source buffers before producing final chunks and SHALL apply the existing configured gains and clamping behavior.
Meeting Assistant SHALL write only the mixed stream to the temporary WAV used by transcription and finalization.
Scenario: macOS records both meeting-audio sources
- GIVEN the portable build is running on macOS
- AND Microphone and Screen Recording/System Audio permissions are granted
- WHEN a meeting recording starts
- THEN Meeting Assistant captures microphone audio through AVFoundation
- AND captures computer output through ScreenCaptureKit
- AND passes both signed 16-bit PCM streams through the existing mixer
Scenario: macOS capture uses run audio format
- GIVEN an active macOS recording configures a sample rate and channel count
- WHEN the native capture helpers start
- THEN both helpers emit signed 16-bit PCM with that sample rate and channel count
Scenario: macOS recording stops native capture
- GIVEN macOS microphone and system capture are active
- WHEN Meeting Assistant stops capture
- THEN it terminates both native capture processes
- AND PCM already delivered to the managed pipeline before stop remains available to the existing recording pipeline
Scenario: macOS privacy permission is unavailable
- WHEN macOS denies microphone or Screen Recording/System Audio capture permission
- THEN Meeting Assistant reports which macOS privacy permission is required
Scenario: Windows audio capture remains isolated
- GIVEN Meeting Assistant is compiled for the Windows target
- WHEN the application registers and starts meeting audio capture
- THEN it uses the existing NAudio microphone and WASAPI loopback sources
- AND does not invoke or require the macOS native helper