Repository navigation
Releases: shanevbg/MilkRemote
Release list
MilkRemote v1.4.0
MilkRemote v1.4.0
Android remote control for MDropDX12 music visualizer.
Requires MDropDX12 v3.1.0 or newer. Almost everything below talks to commands older releases do not have. The app asks the PC what it supports when it connects and hides what that PC cannot do, so an older MDropDX12 still works — with less on screen.
What's New
A Mixer tab
Your Windows volume, per application and per device, from the phone.
- Every fader the PC's mixer draws, in the order it draws them — the PC owns the arrangement, the phone renders it literally, so the two always agree
- Drag to reorder, and the move is sent to the PC
- Coarse and fine steps on every fader
- Mute only where muting is possible, rather than a button that does nothing
- Device names, and a wireless headset's battery charge on the row of the fader that controls it
- Hotkey slots shown as markers on the faders they point at
- Link faders to the volume keys — pick any set and the phone's volume rocker moves them together, remembered per phone
Background operation
- Stay connected with the app in the background, so the volume keys and the remote keep working with the screen off
- Optionally present the phone as a remote media/volume target while connected
- Come back to the tab you left after Android pauses or sleeps the app
Displays, rebuilt
- A monitor map — your desktop drawn to scale from the real monitor geometry, including monitors left of or above the main one. Tap one to configure it.
- Four tiers per display: Off, Mirror, or its own preset — drawn either by the main window or by an instance of its own
- Watermark one display at a time, dimmed and click-through on that screen alone
- Bring a display to the front, or send it to the back, without taking focus
- Saved arrangements — save the whole layout by name, load one back, choose which loads at startup
- One control for every screen, for walking away from the keyboard, plus a screensaver control — both also Quick Settings tiles
- Move the main render to another display from the map
- Per-display preset stepping, order and cycle interval
- Step the main window's preset without moving the independent displays
A Presets tab
- Browse, search and load presets from the phone, grouped by the folders they actually live in
- Sort by name, rating, most played, most watched or last played
- Load a preset onto any display, not just the main window
- Rate, flag and tag from the row without loading the preset first
Fixes
- A dead address is no longer retried forever. A PC with two addresses on one subnet publishes both, and the phone could latch onto the one that goes nowhere — with no error, because the address is routable and the packets simply vanish. The phone now prefers an address it has actually received a packet from, moves on when one fails, and remembers the one that worked.
- A silent server, a slow connect, or a cancelled one could leave the app reconnecting forever or stranded with a good address in hand.
- Commands survive a reconnect, and a superseded connection no longer sends commands down one socket while replies arrive on another.
- Volume and the wave sliders did nothing on some languages. On German, French, Spanish, Russian or Portuguese the app sent
0,50where the PC expected0.50, and the PC read every one of those as zero. - The connection header no longer renders underneath the status bar.
- "Move to Display" could move the render window to the wrong monitor.
- Several display controls were addressed through a relay the PC no longer answers for in-process displays.
Install
Download app-release.apk below. Android 8.0 (API 26) or newer.
MilkRemote v1.3.0
MilkRemote v1.3.0
Android remote control for MDropDX12 music visualizer.
What's New
Button Templates
Add buttons from 80+ predefined MDropDX12 actions with a searchable template picker. Categories:
- Presets — Next/Prev, Random Mashup, Lock, Hard Cut, Quick Save, Auto Preset
- Media — Play/Pause, Next/Prev Track, Stop, Rewind, Fast Forward
- Window — Fullscreen, Borderless, Always On Top, Transparency, Screenshot
- Display — Mirror, Watermark, Capture, Stretch
- Opacity — Up/Down, 25/50/75/100%
- Visuals — Wave Mode/Alpha/Scale, Zoom, Warp, Rotate, Brightness, Hue, Gamma, Scramble
- Effects — Sprite Mode, Clear Sprites/Texts, Inject Effect, Shader Lock
- Quality — Up/Down
- Spout — Toggle, Fixed Size
- Info/Debug — Sound Info, Preset Info, Song Info, Rating, Shader Help
- Windows — Open Settings, Displays, Hotkeys, Board, Presets, Sprites, Messages, Shader Import, VideoFX, Remote, Visual, Colors, Script
Pick a template, optionally customize the label, and save. Two FABs on the Buttons tab: template picker (list icon) and custom button creator (+).
Developer Documentation
Setup guides for Ubuntu 24.04, Fedora 43, and Windows 11. Architecture guide covering command flow, adding controls, screens, and button types.
Downloads
| File | Description |
|---|---|
| MilkRemote-v1.3.0.apk | Release build (signed, minified) |
Install
- Download the APK to your phone
- Tap the file to install
- If prompted, allow Install unknown apps for your browser
- If you see Play Protect warning, tap More details > Install anyway
Via ADB:
adb install MilkRemote-v1.3.0.apk
Requirements
- Android 8.0+ (API 26)
- MDropDX12 running on the same LAN with TCP remote enabled (default port 9270)
MilkRemote v1.2.0
MilkRemote v1.2.0
Android remote control for MDropDX12 music visualizer.
What's New
Connection stability overhaul:
- Fixed TCP connection creating duplicate ghost connections on the server
- App now properly closes existing socket before reconnecting
- Auto-reconnect waits for each attempt to fully resolve before retrying
- Ping timeout relaxed (45s) to avoid premature disconnects on busy networks
- TCP keepalive enabled for faster dead-connection detection
UI fixes:
- Connection header now correctly shows server name and connected status
- Settings screen shows accurate connection state
- New app icon (wave-droplet on psychedelic gradient)
- Renamed app to MilkRemote
Features:
- Volume slider & mute toggle for Windows audio device
- Audio device picker in Settings
- Reorderable UI sections with persistent layout
- Media keys (play/pause, next, prev) now work correctly
Downloads
| File | Description |
|---|---|
| MilkRemote-v1.2.0.apk | Release build (signed, minified) |
| MilkRemote-v1.2.0-debug.apk | Debug build (self-signed, includes logging) |
Install
- Download an APK to your phone
- Tap the file to install
- If prompted, allow Install unknown apps for your browser
- If you see Play Protect warning, tap More details > Install anyway
Via ADB:
adb install MilkRemote-v1.2.0.apk
Requirements
- Android 8.0+ (API 26)
- MDropDX12 running on the same LAN with TCP remote enabled (default port 9270)
- Recommended: Update MDropDX12 to latest build for connection stability fixes (TCP keepalive + duplicate client eviction)
MilkRemote v1.1.0
MilkRemote v1.1.0
Changes
- Renamed app to MilkRemote
- New app icon — wave-droplet on psychedelic gradient (shared with MDropDX12)
- Volume slider & mute toggle for Windows audio device
- Audio device picker in Settings
- Reorderable UI sections with persistent layout
- Media key fix (play/pause, next, prev now work correctly)
- Targets Android 16 (API 36) for Pixel 10 and newer
Install
- Download MilkRemote-v1.1.0.apk to your phone
- Tap the downloaded file to install
- If you see "Install unknown apps" — tap Settings, enable Allow from this source for your browser (e.g. Chrome), then go back and tap Install
- If you see "Blocked by Play Protect" — tap More details > Install anyway
Or via USB with ADB:
adb install MilkRemote-v1.1.0.apk
Requirements
- Android 8.0+ (API 26)
- MDropDX12 running on the same LAN with TCP remote enabled (default port 9270)
MilkRemote v1.0.0
MilkRemote v1.0.0
Android remote control for MilkDrop DX12 music visualizer.
Features
- Volume control & mute toggle for Windows audio device
- Preset cycling (prev / next)
- Display mode switching (Fullscreen, Mirror, Watermark, Capture, Borderless)
- Wave, color, variable, and audio parameter controls
- Custom programmable buttons
- Auto-discovery via mDNS and UDP beacons
- Auto-reconnect
- Reorderable UI sections with persistent layout
Download & Install
- Download MilkRemote-v1.0.0.apk from the assets below.
- Transfer the APK to your Android device (or download directly on the device).
Enable installing from unknown sources
Since this APK is not signed with a Play Store key, Android will block installation by default. To allow it:
Android 8.0+ (per-app permission):
- When prompted "Install unknown apps", tap Settings.
- Toggle Allow from this source for the app you're using to open the APK (e.g., Chrome, Files, or your file manager).
- Go back and tap Install.
Or manually:
- Go to Settings > Apps > Special app access > Install unknown apps (path varies by manufacturer).
- Select the app you'll use to open the APK (e.g., Chrome, Files).
- Toggle Allow from this source.
Install the APK
- On device: Tap the downloaded APK file and follow the prompts.
- Via ADB: Connect your device via USB with developer mode enabled, then run:
adb install MilkRemote-v1.0.0.apk
Google Play Protect warning
You may see a "Blocked by Play Protect" or "Unknown developer" warning. Tap More details > Install anyway to proceed.
Requirements
- Android 8.0+ (API 26)
- MDropDX12 running on the same LAN with TCP remote enabled (default port 9270)