Commit Graph
27 Commits
Author SHA1 Message Date
Tyler SpiveyandClaude Opus 5 4393739ffa Add F12 hotkey to toggle microphone AGC
Automatic gain control was always on with no way to turn it off. Toggle
it with F12, the /agc command, or the agc FIFO command, and persist the
choice in the configuration file the same way noise suppression does.

AgcEnabled defaults to true so existing setups keep their current
behavior, and the saved value is applied to the stream on connect. The
enabled flag becomes an atomic.Bool because the capture goroutine reads
it while the UI goroutine writes it, and the lazily created right
channel AGC now inherits the left channel's state.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 13:16:44 -07:00
Brandon McGinty (chatgpt) 9c487c2586 Add Windows platform integration scaffolding 2026-08-10 12:36:47 -04:00
Brandon McGinty (chatgpt) ef8a92149d Report configuration persistence failures 2026-08-10 11:25:08 -04:00
Brandon McGinty (chatgpt) dcffa1efa1 Use secure temporary config files 2026-08-10 08:44:58 -04:00
Brandon McGinty (chatgpt) 3ba5e03208 Restore output navigation hotkeys 2026-08-10 08:26:37 -04:00
Brandon McGinty (chatgpt) 118799d112 Serialize configuration updates and writes 2026-08-10 00:18:42 -04:00
Brandon McGinty (chatgpt) b23afebdb3 Reject non-regular explicit config files 2026-08-09 23:11:31 -04:00
Brandon McGinty (chatgpt) 6da5b249f9 Reject missing explicit configuration files 2026-08-09 22:35:38 -04:00
Brandon McGinty (chatgpt) 4497d41077 Persist microphone mute and volume settings 2026-08-09 14:37:06 -04:00
Brandon McGinty (chatgpt) c36305cb38 Return configuration save failures 2026-08-09 14:23:27 -04:00
Brandon McGinty (chatgpt) 501943c8f7 Handle malformed and IPv6 config addresses 2026-08-09 14:23:27 -04:00
Brandon McGinty (deepseek) 9dd0137975 fix: add synchronization to User audio fields to prevent data races
User.AudioSource, Boost, Volume, and LocallyMuted were accessed from
both the OnAudioStream audio goroutine and the UI goroutine without
synchronization, a data race under the Go memory model.

Replace direct field access with thread-safe getter/setter methods
protected by a per-user mutex:
- SetAudioSource/GetAudioSource for the OpenAL source pointer
- SetBoost/Boost for the audio boost multiplier
- SetVolume/Volume for the volume level
- SetLocallyMuted/LocallyMuted for the local mute state

Update all call sites across config/, barnard.go, client.go,
ui_tree.go, and stream.go.
2026-08-08 20:58:53 -04:00
Storm Dragon 9bc514e74f Remove voice effects 2026-07-14 18:41:50 -04:00
Storm Dragon e1ae5abab9 Use HOME for Barnard config path 2026-06-29 20:34:14 -04:00
Storm Dragon 5ac6703489 Use RNNoise for noise suppression 2026-06-28 23:15:09 -04:00
Storm Dragon cc483685ef Add actions menu admin features 2026-05-19 01:06:01 -04:00
Storm Dragon 69674a0dab Add standards-aware recording 2026-05-14 00:42:30 -04:00
Storm Dragon 3db526f42b Noise suppression tweaks. 2026-02-21 02:08:30 -05:00
Storm Dragon cfbefd3f7d Updated barnard to use openal for sound by default. This should bring with it pipewire or pulseaudio support. 2025-12-16 15:44:10 -05:00
Storm Dragon 0700264afe Work on supporting and using certificates. 2025-12-12 18:34:23 -05:00
Storm Dragon dd425563ba Experimental changes, switched to toml instead of yaml. Hopefully everyone will like this as much as I do. 2025-12-10 20:52:37 -05:00
Storm DragonandClaude f96cb1f79b Add real-time voice effects for outgoing audio
Implements 7 voice effects that can be cycled through with F12:
- None (default)
- Echo: Single repeating delay with feedback (250ms)
- Reverb: Multiple short delays without feedback
- High Pitch: Chipmunk voice using cubic interpolation
- Low Pitch: Deep voice effect
- Robot: Ring modulation for robotic sound
- Chorus: Layered voices with pitch variations

The effects are applied after noise suppression and AGC in the audio
pipeline. Selected effect is persisted to config file. Includes
comprehensive documentation in README.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 16:27:08 -04:00
Storm Dragon df7159bad1 Initial noise suppression added. 2025-08-16 21:29:52 -04:00
Storm Dragon 4947b97b1d F8 resets user to default 1.0 volume. 2025-06-12 03:01:44 -04:00
Storm Dragon 2e337db3c5 Updated everything for dependencies. All sub packages are now part of the project. This was a massive update, hopefully won't have to be reverted. 2025-01-16 17:03:01 -05:00
Storm Dragon a5c0e7a71c Added mute option. It can work per user or per channel, so covers deafen functionality too. 2025-01-16 13:36:46 -05:00
Storm Dragon 3f0246a4f8 Initial commit, lots of cleanup and stuff to do, it may not work. 2025-01-15 23:43:44 -05:00