Overview
Input profiles solve a key usability problem: instead of dealing with generic channel numbers, you can work with named controls like “Fader 1”, “Play Button”, or “Jog Wheel”.Profile Components
Profile Types
QLC+ supports input profiles for various device types:MIDI
MIDI controllers with faders, knobs, pads, and buttons
HID
USB HID devices including custom controllers
OSC
TouchOSC and other OSC control surfaces
DMX
DMX input devices for trigger control
Enttec
Enttec Shortcut Wing and Playback Wing
OS2L
ShowXpress OS2L protocol devices
Creating Profiles
Basic Profile Setup
Set manufacturer and model information:Profile Path
Profiles are stored in specific directories:System profiles are installed with QLC+ and cannot be modified. User profiles are stored in your user directory and can be customized.
Channel Mapping
Adding Channels
Map physical controller inputs to logical channel names:Removing Channels
Remapping Channels
Change the channel number for an existing input:Querying Channels
Get channel information:Not all channel numbers need to be mapped. The channel map uses
QMap to efficiently handle sparse channel assignments.MIDI-Specific Settings
MIDI Note Off Behavior
Configure how Note Off messages are sent:true- Send standard Note Off messagesfalse- Send Note On with velocity 0 (some hardware requires this)
MIDI Channel Table
Provide friendly names for MIDI channels:Feedback Features
Color Feedback Table
For controllers with RGB LED feedback (like Launchpad or APC):Color tables map DMX values to specific colors on LED feedback devices, allowing QLC+ to send the correct values for visual feedback.
Extra Parameters
Some devices require additional parameters for feedback:Global Settings
Access all global profile settings:Loading and Saving
Loading Profiles
Load a profile from an XML file:Saving Profiles
Save profile to XML:Loading Color Tables
Loading MIDI Channel Tables
Profile Management
TheInputOutputMap manages available profiles:
Loading Profiles
Getting Available Profiles
Adding and Removing
Using Profiles with Patches
Assign a profile to an input patch:Getting Input Source Names
Retrieve friendly names for input sources:Profile Structure (XML)
Input profiles are stored in XML format with the.qxi extension:
Common Use Cases
MIDI Controller
Map faders, knobs, and buttons to logical names. Configure Note Off behavior and set up color feedback for LED rings.
Launchpad/APC
Create grid-based mappings with color feedback tables for the LED matrix. Map each pad to a specific channel.
DMX Input
Use DMX channels as triggers. Map footswitches or other DMX-based control surfaces.
OSC Surface
Map TouchOSC or other OSC controllers. Use descriptive channel names for touch controls.
Best Practices
Naming Conventions
- Use clear, descriptive channel names
- Include control type in name (e.g., “Play Button”, “Master Fader”)
- Group related controls with consistent naming
- Use manufacturer/model exactly as they appear on the device
Organization
- Map all used controls, even if some remain unnamed
- Document special behaviors or requirements
- Test feedback functionality thoroughly
- Keep profiles updated when firmware changes
Sharing Profiles
- Save user profiles in the user profile directory
- Test profiles with the actual hardware
- Include color tables for devices with LED feedback
- Document any special configuration needed
Performance
- Only map channels you actually use
- Remove unused profiles from the profile directory
- Use sparse channel mapping for devices with gaps
- Test profile loading time with complex setups
Troubleshooting
Profile not appearing in the list
Profile not appearing in the list
- Check that the profile file has
.qxiextension - Verify the XML structure is valid
- Ensure the file is in the system or user profile directory
- Restart QLC+ after adding new profiles
Feedback not working
Feedback not working
- Verify the device supports feedback
- Check that a feedback patch is configured
- Confirm the color table values match device expectations
- Test with simple on/off values first
MIDI notes not responding
MIDI notes not responding
- Try toggling the MIDI Send Note Off setting
- Check MIDI channel assignments
- Verify the controller is sending on the expected MIDI channel
- Test with MIDI monitor tools
Channel names not showing
Channel names not showing
- Confirm the profile is assigned to the input patch
- Check that channel numbers match the profile
- Verify the profile loaded successfully (check logs)
- Ensure the profile type matches the plugin type
Code References
- Input Profile Class:
engine/src/qlcinputprofile.h:48 - Input Patch:
engine/src/inputpatch.h:53 - Profile Management:
engine/src/inputoutputmap.h:530
