From a510fa75bcadff22ac2404fe2687ceef56e38285 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 3 Nov 2025 13:51:02 -0600 Subject: feat: Add device selection and diagnostics to recording module Add interactive device selection to fix recording with multiple audio devices. New features: - cj/recording-list-devices (C-; r d) - Show all available audio sources - cj/recording-select-devices (C-; r s) - Interactively select mic/monitor - cj/recording-parse-sources - Parse pactl output into structured data - Enhanced cj/recording-get-devices with graceful fallback to manual selection Improvements: - Works with PulseAudio and PipeWire - Supports USB devices (Jabra SPEAK 510) - Supports Bluetooth devices - Supports built-in laptop audio - Shows device state (RUNNING, SUSPENDED) during selection - Better error messages with actionable suggestions - Device selection persists across recordings Fixes recording breakage when plugging in external audio interfaces. Addresses Method 1 (Make Using Emacs Frictionless) from V2MOM. Closes #[#B] Fix video/audio recording module sub-tasks: - Add diagnostic command - Add device selection UI - Improve error messages - Make device detection more flexible --- todo.org | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'todo.org') diff --git a/todo.org b/todo.org index 572b7ccd..477abf9a 100644 --- a/todo.org +++ b/todo.org @@ -61,8 +61,62 @@ High priority - daily pain point. ** TODO [#B] Fix video/audio recording module (use constantly, just broke) +Main issue: No way to select audio devices when multiple are available. +Plugging in external audio interface broke recording - only captured input, not output. + Use constantly, needs to work reliably. +*** TODO [#A] Add diagnostic command cj/recording-list-devices +Show ALL available PulseAudio/PipeWire sources. +Helps debug why auto-detection fails. +User can copy device names if needed. + +*** TODO [#A] Add device selection UI +Prompt user to select mic and system audio sources. +Cache selected devices for future recordings. +Allow switching devices without restarting Emacs. + +*** TODO [#B] Improve error messages +Show which devices were found/not found. +Include actual pactl output in error messages. +Suggest manual device configuration. + +*** TODO [#B] Make device detection more flexible +Try multiple regex patterns for different audio setups. +Fallback to prompting user to select from list. +Support both PulseAudio and PipeWire. + +*** TODO [#B] Validate recording startup +Check process status after starting. +Parse ffmpeg output for errors. +Show actual ffmpeg command for debugging. + +*** TODO [#C] Add device testing command cj/recording-test-devices +Records 3 seconds of audio. +Plays it back. +Confirms devices work before real recording. + +*** TODO [#C] Add recording status display (optional via flag, default off) +Show "Recording: 00:05:23" in modeline or echo area. +Timer showing duration. +File size updating. + +*** TODO [#C] Add recording presets +Screencast (video + audio, high quality). +Podcast (audio only, voice optimized). +Meeting (balanced, lower filesize). +Quick note (audio, low quality, small file). + +*** TODO [#C] Build recording history buffer +*Recordings* buffer showing history. +Duration, file size, location. +Quick actions: play, delete, rename, move. + +*** TODO [#C] Add post-processing hooks +Auto-compress after recording. +Move to cloud sync directory. +Generate transcript (once transcription workflow exists). + ** TODO [#B] Fix mail attachment workflow (currently awkward) Daily workflow improvement. -- cgit v1.2.3