diff --git a/README.md b/README.md index e0d3eca..a0426d6 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ TUI Mumble client with voice support and push-to-talk. - Chat input history (Up/Down arrow navigation) - Self-deafen toggle - Volume control (input/output gain) +- Voice pitch shifting (deeper/higher) - Client certificate authentication - Auto-reconnect on network loss - Config hot-reload (F5) @@ -25,6 +26,8 @@ TUI Mumble client with voice support and push-to-talk. | `F3` | Cycle input volume | | `F4` | Push-to-talk (configurable) | | `F5` | Reload config from disk | +| `F6` | Pitch down (1 semitone) | +| `F7` | Pitch up (1 semitone) | | `Enter` | Send message / join channel (sidebar) | | `Up` | Previous message (input) / previous channel (sidebar) | | `Down` | Next message (input) / next channel (sidebar) | @@ -57,6 +60,7 @@ username = "myname" [audio] # output_gain = 1.0 # input_gain = 1.0 +# pitch = 0 # semitones, -12 to +12 [ptt] key = "f4" diff --git a/docs/USAGE.md b/docs/USAGE.md index 24a7f85..b0c58af 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -17,6 +17,8 @@ tuimble --host mumble.example.com --user myname | `F3` | Cycle input volume | | `F4` | Push-to-talk (configurable) | | `F5` | Reload config from disk | +| `F6` | Pitch down (1 semitone) | +| `F7` | Pitch up (1 semitone) | | `Enter` | Send message / join channel (sidebar) | | `Up` | Previous message (input) / previous channel (sidebar) | | `Down` | Next message (input) / next channel (sidebar) | @@ -45,8 +47,8 @@ python3 -m pstats /tmp/tuimble.prof # interactive explorer # pip install snakeviz && snakeviz /tmp/tuimble.prof ``` -Note: cProfile captures the main thread only. Background workers -started with `@work(thread=True)` are not included. +Profiling covers both the main thread and all worker threads +(including the audio send loop where pitch shifting runs). ## Volume Control @@ -60,6 +62,21 @@ output_gain = 0.75 # 0.0 to 2.0 (default 1.0) input_gain = 1.5 # 0.0 to 2.0 (default 1.0) ``` +## Voice Pitch + +`F6` and `F7` adjust outgoing voice pitch in 1-semitone steps, +ranging from -12 to +12. Negative values make the voice deeper, +positive values make it higher. The current setting is shown in the +status bar when non-zero. + +```toml +[audio] +pitch = 3 # semitones, -12 to +12 (default 0) +``` + +When pitch is 0, the processing step is skipped entirely (no CPU +overhead). + ## Client Certificates For servers requiring client certificate authentication: @@ -77,7 +94,7 @@ Both must be PEM-encoded. Leave empty to connect without a certificate. `F5` reloads `~/.config/tuimble/config.toml` from disk. **Safe changes** (applied immediately): PTT key/mode/backend, audio -gain values. +gain values, pitch. **Restart-requiring changes** (server settings, audio device/rate): shown as warnings. Press `F5` again to confirm reconnect, or any