Skip to content

Ui Midi Controls And Names

Albert Santoni edited this page Feb 15, 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