-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Ui Midi Controls And Names
Each control inside Mixxx is identified by a unique string. These strings are used in the keyboard mappings, the MIDI mappings, and inside Mixxx to gain access to the controls. The following is a list of controls that can be used in any of the above contexts.
The default range is 0.0 to 1.0, unless otherwise noted.
[Master]
- crossfader: min = -1.0, max = 1.0
- samplerate
[ChannelN] (where N is a number 1 or 2)
- play
- cue_simple
- volume
- pregain
- pfl
- flanger
- temporalShapeRate (?)
- temporalPhaseRate (?)
- wheel
- scratch
- beatsync
- rate
- rate_perm_down
- rate_perm_up
- rate_temp_down: off = 0.0, on = 1.0
- rate_temp_up: off = 0.0, on = 1.0
- back: off = 0.0, on = 1.0
- fwd: off = 0.0, on = 1.0
- filterLowKill
- filterMidKill
- filterHighKill
- NextTrack
- PrevTrack
- playposition
- LoadSelectedTrack - loads selected track from the playlist/tracktable.
[Playlist]
- SelectNextTrack - scrolls to the next track in the playlist/tracktable.
- SelectPrevTrack - scrolls to the previous track in the playlist/tracktable.
Note: This is an incomplete list. There are a ton of these controls mapped inside Mixxx.
The full list can be generated by running the following script in your mixxx/src directory:
======
#!/bin/sh
# set -x
IFS='
'
last_control=
for ck in `grep ConfigKey *.cpp | sed -e 's/ConfigKey(group/ConfigKey("[Master]"/g' | grep 'ConfigKey("' | grep -v "Channel2" | sed -e 's/.*ConfigKey(//g' -e 's/, */,/g' | cut -d\) -f1 | sed -e 's/\[Channel1\]/\[ChannelN\] (where N is a number 1 or 2)/g' | sort -fu`; do
control=`echo $ck|cut -d\" -f2`
if [ "$control" != "$last_control" ]; then
echo
echo $control
last_control=$control
fi
key=`echo $ck|cut -d\" -f4`
if [ ! -z "${key}" ]; then echo "* ${key}"; fi
done
If you want to access one of these controls inside Mixxx, you can do so with something like this:
ControlObjectThreadMain* controlRightPitch = new ControlObjectThreadMain(ControlObject::getControl(ConfigKey("[[Channel2]]", "rate")));
That line will give you a ControlObject which allows you to read and control the pitch of the right channel in Mixxx. For example, to increase the pitch of the track in the right channel, one could do something like this:
float fRightPitch = controlRightPitch->get();
controlRightPitch->slotSet(fRightPitch + 0.10);
This would increase the pitch of the right channel inside Mixxx, and the GUI controls would automatically reflect this change. Access to ControlObjects is also thread-safe when used this way.
Important note: Different types of ControlObject wrappers must be used depending on what thread your code is running in. This example assumes the code will run in the GUI (ie. main) thread. The ControlObjects wrappers should be used as follows:
- ControlObjectThreadMain - GUI (main) thread
- ControlObject - The audio callback thread (most audio processing happens here)
- ControlObjectThread - Other threads
Mixxx is a free and open-source DJ software.
Manual
Hardware Compatibility
Reporting Bugs
Getting Involved
Contribution Guidelines
Coding Guidelines
Using Git
Developer Guide
Creating Skins
Contributing Mappings
Mixxx Controls
MIDI Scripting
Components JS
HID Scripting