https://github.com/piotrpdev/autofocus
Automate changing Sample Rate and Buffer Size in Focusrite Notifier device settings.
https://github.com/piotrpdev/autofocus
audio automation crackling dotnet dotnet-core focusrite interface scarlett solo ui
Last synced: 18 days ago
JSON representation
Automate changing Sample Rate and Buffer Size in Focusrite Notifier device settings.
- Host: GitHub
- URL: https://github.com/piotrpdev/autofocus
- Owner: piotrpdev
- License: mit
- Archived: true
- Created: 2023-10-31T01:42:34.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-01T02:30:54.000Z (almost 2 years ago)
- Last Synced: 2025-03-02T03:42:29.071Z (7 months ago)
- Topics: audio, automation, crackling, dotnet, dotnet-core, focusrite, interface, scarlett, solo, ui
- Language: C#
- Homepage:
- Size: 1.67 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# AutoFocus
https://github.com/piotrpdev/AutoFocus/assets/99439005/2fa79a56-4231-46ca-ba44-acaa1aa62f4e
## Overview
AutoFocus is a tool designed to automate the process of changing Sample Rate and Buffer Size in the Focusrite Notifier device settings. I made it because a lot of different programs change those settings when launched and then you have to manually change them back to prevent crackling in VoIP software (e.g. Discord).## Requirements
- Windows (only tested on 11)
- Focusrite Notifier ([comes bundled with Focusrite Control](https://support.focusrite.com/hc/en-gb/articles/360013505620-The-Focusrite-Notifier-icon-isn-t-in-the-Windows-taskbar))
- *make sure you have it set to launch at startup*## Where do I get it?
Download the latest version from [Releases](https://github.com/piotrpdev/AutoFocus/releases).
## Usage
You can use AutoFocus via the command-line interface. Here is a basic example:
```bash
AutoFocus.exe -s 48000 -b 128
```This command sets the Sample Rate to 48000 Hz and Buffer Size to 128 (default).
### Options
- `-s, --sample-rate `: Set the sample rate (in Hz). Default is "48000".
- `-b, --buffer-size `: Set the buffer size. Default is "128".
- `-n, --notifier-path `: Absolute path to 'Focusrite Notifier.exe'. Default is `"C:\\Program Files\\Focusrite\\Drivers\\Focusrite Notifier.exe"`.
- `-a, --notifier-args `: Arguments to pass when launching 'Focusrite Notifier.exe'. Default is "40000".
- `-f, --from-tray`: Try launching Focusrite Notifier using the tray icon. Default is false.
- `-t, --check-tray`: Check for Focusrite Notifier icon in non-hidden tray icons. Default is false.
- `-x, --check-hidden-tray`: Check for Focusrite Notifier icon in hidden tray icons. Default is true.
- `-w, --waitAfterSample`, How long to wait after changing Sample Rate (Notifier often freezes). Default is 500.## Troubleshooting
Debug logs are stored in `%LOCALAPPDATA%/AutoFocus/Logs/*.txt`
## What's under the hood? 👀
- [.NET Core 7](https://learn.microsoft.com/en-us/dotnet/core/introduction) (C#) for good Windows integration
- [FlaUI](https://github.com/FlaUI/FlaUI) (UIA3) for UI automation
- [CliFx](https://github.com/Tyrrrz/CliFx) for CLI functionality
- [Serilog](https://github.com/serilog/serilog) for logging## License
Licensed under the MIT License. See [LICENSE.md](LICENSE.md) for details.
## Acknowledgements
Thank you:
- Authors of the packages I used
- [Stack Overflow](https://stackoverflow.com/)
- Focusrite for making great audio products, please don't sue me 🙏.