-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Getting Ready For 112
Script authors! Mixxx 1.12.0 is almost here. Here is what you need to know to get your controller presets ready.
Your MIDI scripts no longer have to care about the minimum and maximum value of potmeter/knob controls! "Parameter" values range from 0 to 1. If you set a parameter to 1 then the value of the control becomes the maximum value. If you set the parameter to 0 then the value of the control becomes the minimum value.
engine.setParameter(group, item, parameter)
engine.getParameter(group, item)
Example:
engine.setParameter("[Channel1]", "rate", 0);
Is the same as:
engine.setValue("[Channel1]", "rate", -1);
You don't have to build assumptions about the control into your scripts
now. This is particularly important for effect parameters. Since you
do not know ahead of time what the valid values of an effect parameter
are, you should always set effect parameters using setParameter
.
You can also call getParameterForValue
to get the parameter for a
given value:
// Returns 0
engine.getParameterForValue("[Channel1]", "rate", -1)
// Returns 1
engine.getParameterForValue("[Channel1]", "rate", 1)
Calling reset(group, item)
resets the control to its default value.
// Resets the rate control to 0. (its default value)
engine.reset("[Channel1]", "rate");
// Resets the Master volume to 1. (its default value)
engine.reset("[Master]", "volume");
Mixxx finally has a master sync system! There are two ways sync can work:
- Internal master
- Deck master
When internal master is active, then all decks track an internal master clock. A change to the rate of one deck changes the rate of all decks so they stay in sync. You can also elect a particular deck as the master deck.
| | [Group] | | Key/Control | | Range | | What it does | | On-screen feedback | | | | ----------------- | | ------------- | | ----------- | | ------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------- | | | | [InternalClock] | | bpm | | real-valued | | The BPM of the internal master clock | | Internal Clock BPM changes | | | | [InternalClock] | | sync_master | | binary | | Sets internal clock as master clock | | MASTER status lights on internal master (don't make this a button for 1.12) | | | | [ChannelN] | | sync_enabled | | binary | | Press: instant sync; Hold: enable sync mode. Press while sync mode is enabled disables sync mode. | | SYNC button lights & Pitch slider snaps to the appropriate value | | | | [ChannelN] | | sync_master | | binary | | Sets deck as master clock | | MASTER button lights (FUTURE feature, do not include in 1.12) | | | | [ChannelN] | | sync_mode | | toggle | | SYNC_NONE = 0, SYNC_FOLLOWER = 1, SYNC_MASTER = 2 | | No user feedback needed | |
If your controller has a dedicated sync button, that button should be
mapped to [ChannelN],sync_enabled
. This button will instant sync when
you press it and holding it will enable sync mode for the deck. You
should also bind this to your output so that the SYNC light on the
controller matches the deck's sync mode.
Mixxx 1.12.0 detects the musical key of all tracks and allows pitch adjustment independent of the player speed.
| | [Group] | | Key/Control | | Range | | What it does | | On-screen feedback | | | | -------------- | | ------------------ | | ---------- | | ------------------------------------------------------------------------------------------------------------- | | ----------------------------------------- | | | | [ChannelN] | | sync_key | | pushbutton | | Adjust the key of the target deck to match that of the master deck. | | pitch knob adjusts, audible pitch changes | | | | [ChannelN] | | pitch | | -1.0..1.0 | | Pitch adjust. -1 is a full octave shift down, +1 is a full octave shift up. Steps of 0.042 shift by semitones | | Pitch knob | | | | [ChannelN] | | pitch_up | | pushbutton | | Shift pitch up by one full step (2 semitones). | | Pitch knob | | | | [ChannelN] | | pitch_up_small | | pushbutton | | Shift pitch up by one half step / semitone. | | Pitch knob | | | | [ChannelN] | | pitch_down | | pushbutton | | Shift pitch down by one full step (2 semitones). | | Pitch knob | | | | [ChannelN] | | pitch_down_small | | pushbutton | | Shift pitch down by one half step / semitone. | | Pitch knob | | | | [ChannelN] | | key | | 0 - 24 | | Current musical key after pitch shifting. | | Key value widget | | | | [ChannelN] | | file_key | | 0 - 24 | | File's musical key | | Key value widget | |
Key value definitions can be found here: keys.proto
- If your controller has a pitch adjust knob for harmonic mixing, map
it to
pitch
. - If there is a sync key button, map it to
sync_key
. - If there are pitch adjust buttons, map them to the individual semitone pitch adjust buttons.
Mixxx 1.12.0 has a new modular effects system. There are 4 main concepts:
- Effect Racks
- Effect Units
- Effects
- Parameters
There is one effect rack. The rack contains all of the effect units and is a handy grouping for quick clearing of all effect units and saving / loading of rack presets.
Mixxx now supports passing through audio from vinyl control inputs into the corresponding deck. This overrides the playing track in the deck with whatever audio is coming from the turntable or CD player configured for input.
| | [Group] | | Key/Control | | Range | | What it does | | On-screen feedback | | | | -------------- | | ----------- | | ------ | | --------------------------------------------------------------------------------------------------------------- | | ----------------------------------- | | | | [ChannelN] | | passthrough | | toggle | | Connects the vinyl control input for the deck to the channel output. Allows to mix external media into DJ sets. | | GUI control currently missing FIXME | |
- If you expect your controller to be used by Vinyl Control users,
consider mapping a spare button combination to the
passthrough
toggle control.
Mixxx previously came with one microphone input, [Microphone]
. In
Mixxx 1.12.0 we are adding 3 more microphones and 4 new "Auxiliary"
inputs for routing audio directly into the mix.
For backwards compatibility, the first microphone's group is
[Microphone]
, not [Microphone1]
. All other microphones are
[MicrophoneN]
. Similarly, auxiliary inputs are numbered
[AuxiliaryN]
.
| | [Group] | | Key/Control | | Range | | What it does | | On-screen feedback | | | | -------------- | | --------------------------------- | | ----------- | | --------------------------------------------------------------------------------------------------- | | -------------------------------------------- | | | | [ChannelN] | | beatjump7 | | real number | | Jump forward by X beats (positive) or backward by X beats (negative). | | Player jumps forward or backward by X beats. | | | | [ChannelN] | | beatjump_X_forward7 | | binary | | Jump forward by X beats. A control exists for X = 0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64 | | Player jumps forward by X beats. | | | | [ChannelN] | | beatjump_X_backward7 | | binary | | Jump backward by X beats. A control exists for X = 0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64 | | Player jumps backward by X beats. | |
| | [Group] | | Key/Control | | Range | | What it does | | On-screen feedback | | | | -------------- | | ----------------------------------- | | ----------- | | -------------------------------------------------------------------------------------------------------- | | ------------------------------------------ | | | | [ChannelN] | | loop_move7 | | real number | | Move loop forward by X beats (positive) or backward by X beats (negative). | | Loop moves forward or backward by X beats. | | | | [ChannelN] | | loop_move_X_forward7 | | binary | | Move loop forward by X beats. A control exists for X = 0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64 | | Loop moves forward by X beats. | | | | [ChannelN] | | loop_move_X_backward7 | | binary | | Move loop backward by X beats. A control exists for X = 0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64 | | Loop moves backward by X beats. | |
| | [Group] | | Key/Control | | Range | | What it does | | On-screen feedback | | | | -------------- | | ----------------------- | | ------ | | ------------------------------------------------- | | ------------------ | | | | [ChannelN] | | reverseroll7 | | binary | | Enables reverse and slip mode while held (Censor) | | REV button | |
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