Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

364 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RustTracker 🎵🦀

RustTracker UI

A high-performance, real-time audio visualizer, video player, and tracker module player built in Rust with Vulkan/WGPU hardware acceleration.

RustTracker leverages a 3-Thread DSP Architecture and Hardware-Accelerated Compute Shaders to deliver ultra-low-latency playback and multi-channel spatial audio analysis at 2,000+ FPS.


🚀 Features

  • 21 Hardware Visualizers: Cinematic WGPU compute and fragment shaders mapped tightly to acoustic frequencies (Ferrofluid, 3D Fire, 3D Synthwave Racer, 3D VU Meter Rack, 3D Glass Water Lyrics, Water Splash, CRT Oscilloscope, Bioluminescence, Neon Corridor, Matrix Rain, and more).
  • Multi-Platform Support: Native support for Linux (Fedora/RHEL & Ubuntu/Debian), Android (Mobile & Tablet), Windows 10/11, macOS, and Steam Deck (Gaming Mode).
  • Universal Media Playback:
    • Tracker Modules: .MOD, .S3M, .IT, .XM with real-time piano-roll pattern editor and synchronized channel VU meters.
    • Lossless & Compressed Audio: FLAC, WAV, MP3, AAC, OGG, Opus, AIFF.
    • Video Playback & Multi-Track Audio: MP4, MKV, AVI, WebM with hardware-accelerated video decoding, HDR color spaces, and instant switching between multiple audio tracks (e.g., Vocals, Instrumental, Stems, Dubs).
    • Bitstream Passthrough: Real-time SPDIF/HDMI bitstream passthrough for Dolby Atmos, DTS-HD, and TrueHD.
    • Live Microphone Input: Instant audio-reactive capture via --mic.
  • Synchronized Lyrics & Heatmap: Embedded and LRC synchronized lyrics with real-time heatmaps and 3D vector TrueType glyph extrusion.
  • Intuitive Touch & Gamepad Controls: Tailored touch gestures for mobile screens and native controller mapping for Steam Deck / Gamepads.

🎨 Visualizations

Photorealistic Ferrofluid Multi-Channel 3D Fire
Ferrofluid 3D Fire
CRT Oscilloscope Frequency Spectrum
CRT Spectrum

📱 Mobile Gestures (Android)

RustTracker features a specialized dual-pane interface optimized for mobile and tablet displays:

Portrait Mode (Two-Pane Layout)

  • Top Pane (Upper 50% — HUD / Track / Video):
    • Swipe Left / Right: Cycle HUD tabs (Channels ➔ Heatmap / Lyrics ➔ Track Info ➔ Video Stream).
    • Swipe Up: Expand to Fullscreen Video (when video stream is active).
    • Swipe Down: Exit Fullscreen Video back to 50/50 split view.
  • Bottom Pane (Lower 50% — Real-Time Visualizer):
    • Swipe Left / Right: Switch to next / previous visualizer module.
  • Bottom Scrubber Edge (Bottom 12%):
    • Touch & Drag: Real-time interactive timeline seeking across track duration.

Landscape Mode (Full-Screen Visualizer)

  • Swipe Left / Right: Switch visualizers.
  • Swipe Up / Down: Rotate HUD overlays (Channels, Heatmap / Lyrics, Track Info, Video).

Universal Gestures (Both Orientations)

  • Single Tap: Play / Pause toggle (or tap top-right [📂 OPEN] for system file picker).
  • Double Tap: Toggle HUD Visibility (HUD: Visible / HUD: Hidden).
  • Two-Finger Tap: Cycle Audio Track on multi-track media files.

🎮 Desktop & Gamepad Controls

Action Desktop Key Gamepad (Xbox / Steam Deck)
Play / Pause Space A (South) or Start
Seek Backward / Forward Left / Right Arrow Left Trigger (LT) / Right Trigger (RT) (analog scrub)
Prev / Next Track (or Tracker Order) Up / Down Arrow ([ / ] for Order) D-Pad Left / D-Pad Right
Prev / Next Visualizer Page Up / Page Down or , / . D-Pad Up / D-Pad Down
Visualizer Picker Popup V Y (North Button)
Cycle Display Mode (Both ➔ HUD ➔ Vis) Tab B (East Button)
Cycle Audio Track A Right Stick Click (R3)
Toggle Performance Stats S Select / Back Button
Open File Dialog O X (West Button)
Open Stream / URL Dialog U Left Stick Click (L3)
Toggle Playlist Drawer P Left Bumper (LB)
Cycle Repeat Mode R Right Bumper (RB)
Fullscreen Toggle F or F11 —
Quit Q or Escape —

⚙️ Command-Line Options & Environment Variables

Command-Line Flags

  • --tui: Launch in terminal UI (TUI) spectrum analyzer and tracker mode.
  • --mic: Capture live microphone input instead of playing a file.
  • --vis <id>: Start directly on the specified hardware visualizer ID.
  • --uncapped: Disable VSync/refresh-rate pacing and run at uncapped hardware frame rates (Immediate present mode).
  • --bench [frames]: Run automated benchmark loop for a given frame count (default 300) with GPU timestamp profiling enabled.
  • --fullscreen / --windowed: Force fullscreen or windowed startup mode.

Environment Variables

  • RUSTTRACKER_FPS_LIMIT=<fps>: Set an explicit software framerate cap (e.g. RUSTTRACKER_FPS_LIMIT=120). By default, RustTracker paces to the active display refresh rate (or VSync).
  • RUSTTRACKER_PROFILE=1: Enables GPU hardware timestamp profiling (wgpu::Features::TIMESTAMP_QUERY) in the Stats overlay (S key) to measure exact per-shader microsecond timings.
  • RUSTTRACKER_PRESENT_MODE=<fifo|mailbox|immediate>: Override the WGPU surface present mode.
  • RUSTTRACKER_PIPELINE_CACHE=0: Disable on-disk Vulkan/WGPU pipeline cache loading and saving.

📦 Installation & Download

Pre-compiled packages for all platforms are available on the GitHub Releases page:

  • Android: Download and install app-release.apk (or RustTracker-Android-*.apk).
  • Windows: Download and run RustTracker-Setup.exe installer.
  • macOS: Download and open RustTracker-MacOS-Installer.dmg.
  • Fedora / RHEL: sudo dnf install ./rusttracker-*.x86_64.rpm
  • Ubuntu / Debian: sudo dpkg -i ./rusttracker_*_amd64.deb
  • Steam Deck: Download RustTracker-SteamDeck-*.AppImage, mark executable, and add as Non-Steam Game in Steam Gaming Mode.

🛠️ Building from Source

Prerequisites

  • Rust 1.85+ (Edition 2024)
  • Vulkan SDK / Drivers (vulkan-loader, mesa-vulkan-drivers)
  • FFmpeg 6.0+ libraries & libopenmpt

Linux (Fedora)

sudo dnf install -y gcc gcc-c++ binutils pkgconfig alsa-lib-devel wayland-devel libX11-devel libxkbcommon-devel systemd-devel ffmpeg-devel libopenmpt-devel clang clang-devel
cargo build --release

Android (APK)

# Requires Android SDK + NDK and cargo-ndk
cargo install cargo-ndk
rustup target add aarch64-linux-android
cd android && ./gradlew assembleRelease

📜 License

This project is licensed under the GNU General Public License v3.0 (GPLv3).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages