Skip to content

MihaiStreames/DAWPresence

Repository files navigation

DAWPresence icon DAWPresence

Discord Rich Presence for your DAW. Polls running processes, extracts the project name from the window title, and pushes it to Discord. Under 2 MB, no runtime deps, no bloat.

Release Platform CI License

Home Settings Discord Preview

Origin

Started as a Python rewrite of Serena1432's DAWRPC. The original is C# and Windows-only, and I wanted to learn how it worked. Once the Python port was solid I picked Rust to learn the language properly and rewrote the whole thing again. DAWPresence is the result, and my first real Rust project.

Requirements

  • Windows 10 or later
  • Discord desktop app

Linux support tracked in issue #1.

Get it running

Installer (recommended)

Download the setup .exe from the latest release. Comes with a start menu shortcut, optional desktop shortcut, and optional auto-start with Windows.

Portable

Download DAWPresence.exe from the latest release and run it. Settings live in %APPDATA%\dawpresence.

Build from source

On Windows:

Note

Windows is very annoying. You WILL need MSVC (Build Tools with Visual C++). One command handles everything silently:

winget install Microsoft.VisualStudio.2022.BuildTools --override "--quiet --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows11SDK.22621 --includeRecommended"

If you use rust-analyzer, cargo also needs LIB and PATH set system-wide (run vcvars64.bat or set them permanently). The upside is that no .cargo/config.toml is needed since MSVC is the default target.

git clone https://github.com/MihaiStreames/DAWPresence.git
cd DAWPresence
cargo build --release

On Linux:

Note

You need gcc-mingw-w64-x86-64:

pacman -S mingw-w64-gcc mingw-w64-binutils # arch
apt install gcc-mingw-w64-x86-64 # ubuntu

Add a .cargo/config.toml so you don't have to pass --target every time:

[build]
target = "x86_64-pc-windows-gnu"
git clone https://github.com/MihaiStreames/DAWPresence.git
cd DAWPresence
cargo build --release # drop --target if you added config.toml above

Supported DAWs

DAW Versions
FL Studio 11+
Ableton Live 9-12 (Intro/Standard/Suite)
REAPER All
Bitwig Studio All
Studio One All
LMMS All
Cubase 14

Add a DAW

  1. Create a Discord application at the Discord Developer Portal.
  2. Add a Rich Presence asset named icon with the DAW's icon.
  3. Add an entry to daws.json:
{
  "ProcessName": "YourDAW",
  "DisplayText": "Your DAW Name",
  "TitleRegex": "^(.*?)(?= - Your DAW)",
  "ClientID": "your_discord_client_id",
  "HideVersion": false
}
Field Type Description
ProcessName string Process name without .exe
DisplayText string Name shown in DAWPresence
TitleRegex string Regex to extract project name from window title
ClientID string Discord application client ID
HideVersion boolean Whether to hide version info
AdditionalProcessNames string[] Extra process name prefixes to aggregate

Acknowledgments

DAWPresence wouldn't exist without Serena1432's DAWRPC. The DAW detection model, regex-driven project name extraction, daws.json schema, and overall shape of the tool all come from there. Thanks to Serena1432 for building the original.

License

MIT. See LICENSE.

Made with ❤️

About

Show what you are creating on Discord.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Contributors