Skip to content

Releases: mrnil/OBSStudioForLogi

v1.3.0 - Remote OBS, Stats, Media Controls

14 Jun 20:33
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Remote OBS, Performance Stats, and Media Controls

This release adds significant new capabilities: control OBS on a remote machine over the network, monitor real-time performance statistics, and play/pause/stop media sources directly from your hardware.


New Features

Remote OBS Connection

You can now connect to OBS Studio running on a different computer on your network. Configure via the new Plugin Settings action:

  • Use Local OBS checkbox (default: checked) — uncheck to use manual settings
  • IP Address — the remote machine's IP (detected local IP shown in label for reference)
  • Port — WebSocket port (default 4455)
  • Password — WebSocket authentication password
  • Settings persist between sessions automatically

Performance Monitoring (Group 1. OBS)

  • OBS Stats Summary — single button showing FPS, CPU%, and dropped frames at a glance
  • OBS Stats Folder — dynamic folder with individual tiles for each metric:
    • FPS (derived from frame render time)
    • CPU usage %
    • Memory usage (MB)
    • Render Missed Frames (GPU lag)
    • Encode Skipped Frames (CPU lag)
    • Total Dropped Frames
  • Colour-coded thresholds: green = healthy, yellow = warning, red = problem
  • Configurable polling interval: 2 seconds, 5 seconds, or 10 seconds

Streaming Statistics (Group 2. Streaming)

  • Stream Stats Folder — live streaming statistics while broadcasting:
    • Duration (formatted as h:mm:ss)
    • Bytes Sent (MB/GB)
    • Network Congestion (% with colour coding)
    • Skipped Frames (with percentage)
    • Total Frames
  • Shows "Offline" in grey when not streaming

Media Controls (Group 9. Media)

  • Media Controls Folder — dynamic folder of all media sources (ffmpeg, VLC, slideshow, text sources)
    • Single tap while stopped/paused → Play
    • Single tap while playing → Pause
    • Double tap → Stop (reset to beginning)
    • Colour-coded: Green = Playing, Yellow = Paused, Grey = Stopped/Ended
    • Real-time updates when media starts or finishes naturally
  • Media Action (User Defined) — ActionEditorCommand for granular control
    • Configure source name + action (Play, Pause, Stop, Restart, Next, Previous)
    • Next/Previous useful for VLC playlist sources

New Event Subscriptions

The plugin now reacts in real-time to more OBS changes:

  • InputAudioMonitorTypeChanged — audio folder buttons refresh when monitoring is changed from OBS
  • SceneItemCreated / SceneItemRemoved — Sources folder auto-refreshes when sources are added/removed
  • InputCreated / InputRemoved — Audio Mixer auto-refreshes when audio inputs are added/removed
  • MediaInputPlaybackStarted / MediaInputPlaybackEnded — media folder updates when clips finish

Bug Fixes

  • Reconnection race condition — Fixed duplicate connection attempts when the reconnect timer fired before the initial connection completed. Added _connectingInProgress flag to prevent overlapping connections that caused disconnect/reconnect loops.

Technical Details

  • 37 new unit tests (348 total)
  • New models: OBSStats, OBSStreamStats with derived properties
  • New service: StatsService (timer-based polling, starts on connect, stops on disconnect)
  • New interface: IInputMonitorAwareCommand
  • OBSConnectionSettings now accepts any valid IP address (previously localhost-only)
  • PluginConfigReader gains SaveConfig() for persistent configuration
  • ConnectionManager branches between local auto-discovery and remote direct connection
  • ConnectionConfigureCommand renamed to PluginSettingsCommand

Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service installed
  • .NET 8.0 runtime

Installation

  1. Download OBSStudioForLogiPlugin-v1.3.0.lplug4
  2. Double-click to install, or import via Logi Options+
  3. Launch OBS Studio — the plugin connects automatically
  4. For remote OBS: use the Plugin Settings action to configure connection details

Acknowledgments

Developed with support from an AI coding assistant using TDD, secure coding principles, and conventional commits.

Release v1.2.0 - User Defined Actions & Audio Enhancements

13 Jun 15:12
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Summary

