Repository navigation
Releases: arkamax404-max/MediaControlGsmtcPlugin
Release list
Media Control for D200 v1.7.1
Clearer artwork controls
Artwork mosaic tiles can now show a compact action badge in their matching outer corner. Each badge uses a white, state-aware icon, supports a configurable color, and disappears completely when no secondary action is assigned.
Coordinated Now Playing color
Now Playing adds a single accent-color setting for both the play/pause indicator and the filled progress bar, making the display easier to coordinate with any setup.
Store presentation
- Refreshed cover and banner artwork.
- Reworked the plugin description for faster scanning and clearer benefits.
- Preserved the single-package Windows installation with the embedded supervised companion.
Verification
- Physically validated the artwork badges and Now Playing accent controls on D200.
- 288 Python tests passed.
- 64 Node.js tests passed.
- Pinned Ulanzi SDK verification passed.
- Python/JavaScript artwork badge parity passed across 112 cases.
- Main and tag GitHub Actions runs passed.
- Plugin package: 203 files, exact ZIP round-trip verified.
- Package inventory SHA-256:
2e57300228521f9ffcfe846b2607272b1da92835f68825fc6d13881774107709.
Asset
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
b4551a78478ed313f426abac547443d3913319cd01ac92e57d0be28741a5240b
Media Control for D200 v1.7.0
Single-package Windows release
Media Control for D200 now ships the Windows companion inside the plugin ZIP. New users install only the plugin; there is no separate companion installer asset in this release.
Companion lifecycle
- Embeds the frozen
GSMTCD200Companionv1.4.0 while preserving process isolation. - Reuses an external companion when its version is equal to or newer than the bundled minimum.
- Authenticates and stops an older external instance before launching the bundled companion.
- Binds the bundled companion to the plugin runtime PID so it exits even when Studio terminates the runtime abruptly.
- Keeps lifecycle traffic local to authenticated loopback HTTP.
Migration
Existing v1.6.0 installations with companion v1.3.0 migrate automatically when Studio starts the updated plugin. The legacy standalone installer remains available from the v1.6.0 release for compatibility only.
Verification
- Physically validated automatic replacement of external companion v1.3.0 by embedded v1.4.0
- Physically validated parent PID ownership and clean shutdown after closing Studio
- 283 Python tests passed
- 62 Node tests passed
- Pinned Ulanzi SDK verifier passed
- Main and tag GitHub Actions runs passed
- Companion bundle: 85 files, SHA-256 tree
7808872fb561a9e25647bb2032d4c71907285999b83412f28f8190449ee21ceb - Plugin package: 203 files, exact round-trip verified
Asset
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
389e789ce22b423c4efde64299af9b52fc2ed13d30595d2e4a5744b8684d3d2b
Media Control for D200 v1.6.0
Final Media Center version
This is the final version of the Media Center experience for Media Control for D200. It completes the intended artwork, playback, progress, transport, audio, and Large Display controls in one physically validated layout.
Now Playing artwork
- Adds the Large Display-style circular Play/Pause badge over the top-right corner.
- Adds an optional animated progress bar, enabled by default.
- Uses the approved 7 px full-width bar flush with the bottom edge.
- Keeps color artwork while playing and grayscale artwork while paused.
Actionable artwork tiles
- Each of the four mosaic tiles can independently run None, Previous, Play/Pause, Next, Volume Up, Volume Down, or Mute Toggle.
- Audio actions retain an independent source selection per tile.
- Secondary actions use the existing bounded command queue and never replace the artwork quadrant.
Verification
- Physically validated on the D200
- 273 Python tests
- 62 Node tests
- Ulanzi SDK verifier with
plugin-common-python 0.1.0 - Main and tag GitHub Actions runs passed
- Frozen runtime rebuilt with PyInstaller 6.22.2
- 118-file plugin package round-trip verified
Assets
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
5c1db6f82a16b933070fad40b22c27c3d131f719af4749350cee7ed4d46d3bc9
- SHA-256:
GSMTCD200Companion-1.3.0-local-unsigned.exe- SHA-256:
90a67603502fd557fe5b5a4e9d04e3b840829909bfedf24a0063d57c88c111fd
- SHA-256:
The companion remains v1.3.0 because its API and behavior did not change.
Media Control for D200 v1.5.0
Configurable control icon colors
- Adds an independent icon color picker and HEX field to Volume Up, Volume Down, and Mute Toggle.
- Adds the same per-key color control to Previous, Play/Pause, and Next.
- Keeps
#1DB954as the default and safely normalizes invalid or legacy settings. - Keeps one selected color across both Play and Pause states.
Verification
- Physically validated on the D200
- 272 Python tests
- 61 Node tests
- Ulanzi SDK verifier with
plugin-common-python 0.1.0 - Main and tag GitHub Actions runs passed
- Frozen runtime rebuilt with PyInstaller 6.22.2
- 110-file plugin package round-trip verified
Assets
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
2c811a696d03873b6f1c0a2f637f2954554415a00948afb099d350e56081f0d8
- SHA-256:
GSMTCD200Companion-1.3.0-local-unsigned.exe- SHA-256:
90a67603502fd557fe5b5a4e9d04e3b840829909bfedf24a0063d57c88c111fd
- SHA-256:
The companion remains v1.3.0 because its API and behavior did not change.
Media Control for D200 v1.4.5
Large Display readability
- Increases elapsed and remaining time labels from 13 px to 18 px.
- Uses bold 700 weight for both time values.
- Keeps the validated baseline and progress-bar spacing unchanged.
Verification
- Physically validated on the D200
- 270 Python tests
- 60 Node tests
- Ulanzi SDK verifier with
plugin-common-python 0.1.0 - Frozen runtime rebuilt with PyInstaller 6.22.2
Assets
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
667b59ed6f95d2b0f8b4075ecabfe7174aa2551d3ea0e89e439586537b0a37a8
- SHA-256:
GSMTCD200Companion-1.3.0-local-unsigned.exe- SHA-256:
90a67603502fd557fe5b5a4e9d04e3b840829909bfedf24a0063d57c88c111fd
- SHA-256:
The companion remains v1.3.0 because its API and behavior did not change.
Media Control for D200 v1.4.4
Display polish
- Moves the Mute status label upward for clearer separation from the speaker glyph.
- Renders the artist name in bold on Large Now Playing.
- Preserves the physically approved volume and speaker icon sizing.
Verification
- 270 Python tests
- 60 Node tests
- Ulanzi SDK verifier with
plugin-common-python 0.1.0 - Frozen runtime rebuilt with PyInstaller 6.22.2
- Local package inventory verified before installation
Assets
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
40bfb7ae16d5bdb6e9a9891139545dc0c4b6204e5b179d92dd42bb37adf8251f
- SHA-256:
GSMTCD200Companion-1.3.0-local-unsigned.exe- SHA-256:
90a67603502fd557fe5b5a4e9d04e3b840829909bfedf24a0063d57c88c111fd
- SHA-256:
The companion remains v1.3.0 because its API and behavior did not change.
Media Control for D200 v1.4.3
Metadata correction
- Sets the plugin author to Santiago Pérez in the manifest consumed by Ulanzi Studio and the Community Store.
- Retains the new Large Now Playing cover introduced in v1.4.2.
- Runtime behavior remains unchanged from the physically validated v1.4.1 release.
Verification
- 60 Node tests
- 18 focused packaging/profile-tool tests
- Plugin package generated from the previously validated frozen runtime
Assets
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
3216514c530fd2c1931795a936ff7cda60368460010f56bc66fda9b166673580
- SHA-256:
GSMTCD200Companion-1.3.0-local-unsigned.exe- SHA-256:
90a67603502fd557fe5b5a4e9d04e3b840829909bfedf24a0063d57c88c111fd
- SHA-256:
The companion remains v1.3.0 because its API and behavior did not change.
Media Control for D200 v1.4.2
Store refresh
- Publishes the new Community Store cover featuring Large Now Playing on the D200 center display.
- Keeps the v1.4.1 runtime behavior unchanged: managed Install/Repair/Restore, persistent background-only mode, media rendering, and aligned Mute controls.
- Bumps the plugin metadata to v1.4.2 so the Store has an unambiguous latest release to reindex.
Verification
- 60 Node tests
- 48 focused packaging/Profile Assistant/profile-tool tests
- Uses the same previously validated frozen runtime from v1.4.1
Assets
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
4105f0bb0b5aa2d9b19cf7642bce6da11828d0506f2bee0c82493768d695c165
- SHA-256:
GSMTCD200Companion-1.3.0-local-unsigned.exe- SHA-256:
90a67603502fd557fe5b5a4e9d04e3b840829909bfedf24a0063d57c88c111fd
- SHA-256:
The companion remains v1.3.0 because its API and behavior did not change.
Media Control for D200 v1.4.1
Highlights
- Adds Large Now Playing for the D200 center display with artwork, title, larger artist text, playback state, progress, and time.
- Adds Setup Large Display, a guided Install, Repair, and Restore workflow for the reserved
3_2slot. - Keeps the center in background-only mode with
SmallViewMode: 2, so the built-in clock does not return when revisiting the page. - Aligns the dynamic Mute speaker with Volume Up and Volume Down while leaving Studio titles optional for source labels.
Guided setup
- Install the companion and plugin.
- Drag Setup Large Display to an unused normal key on the target page.
- Choose Install and press the key.
- Wait for
Waiting for Studio to close, then close Studio normally. - Profile Assistant verifies a complete backup, updates the center entry, and attempts to reopen Studio.
Use Repair if Studio restores the built-in widget. Use Restore original to recover the exact center entry captured during Install.
Safety
Profile Assistant edits Studio's private ProfilesV2 format only while Studio is closed. Requests and receipts are authenticated, operations are serialized, backups are hash-verified and fsynced, writes are atomic, and unknown concurrent bytes are preserved for manual recovery rather than overwritten.
This private profile technique is physically validated with Ulanzi Studio 3.2.11 and a D200. Revalidate after Studio upgrades.
Verification
- 270 Python tests
- 60 Node tests
- Pinned real Ulanzi Python SDK verifier
- Frozen Python 3.14 runtime build
- Physical D200 validation of Install, Restore, reinstall, page switching, clock suppression, media rendering, and Mute alignment
Assets
com.arkamax404.mediacontrold200.ulanziPlugin.zip- SHA-256:
538808a51a81f1d5cdeb730706aaf044dea0b83a74d09c5154aae85d93c4388e
- SHA-256:
GSMTCD200Companion-1.3.0-local-unsigned.exe- SHA-256:
90a67603502fd557fe5b5a4e9d04e3b840829909bfedf24a0063d57c88c111fd
- SHA-256:
The companion remains at v1.3.0 because its API and behavior did not change in this plugin-focused release.
Acknowledgement
Thanks to chilleno/claude-deck for documenting and demonstrating the community 3_2 center-slot technique that informed this implementation.
Media Control for D200 v1.3.0
Media Control for D200 v1.3.0
Selectable audio sources
- Volume Up, Volume Down, and Mute Toggle now let you choose the Windows system volume or any application with an active audio session.
- Each key stores its own source, so the three actions can control one shared target or different applications.
- The selector refreshes from the audio sessions currently available on the default Windows output.
- Key labels and mute state follow the selected source. Existing keys continue to default to Spotify.
Compatibility
This release requires the v1.3.0 companion. The plugin uses bridge API 1.1; older companions are rejected rather than applying a command to the wrong source.
Downloads
| Asset | What it is |
|---|---|
GSMTCD200Companion-1.3.0-local-unsigned.exe |
Required local companion installer with selectable Core Audio source support. |
com.arkamax404.mediacontrold200.ulanziPlugin.zip |
Ulanzi Studio plugin package v1.3.0. |
Quick start
- Close Ulanzi Studio.
- Install
GSMTCD200Companion-1.3.0-local-unsigned.exe. - Import the extracted plugin folder through Ulanzi Studio and restart Studio.
- Select each audio key and choose its Audio source.
Physically validated on a D200 with process and system-volume targets. Automated verification: 200 Python tests, 57 Node tests, frozen companion verification, real Ulanzi SDK integration, and installer receipt validation.