Skip to content

Ui Midi Controls And Names

Albert Santoni edited this page Mar 20, 2008 · 16 revisions

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.

List of Controls

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
 IFS=''
 last_control
 for ck in `grep 'ConfigKey("' *.cpp | 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`
   echo "* ${key}"
 done

Using Controls Inside Mixxx (for developers)

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.

Clone this wiki locally