Back to Side Projects
FLStudio RPC

FLStudio RPC

A Discord Rich Presence application that displays info about the current FL Studio project name and session duration in your Discord status. Built with Python using process monitoring and window detection.

Tags

PythonDiscordProcess MonitoringQoL Tools

Technologies Used

PythonpypresencepygetwindowpsutilDiscord APIProcess Detection

Project Links

Project Details

July 29, 2024
Side Project

Quick Stats

4
Tags
6
Technologies

Overview

FLStudio RPC is a Discord Rich Presence application that automatically detects when FL Studio is running and displays the current project name and session duration in your Discord status. This tool enhances the music production workflow by providing seamless integration between FL Studio and Discord.

The application runs silently in the background, monitoring FL Studio's process and window information to provide real-time updates to your Discord presence, making it easy for collaborators and friends to see what you're working on.

Key Features

Automatic Detection

Seamlessly detects when FL Studio is running and automatically starts the Rich Presence display

Project Name Display

Shows the current FL Studio project name in your Discord status for easy identification

Session Timer

Tracks how long you've been working on the current project with a live timer

Window Detection

Uses advanced window detection to accurately identify FL Studio and extract project information

Smart Updates

Automatically updates when you switch between projects or open new FL Studio sessions

Auto Cleanup

Automatically clears the Rich Presence when FL Studio is closed, keeping your status clean

Discord Integration Showcase

See how FLStudio RPC enhances your Discord presence with real-time project information and session tracking:

Native Discord Support

The application integrates seamlessly with Discord's Rich Presence API, providing native support for displaying FL Studio activity in your Discord status.

Native Discord Support

Native Discord Support

Discord Rich Presence integration with FL Studio

Named Project

Rich Presence with Named Project

Rich Presence with Named Project

Shows project name and session duration

Unnamed Project

Rich Presence with Unnamed Project

Rich Presence with Unnamed Project

Handles untitled projects gracefully

How It Works

The application uses a sophisticated approach to monitor FL Studio and provide seamless Discord integration:

Process Flow

  1. 1Process Monitoring: Continuously monitors for FL64.exe process using system utilities
  2. 2Window Analysis: Analyzes FL Studio window titles to extract project names
  3. 3Discord Integration: Updates Discord Rich Presence with project info and session timer
  4. 4Auto Cleanup: Automatically clears presence when FL Studio closes

Installation & Usage

Simple setup process with automatic shortcut creation for easy access and seamless operation.

Installation Steps

1

Download Release

Download the latest release from GitHub releases page

2

Extract Files

Extract the downloaded archive to your preferred location

3

Run Setup

Run FLStudioRPC.bat to launch FL Studio and the RPC application

4

Enjoy

A desktop shortcut will be created automatically for future use

Usage Instructions

Automatic Operation

The application runs automatically in the background once started. No manual intervention required.

Discord Status

Your Discord status will show "Working on [Project Name]" with a session timer when FL Studio is active.

Project Switching

When you open a different project in FL Studio, the status updates automatically within 5 seconds.

Clean Exit

Close FL Studio to automatically clear the Discord presence and stop the RPC application.

Technical Implementation

The system employs efficient process monitoring and window detection techniques to provide seamless integration:

1. Process Detection

Continuous monitoring of system processes to detect when FL Studio (FL64.exe) is running. The system uses efficient process enumeration to minimize resource usage.

2. Window Analysis

Advanced window detection to identify FL Studio windows and extract project names from window titles. Handles various window states including named and unnamed projects.

3. Discord Integration

Seamless integration with Discord's Rich Presence API to display project information and session timers. Updates are sent efficiently to minimize API usage.

4. Session Management

Intelligent session tracking that resets timers when projects change and automatically cleans up presence data when FL Studio closes.

Challenges & Solutions

Challenge: Process Detection

Reliably detecting when FL Studio is running without consuming excessive system resources.

Solution: Efficient process monitoring with optimized polling intervals and lightweight process enumeration techniques.

Challenge: Window Title Parsing

Extracting project names from FL Studio window titles with varying formats and special characters.

Solution: Robust string parsing algorithms that handle different window title formats and gracefully manage unnamed projects.

Challenge: Discord API Integration

Maintaining stable connection with Discord's Rich Presence API and handling connection issues gracefully.

Solution: Reliable connection management with automatic reconnection and error handling for seamless user experience.

Technical Architecture

Process Monitor

Efficient system process detection and monitoring

Window Detection

Advanced window analysis and title parsing

Discord API

Rich Presence integration and status management

Skills & Technologies Gained

Python
Discord API
Process Monitoring
Window Detection
System Integration
Application Packaging
  • Python system programming and process monitoring with psutil
  • Discord Rich Presence API integration and status management
  • Window detection and title parsing using pygetwindow
  • Real-time application monitoring and state management
  • System integration and background process development
  • Application packaging and distribution with PyInstaller
  • Batch scripting for automated setup and shortcut creation
  • User experience design for background applications

This project provided valuable experience in system-level programming, API integration, and creating user-friendly automation tools. It demonstrated the power of combining multiple technologies to solve real-world workflow problems.