Overview
RoMix provides a user-friendly graphical interface (built with CustomTkinter) that replaces the tedious manual process of uploading audio files to Roblox. Under the hood, it utilizes Spotify's `pedalboard` library to automatically master, normalize, and chunk audio before uploading. By integrating directly with the Roblox Open Cloud API, it allows creators to securely authenticate, manage rate limits automatically, grant cross-universe permissions, and export ready-to-use Lua scripts.
Features
Advanced Audio Processing (DSP Pipeline)
- **Smart Peak Limiter & Normalization:** Automatically normalizes all audio to a consistent `-6.0 dBFS` target while applying a smart limiter (with a `-1.0 dBFS` ceiling) to prevent clipping.
- Loudness Safety (RMS):** Automatically detects and attenuates overly compressed or loud audio without distortion, ensuring safe playback in-game.
- Audio Mix Speed / Pitch Control:** Built-in turntable-style resampling to alter the tempo of your audio (ranging from 0.5x to 2.5x).
- Auto-Trimming (7-Minute Chunking):** Automatically slices audio files that exceed Roblox's 7-minute limitation into smaller, sequential parts (e.g., Part 1, Part 2).
- OGG Export:** Exports the processed audio as high-quality OGG Vorbis (128 kbps) with metadata stripped for better compatibility and fingerprint-bypass.
Uploading & Automation
- **Bulk Uploading:** Select a folder and seamlessly upload multiple audio files in sequence.
- **Auto-Generate Lua File:** Automatically generates a formatted `.lua` file containing the newly uploaded Asset IDs, Titles, Durations, and Speed settings, ready to be pasted directly into Roblox Studio.
- **Targeted Uploads:** Easily toggle between uploading to a Personal User account or a Group account via Creator IDs.
- **Customizable Upload Delay:** Respects Roblox's API rate limits via a customizable delay timer (in seconds) between each upload.
- **Auto-Grant Permissions:** Automatically grants asset permissions to specific Universes (Games), Users, or Groups immediately upon a successful upload.
Security & Integration
- **Secure Credential Storage:** Utilizes your OS keychain (Windows Credential Manager / macOS Keychain) to securely store API keys and bridge secrets, keeping them safe from plaintext exposure.
- **Owner Mode (Datastore Sync):** Synchronize uploaded asset metadata (Category, Genre, Playlist Name) to an external HTTP Bridge server via secure POST requests.
Requirements
- OS
- Windows 11, 64-bit, or Windows 10 version 22H2 (build 19045), 64-bit.
- MEMORY
- 8 GB RAM or more.
- PROCESSOR
- Quad-core x64 processor, 2.5 GHz or faster.
FAQ
Where is my API key saved?
For maximum security, your API key is saved in your operating system's secure keychain (e.g., Windows Credential Manager). It never touches the filesystem as plaintext. If the keychain is unavailable, it will safely fallback to a local JSON configuration.
How do I assign my audio uploads to a Group instead of my personal account?
In the Configuration panel, change the "Creator Type" dropdown to `Group` and enter your Group's numeric ID in the "Creator ID" field.
Why do I need to set an upload delay?
Roblox strictly enforces rate limits on their API. Setting a delay (e.g., 5 seconds) ensures your upload requests aren't blocked or flagged as spam.
What is "Owner Mode" or "Datastore Sync"?
It is an advanced feature for server owners that POSTs the uploaded audio data (including Category, Genre, and Playlist details) to a custom HTTP Bridge Server URL for external tracking or in-game syncing.
Where can I find the generated Lua file?
After a successful upload, the application generates a `.lua` file containing all the Asset IDs and properties. You can find it alongside your uploaded audio or output directory.