This release introduces User Defined Actions — configurable commands that allow users to set up custom buttons for frequently used operations without navigating dynamic folders. It also adds MX Creative Console support for audio volume control via the big wheel, a dedicated audio source selection folder, and a standalone volume adjustment that works on any wheel or dial.

New Features

User Defined Actions (Group 99)

Five new configurable actions using ActionEditorCommand textboxes:

  • Switch to Scene (Adjustable) — Switch to a specific scene with optional profile and collection switching. Configure all three via textboxes.
  • Toggle Source Visibility (User defined) — Toggle visibility of one or more sources (comma-separated). Optional scene name defaults to current active scene.
  • Toggle Audio Mute (User defined) — Toggle mute/unmute for a named audio source with a single tap.
  • Cycle Audio Monitoring (User defined) — Cycle monitoring type (None → Monitor Only → Monitor & Output) for a named audio source.
  • Select Audio Source (User defined) — Toggle global audio source selection. The selected source is used by volume wheel/dial controls.

Audio Source Status Display

  • Audio Source Status (User defined) — Display-only button showing mute state (green/red), volume %, monitoring mode, and selection border for a specific audio source. Updates in real-time.

Audio Select Folder

  • New dynamic folder showing all audio inputs with single-tap selection
  • Displays mute state, volume %, and monitoring mode for each source
  • Selection persists after folder is closed (in-memory)
  • Selected source is used by volume wheel/dial controls

Audio Volume Folder (MX Creative Console)

  • New dynamic folder with adjustment tiles for the MX big wheel
  • Tap a tile to arm the big wheel for that source's volume
  • Turn the big wheel to adjust volume
  • Displays volume percentage and mute state (green/red)

Standalone Volume Adjustment

  • Selected Source Volume — PluginDynamicAdjustment for any wheel or dial
  • Controls volume of the globally selected audio source
  • Drag onto MX big wheel, CT wheel, or any dial
  • Turn to adjust volume, press to reset to 100%

Improvements

Event-Based Audio Selection

  • AudioSelectionState.SelectionChanged event ensures all UI components update automatically when selection changes from any source
  • Eliminates manual notification coupling between commands

Code Quality

  • Extracted AudioHelpers for shared audio state rendering (eliminated 3x code duplication)
  • Refactored ButtonImageHelper — removed 6 pass-through methods, keeping only Icon() and IconWithBackground()
  • AudioSelectDynamicFolder now inherits from AudioInputDynamicFolderBase
  • Added ButtonTextRenderer.RenderTextWithBorder raw-dimension overload for ActionEditorCommand support

Technical Details

  • 305 unit tests passing
  • 0 build warnings
  • TDD approach for all new features
  • Compatible with MX Creative Console (Keypad + Dialpad) and Loupedeck CT

Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service 6.0+
  • .NET 8.0 Runtime

Installation

  1. Download OBSStudioForLogiPlugin-v1.2.0.lplug4
  2. Double-click to install, or use: LogiPluginTool.exe install OBSStudioForLogiPlugin-v1.2.0.lplug4
  3. Restart Logi Plugin Service if prompted
  4. Launch OBS Studio — the plugin connects automatically

Known Issues

  • ActionEditorCommand GroupName property is not respected by Loupedeck software UI — user-defined actions appear ungrouped. Reported as SDK bug.
  • ActionEditorCommand displayName property is not suppressed using isWidget for either Option+ or Loupedeck software. Reported as SDK bug.
  • ActionEditorCommand getCommandImage is ignored in Option+ affecting all user defined actions. Note - you can still set user defined titles and edit the underlying icon, colour etc. Reported as SDK bug.

Release Notes - v1.1.0 : New Feature and improvements

23 May 22:24
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

New Features

Adjustable Scene Switch Command

  • New Command: "Switch to Scene (Adjustable)" in the Scenes group
  • Manual Configuration: Enter profile name, collection name, and scene name via text inputs in the Action Editor
  • Smart Switching: Automatically switches profile → collection → scene with appropriate delays
  • Validation: Validates that profile/collection/scene exist before attempting to switch
  • Flexible Usage:
    • Enter only scene name to switch scenes in current profile/collection
    • Enter collection + scene to switch collection then scene
    • Enter all three to switch profile, collection, and scene
  • Comprehensive Logging: Detailed logs for debugging and validation

Improvements

Scene Collection Change Handling

  • Enhanced State Management: Current scene is now automatically updated when scene collection changes
  • Better Synchronization: Ensures UI displays correct active scene after collection switches
  • Improved Reliability: 100ms delay ensures OBS has processed the collection change before querying current scene

Logging Enhancements

  • Validation Logging: Logs whether profile/collection/scene exists in available options
  • State Tracking: Logs current state before and after each switch operation
  • Error Details: Lists available options when requested item is not found
  • Final State: Logs complete final state after all switches complete

Technical Details

Architecture

  • Base Class: ActionEditorCommand with ActionEditorTextbox controls
  • Event Handling: Wired into existing connection/profile/collection/scene change events
  • Async Operations: Uses Task.Run with delays for sequential switching
  • Singleton Pattern: Accessible via SceneSwitchAdjustableCommand.Instance

Testing

  • Unit Tests: 6 new tests for command initialization and event handlers
  • Total Tests: 134 tests passing (100% pass rate)
  • Coverage: Constructor, singleton instance, and all public event handlers

Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service installed
  • .NET 8.0 SDK (for development)

Installation

  1. Download OBSStudioForLogiPlugin-v1.1.0.lplug4 from the release assets
  2. Double-click the .lplug4 file to install via Logi Plugin Service
  3. Restart Logi Plugin Service if needed
  4. Launch OBS Studio and the plugin connects automatically

Usage

Configuring the Adjustable Scene Switch Command

  1. Drag "Switch to Scene (Adjustable)" from the Actions panel to a button
  2. Click the button to open the Action Editor
  3. Enter the desired values:
    • Profile Name (optional): Leave empty to use current profile
    • Collection Name (optional): Leave empty to use current collection
    • Scene Name (required): The scene to switch to
  4. Click "Save" to apply the configuration
  5. Press the button to execute the scene switch

Examples

Switch scene only:

  • Profile Name: (empty)
  • Collection Name: (empty)
  • Scene Name: Gaming Scene

Switch collection and scene:

  • Profile Name: (empty)
  • Collection Name: Streaming
  • Scene Name: Starting Soon

Switch everything:

  • Profile Name: Twitch
  • Collection Name: Live Show
  • Scene Name: Main Camera

Known Issues

None reported.

Acknowledgments

Thanks to the Loupedeck/Logitech community for feedback and testing.

Links

Release Notes - v1.0.1 : Patch Release (Code Quality Improvements)

22 May 20:57
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Overview

This patch release focuses on code quality improvements and standardization. All display commands have been refactored to use the standardized ButtonImageHelper API, resulting in cleaner, more maintainable code.

Changes

Code Quality Improvements

Refactored Display Commands

  • ConnectionStatusDisplay: Migrated to ButtonImageHelper.Text() API
  • CurrentProfileDisplay: Migrated to ButtonImageHelper.Text() API
  • CurrentSceneDisplay: Migrated to ButtonImageHelper.Text() API
  • CurrentSceneCollectionDisplay: Migrated to ButtonImageHelper.Text() API

Code Style Improvements

  • Converted GetCommandDisplayName to expression body syntax in ConnectionStatusDisplay
  • Removed manual BitmapBuilder usage across all display commands
  • Reduced code complexity by ~50% per file

UI/UX Improvements

  • Updated display names for better clarity:
    • ConnectionStatusDisplay: "" → "Connection Status"
    • CurrentProfileDisplay: "" → "Current Profile"
    • CurrentSceneDisplay: "" → "Current Scene"
    • CurrentSceneCollectionDisplay: "" → "Current Collection"
  • Updated package displayName: "OBS Studio" → "OBS Studio Assistant"

Technical Details

Benefits

  • Simplified Code: Replaced verbose BitmapBuilder usage with concise ButtonImageHelper calls
  • Consistency: All display commands now follow the same standardized pattern
  • Maintainability: Easier to understand, modify, and extend
  • Project Guidelines: Fully compliant with established coding standards

Files Modified

  • src/Actions/ConnectionStatusDisplay.cs
  • src/Actions/CurrentProfileDisplay.cs
  • src/Actions/CurrentSceneDisplay.cs
  • src/Actions/CurrentSceneCollectionDisplay.cs
  • src/package/metadata/LoupedeckPackage.yaml

Installation

New Installation

  1. Download OBSStudioForLogiPlugin-v1.0.1.lplug4
  2. Double-click the file to install via Logi Plugin Service
  3. Launch OBS Studio - the plugin connects automatically

Upgrade from v1.0.0

  1. Download OBSStudioForLogiPlugin-v1.0.1.lplug4
  2. Double-click to install (will replace v1.0.0)
  3. Restart Logi Plugin Service if needed

Requirements

  • OBS Studio: 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service: Installed and running
  • Supported Devices: Loupedeck CT, Live, Live S, Razer Stream Controller, Razer Stream Controller X
  • .NET Runtime: 8.0 (included with Logi Plugin Service)

Known Issues

None reported for this release.

Compatibility

This release is fully backward compatible with v1.0.0. No configuration changes or user action required after upgrade.

What's Next

See TODO.md for planned features in future releases.

Acknowledgments

Thank you to the OBS Studio and Loupedeck communities for their continued support.

Support

License

MIT License - See LICENSE file for details.

Release Notes - v1.0.0 - First Stable Release

20 May 06:40
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

🎉 First Stable Release

This is the first stable release of OBS Studio Plugin for Loupedeck/Logitech Devices, featuring comprehensive OBS control directly from your hardware device.

✨ New Features in v1.0.0

Studio Mode Support

  • Studio Mode Toggle: Enable/disable OBS studio mode for preview/program workflow
  • Studio Mode Transition: Transition preview scene to program with configured transition effect
  • Smart Scene Switching: Automatically switches to preview when studio mode is enabled, program when disabled
  • Provides professional broadcast workflow with preview before going live

Replay Buffer Controls

  • Replay Buffer Toggle: Start/stop replay buffer
  • Save Replay Buffer: Save the current replay buffer to disk
  • Perfect for capturing highlights during streams

Reorganized Groups

  • Virtual Camera moved to dedicated Group 5 for better organization
  • Clear separation of functionality across 8 groups

📋 Complete Feature Set

Group 1: OBS

  • Screenshot capture to Pictures/Documents/Desktop folder
  • Manual reconnect to OBS
  • Studio mode toggle and transition
  • Connection status display (green=connected, red=disconnected)

Group 2: Streaming

  • Toggle, start, and stop streaming
  • Visual state indicators

Group 3: Recording

  • Toggle, start, and stop recording
  • Pause/resume recording
  • Visual state indicators

Group 4: Replay Buffer

  • Toggle replay buffer on/off
  • Save replay buffer to disk

Group 5: Virtual Camera

  • Toggle, start, and stop virtual camera
  • Visual state indicators

Group 6: Profiles

  • Switch between OBS profiles (multi-state buttons)
  • Dynamic folder with all available profiles
  • Current profile display

Group 7: Scenes

  • Switch between scene collections (multi-state buttons)
  • Dynamic folder with all available scenes
  • Toggle source visibility in current scene
  • Current scene and scene collection displays
  • Studio mode aware: switches to preview when enabled, program when disabled

Group 8: Audio

  • Audio Mixer folder with all audio inputs
  • Scene Audio folder with audio sources in current scene
  • Mute/unmute toggle with visual feedback (green=unmuted, red=muted)
  • Real-time volume display (0-100%)

🔧 Technical Highlights

  • 134 Unit Tests: Comprehensive test coverage ensuring reliability
  • Automatic Connection: Discovers OBS WebSocket settings from OBS configuration
  • Resilient Reconnection: Exponential backoff (1s to 30s) with jitter (0.85-1.15x)
  • Event-Driven Updates: Real-time state synchronization with OBS
  • Async Operations: All OBS operations wrapped in Task.Run to prevent UI freezing
  • TDD Approach: Test-driven development with interface-based design

📦 Installation

  1. Download OBSStudioForLogiPlugin-v1.0.0.lplug4 from the release assets
  2. Double-click the .lplug4 file to install via Logi Plugin Service
  3. Launch OBS Studio - the plugin connects automatically

📋 Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service installed
  • Windows 10/11 or macOS 10.15+

🐛 Bug Fixes

  • Fixed replay buffer icon loading (icons were not embedded in project file)
  • Fixed studio mode scene switching to use preview when enabled
  • Improved icon update patterns for dynamic folders

🙏 Acknowledgments

Built with:

📝 License

MIT License - See LICENSE file for details

🔗 Links

Release - v0.9.2 : Display Order Fix

19 May 06:26
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Display Order Fix

This patch release fixes the display order of scenes and sources to match OBS Studio's top-to-bottom order.

Bug Fixes

Scene and Source Display Order

  • Fixed: Scenes and sources now appear in the same top-to-bottom order as displayed in OBS Studio
  • Root Cause: OBS WebSocket API returns items in reverse order (bottom-to-top)
  • Solution: Arrays are now reversed after retrieval to match OBS display order
  • Impact: First scene/source in OBS now appears as first button in plugin folders

Technical Details

Modified Components

  • OBSWebsocketAdapter.GetSceneList(): Added Array.Reverse() after retrieving scenes
  • OBSWebsocketAdapter.GetSceneItemList(): Added Array.Reverse() after retrieving scene items

Files Changed

  • src/Services/OBSWebsocketAdapter.cs

Installation

For Users

  1. Download OBSStudioForLogiPlugin-v0.9.2.lplug4
  2. Double-click to install via Logi Plugin Service
  3. Plugin will automatically reload

For Developers

dotnet build src/OBSStudioForLogiPlugin.csproj -c Release

Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service installed
  • .NET 8.0 SDK (for development)

Upgrade Notes

This is a patch release with no breaking changes. Simply install over v0.9.1 or earlier versions.

Acknowledgments

Thanks to users who reported the display order inconsistency between OBS Studio and the plugin.


Full Changelog: https://github.com/yourusername/OBSStudioForLogiPlugin/compare/v0.9.1...v0.9.2

Release v0.9.1 - Bug Fixes and Icon Updates

18 May 20:19
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

🐛 Bug Fixes

Source Visibility

  • Fixed source visibility toggle - Now works bidirectionally (visible ↔ hidden)
    • Previously only worked in one direction due to incorrect state checking
    • Added proper GetSceneItemEnabled implementation to query actual visibility state
  • Fixed source visibility icon updates - Icons now update immediately after toggling
    • Implemented delayed callback pattern (100ms) to allow OBS to process state changes
    • Icons correctly show SourceVisibilityOn/Off based on actual state

Scene Management

  • Fixed scene icon updates - Scene icons now update in real-time when switching scenes
    • Changed from ButtonActionNamesChanged() to CommandImageChanged() for efficiency
    • Only refreshes the two affected scene buttons (old unselected, new selected)
    • Provides immediate visual feedback

Profile Management

  • Fixed profile icon updates - Profile icons now update in real-time when switching profiles
    • Changed from ButtonActionNamesChanged() to CommandImageChanged() for efficiency
    • Only refreshes the two affected profile buttons (old unselected, new selected)
    • Provides immediate visual feedback

Audio Controls

  • Fixed audio button color updates - Mute state colors now update immediately
    • Changed from ButtonActionNamesChanged() to CommandImageChanged() for individual buttons
    • Red text for muted, green text for unmuted
  • Fixed audio volume display updates - Volume percentage now updates in real-time
    • Subscribed to InputVolumeChanged event for real-time updates
    • Volume changes in OBS immediately reflected on buttons

🎨 UI/UX Improvements

  • Improved audio button readability - Reduced font size from 18pt/16pt to 16pt/14pt (Width90/Width60)
  • Enhanced display buttons - Dynamic font sizing based on text length for better fit
  • Cleaner button appearance - Hidden display name overlays on all display commands
  • Better reconnect icon - Added electrical plug icon for Reconnect button

🧹 Code Quality

  • Removed debug logging - Cleaned up verbose debug logging from audio functionality
  • Improved logging clarity - Simplified audio button logging with clear tags
  • Better color handling - Use explicit RGB values for mute state colors

📚 Documentation

  • Created icon update patterns guide - Comprehensive documentation of best practices
    • Documented CommandImageChanged pattern for individual button updates
    • Documented delayed callback pattern for toggle operations
    • Added anti-patterns to avoid
    • Included event flow examples
  • Updated memory bank - Corrected font sizes and added icon update documentation
  • Updated TODO list - Reflects current status and prioritizes audio features

🔧 Technical Details

Icon Update Pattern

All dynamic folders now use the efficient CommandImageChanged(actionParameter) pattern:

  • Scenes: Updates only old and new scene icons when switching
  • Profiles: Updates only old and new profile icons when switching
  • Sources: Updates individual source icon after toggle with 100ms delay
  • Audio: Updates individual audio button when mute/volume changes

Delayed Callback Pattern

Source visibility toggles now use a delayed callback to ensure consistency:

  1. Send toggle command to OBS
  2. Wait 100ms for OBS to process
  3. Trigger icon refresh via callback
  4. Query updated state from OBS
  5. Display correct icon

📦 Installation

  1. Download the release
  2. Extract to your Logi Plugin Service plugins directory
  3. Restart Logi Plugin Service or use hot-reload
  4. Launch OBS Studio - plugin connects automatically

🔗 Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service installed
  • .NET 8.0 Runtime

🙏 Acknowledgments

Thanks to all users who reported the icon update issues and provided feedback on the audio controls!


Full Changelog: v0.9.0...v0.9.1

Version 0.9.0 - Audio Volume Display & Cross-Platform Improvements

18 May 11:34
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Release Notes - OBS Studio Plugin for Loupedeck/Logitech Devices

Version 0.9.0 - Audio Volume Display & Cross-Platform Improvements

🎉 New Features

Audio Volume Display

  • Real-time Volume Monitoring: Audio mixer and scene audio buttons now display current volume levels (0-100%)
  • Visual Feedback:
    • Green text when unmuted
    • Red text when muted
    • Input name and volume percentage clearly displayed
  • Live Updates: Volume display updates automatically when changed in OBS or via hardware controls

Enhanced Audio Controls

  • Mute/Unmute Toggle: Press any audio button to toggle mute state
  • Scene-Specific Audio: Scene Audio folder shows only audio inputs present in the current scene
  • Clean Display: Display name overlay hidden for better readability

🔧 Improvements

Cross-Platform Compatibility

  • Full macOS Support: Eliminated all Windows-only dependencies
  • Zero Platform Warnings: All 78 CA1416 platform-specific warnings resolved
  • Native SDK Usage: Uses Loupedeck SDK's cross-platform BitmapBuilder/BitmapImage APIs

Performance Optimizations

  • Efficient Image Caching: 16 commands now use ActionImageStore pattern for reduced rendering overhead
  • Real-time State Updates: Audio buttons generate fresh images to reflect current state immediately
  • Smart Update Strategy: Uses ButtonActionNamesChanged() for reliable folder button updates

User Experience

  • Better Text Spacing: Extra line break between input name and volume percentage
  • Consistent Font Sizing: 18pt (large buttons) / 16pt (small buttons)
  • Cleaner Interface: Removed display name overlays from audio buttons

🐛 Bug Fixes

  • Fixed audio buttons not updating when mute state changes
  • Fixed audio buttons not updating when volume changes in OBS
  • Fixed incorrect resource loading (EmbeddedResources → PluginResources)
  • Fixed BitmapBuilder SVG compatibility issues
  • Fixed ActionImageStore caching preventing real-time updates
  • Fixed BitmapColor property access errors in TextWithBackgroundImageFactory

🗑️ Removed

  • Removed Windows-only System.Drawing dependencies (BitmapHelper.cs)
  • Removed unused image factories (IconWithTextImageFactory, IconWithTextImageData)
  • Removed icon rendering from audio buttons (SVG compatibility issues)

📋 Technical Details

API Additions

  • GetInputVolume(inputName) - Returns volume level (0.0-1.0)
  • SetInputVolume(inputName, volumeMul) - Sets volume level
  • OnInputVolumeChanged(inputName) - Event handler for volume changes

Architecture Changes

  • Audio buttons no longer use ActionImageStore caching (real-time state requires fresh rendering)
  • ButtonActionNamesChanged() used instead of CommandImageChanged() for dynamic folder updates
  • Direct ButtonTextRenderer calls for audio buttons to ensure current state display

🔮 Future Enhancements

Planned for future releases:

  • Volume adjustment controls (faders/encoders)
  • Audio monitoring toggle (hear sources in headphones)
  • Audio sync offset adjustment
  • Audio track assignment controls
  • Audio filter enable/disable
  • Replay buffer controls
  • Studio mode toggle

📦 Installation

  1. Download the latest release
  2. Build the project:
    dotnet build src/OBSStudioForLogiPlugin.csproj -c Release
  3. Plugin automatically installs to Logi Plugin Service
  4. Launch OBS Studio - plugin connects automatically

📖 Documentation

🙏 Acknowledgments

This release includes significant improvements to cross-platform compatibility and real-time audio monitoring capabilities, making the plugin more reliable and feature-rich for content creators on both Windows and macOS.


Requirements:

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service installed
  • .NET 8.0 SDK (for development)

Compatibility:

  • Windows 10/11
  • macOS 10.15+
  • Loupedeck Live, Loupedeck Live S, Loupedeck CT, Logitech MX Creative Console

v0.8.3 - macOS Support

12 Mar 23:00
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Pre-release

OBS Studio Plugin for Loupedeck v0.8.3

Patch release enabling macOS support.

🐛 Bug Fixes

macOS Support

  • Fixed plugin load failure on macOS with ArgumentNullException
  • Enabled pluginFolderMac in package metadata
  • Plugin now loads successfully on macOS devices (MacBook, iMac, Mac mini, etc.)

📦 Installation

Quick Install

  1. Download OBSStudioForLogiPlugin-v0.8.3.lplug4 from releases
  2. Windows: Run LogiPluginTool.exe install OBSStudioForLogiPlugin-v0.8.3.lplug4
  3. macOS: Run LogiPluginTool install OBSStudioForLogiPlugin-v0.8.3.lplug4
  4. Restart Logi Plugin Service
  5. Launch OBS Studio - plugin connects automatically

See INSTALL.md for manual installation instructions.

📋 Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service (installed)
  • .NET 8.0 Runtime (for development)

🔄 Upgrading from v0.8.2

Simply install v0.8.3 over v0.8.2 - no configuration changes needed. This release specifically fixes macOS compatibility.

🍎 macOS Users

This release fixes the critical load failure on macOS. Previous versions (v0.8.0 - v0.8.2) would not load on macOS due to missing pluginFolderMac configuration.

📝 Full Changelog

See CHANGELOG.md for complete version history.


Note: This is a patch release addressing macOS compatibility. All functionality from v0.8.2 remains unchanged.

v0.8.1 - Text Rendering Fix

10 Mar 18:43
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Pre-release

OBS Studio Plugin for Loupedeck v0.8.1

Patch release fixing text rendering quality issues.

🐛 Bug Fixes

Text Rendering Quality

  • Fixed jaggy text on all display buttons and dynamic folders
  • Eliminated double text rendering (native overlay + BitmapBuilder)
  • All text now renders with anti-aliasing for crisp, clear appearance

Technical Changes

  • Created ButtonTextRenderer helper class for consistent text rendering
  • Display commands return null from GetCommandDisplayName() to prevent native text overlay
  • Dynamic folders (Scenes, Sources, Profiles) use only BitmapBuilder rendering

📦 Installation

Quick Install

  1. Download OBSStudioForLogiPlugin-v0.8.1.lplug4 from releases
  2. Run: LogiPluginTool.exe install OBSStudioForLogiPlugin-v0.8.1.lplug4
  3. Restart Logi Plugin Service
  4. Launch OBS Studio - plugin connects automatically

See INSTALL.md for manual installation instructions.

📋 Requirements

  • OBS Studio 28.0+ with obs-websocket 5.0+
  • Logi Plugin Service (installed)
  • .NET 8.0 Runtime (for development)

🔄 Upgrading from v0.8.0

Simply install v0.8.1 over v0.8.0 - no configuration changes needed. All features from v0.8.0 are included with improved text rendering quality.

📝 Full Changelog

See CHANGELOG.md for complete version history.


Note: This is a patch release addressing visual quality issues. All functionality from v0.8.0 remains unchanged.