Skip to content

feat/audio recording#408

Closed
diegohh0411 wants to merge 6 commits into
j178:masterfrom
diegohh0411:feat/audio-recording
Closed

feat/audio recording#408
diegohh0411 wants to merge 6 commits into
j178:masterfrom
diegohh0411:feat/audio-recording

Conversation

@diegohh0411

Copy link
Copy Markdown
Contributor

No description provided.

diegohh0411 and others added 6 commits April 4, 2026 16:09
Adds platformConfig struct with platform-specific ffmpeg input flags
for macOS (avfoundation), Linux (pulse), and Windows (dshow).
Implements ffmpeg subprocess management: start, stop, pause, resume,
cancel with appropriate error handling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements nextAttemptNumber() that scans for existing attempt-N.mp3
files and auto-increments. Adds --force flag to restart numbering
from 1. Command parses QID, validates ffmpeg, and will launch
TUI (runRecorderTUI added in next task).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements recorderModel with bubbletea for audio recording interface.
Features: real-time timer (MM:SS), pause/resume (Unix), stop/cancel
with file cleanup, platform-aware controls (Windows pause disabled),
and styled status display with lipgloss.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds recordCmd to the commands slice in initCommands() after editCmd.
Command now appears in help with proper description and --force flag.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds real-time frequency spectrum display during recording using:
- Radix-2 Cooley-Tukey FFT (no external deps)
- ffmpeg asplit filter: MP3 to file + raw PCM to stdout pipe
- Logarithmic band grouping over voice range (80Hz-8kHz)
- Colored Unicode block characters with green→red gradient
- PCM reader as bubbletea async command for smooth updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Removes rainbow colors, uses plain Unicode block characters
- Dynamically adjusts number of frequency bands to terminal width
  via tea.WindowSizeMsg (each band = 2 chars, ~40 bands on 80-col
  terminal, ~60 on 120-col, etc.)
- Logarithmic band grouping still covers voice range (80Hz–8kHz)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@diegohh0411 diegohh0411 closed this Apr 5, 2026
@diegohh0411

Copy link
Copy Markdown
Contributor Author

Nvm, this is a feature I'm developing on my own fork. I opened this up by accident. I basically want to add functionality to record myself while I solve the leetcode problems, using LeetGo directly. And I even want LeetGo to talk to LLM providers to transcribe my audio recording & generate an analysis summary using any LeetCode problem's description, my solution & my audio transcription. But I'm still prototyping all of this, so I'll create a proper PR after I've built this & used it myself for a while.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant