DART_MOBO based controllers can be equipped with 2 spinners that can turn infinitely, like a dj turntable/jog wheel, and that are designed to interact closely with touch sensors.

in the images below the top and side spinner have been enriched with customized logos.

 Spinner configuration using the DART_EDITOR.

In the following example we are using the DART_EDITOR to open the DART_ONE default preset and select the ITEM related to the TOP SPINNER.

let’s see in detail what the spinner Settings-Box contains:

  • MODE to access the spinner settings, the MODE selector is set to:
    • SPINNER1 – for the TOP spinner.
    • SPINNER2 – for the SIDE spinner.
    • Only one ITEM can be set to SPINNER1  or SPINNER2 in a preset.
  • MIDI TYPE to select the type of MIDI message that will be controlled by the spinner.
    • CC is the most suitable type of message when the SPIN MODE parameter is set to ENDLESS MODE  or POT EMULATION MODE.
    • NOTE  is the most suitable type of message for the SCALE MODE, described below.
    • PITCH BEND can be selected when SPIN MODE is set to POT EMULATION. In combination with the Touch_Reset function it is possible to emulate the classic tonal control lever of a synth-keyboard, with automatic return to an intermediate position.
  • DATA BYTE 1 – to select the Number of the NOTE or CC message.
  • MIDI CHANNEL – to select the channel (1-16) of the MIDI message.
  • SPIN MODE – an encoder can be used in very different ways. This selector will switch between:
    • 0 = ENDLESS MODE 1 – the output midi message has a data byte 2 with a value greater than 65 i less than 63 according to the clockwise or anticlockwise rotation direction and according to the rotation speed. This mode guarantees a slightly higher precision when using an optical encoder.
    • 1 = ENDLESS MODE 2 – the output MIDI message has a DataByte_2 with a value corresponding to 0 or 127 according to the clockwise or anticlockwise rotation direction. this is the most commonly used mode to check the parameters of a software, and certainly the most recommended.
    • 2 = POT EMULATION – the outgoing MIDI message will have a DataByte2 that gradually passes from the minimum value to the maximum value (0-127) exactly as if you were turning the knob of a rotary potentiometer.
    • 3 = SCALE LEARN – By turning the spinner in combination with the touch sensor it is possible to record and play a scale of notes.
      • The reference source for recording scale notes is the USB or DIN MIDI input, but also the same keys on the Dart device panel.
      • up to 6 notes can be recorded.
      • the TOUCH-ON condition opens the recorder
      • the TOUCH-OFF condition resets the recorder.


It is also possible to write a sequence of fixed notes using the DART_EDITOR: to do this, set the SPIN_MODE selector to 2 (pot) and set the TYPE selector to NOTES.


A selector with 12 slots will appear;


each slot corresponds to one of the 12 notes that can be turned on in a scale..

  • TOUCH STOP – the touch-stop function is related to the touch sensor, it will stop the flow of midi data produced by the rotation of the Spinner, when the touch sensor is Released. This is useful to have more precision and control over a parameter, avoiding the inertia of the spinner to influence a parameter.
    • If the spinner is set in ENDLESS mode, the touch-stop function will  TRANSLATE the data to the upper MIDI Channel, at TOUCH_ON condition. So the unwanted MIDI signal portion can be ignored or used, depending on the channel.
    • If the spinner is set in POT mode, the touch-stop function will STOP the data output, on TOUCH_OFF condition.
    • Spinners and touch sensors are strictly related: SPINNER1 is realtad to TOUCH1 and SPINNER2 is related to TOUCH2
  • SPEED – it is used to set the speed and rotation direction of the spinner, ranging from -32 to +32. The speed parameter has a diferent effetct on the spinner, depending on the SPIN MODE:
    • If SPIN MODE is set to POT MODE or SCALE MODE (2 or 3) the SPEED selector will determine how many encoder revolutions will be needed to go from the minimum value to the maximum value.
    • If SPIN MODE is set to ENDLESS MODE ( 0 ro 1) the SPEED POLARITY will control the direction of the MIDI Data Byte 2 output (for example : 0-127 or 127-0) . The SPEED AMOUNT will determine the speed of the LED light effect of the spinning (faster or slower effect) and not the rate of the emitted messages.

TOUCH RESET and SCALE LEARN video  example

This video exemplifies different features of a DART device:

    • the DIN MIDI OUT connector of the Dart controller in connected to the DIN MIDI INPUT of the Roland Super JX synth, so  the synth can be played from the dart controller buttons.
    • the DIN MIDI OUT of the Roland Super jx is connected to the DIN MIDI INPUT of the Dart device, so the keys that are pressed on the synth keyboard will produce a visual effect on the Dart panel: the LED corresponding to each note will light up.
  • TOUCH RESET function
    • on the first preset_page of the Dart controller, the TOP and SIDE sinners are set to emulate a Pitch Bend lever. Using the TOUCH RESET function it is possible to rotate the spinner to modify the pitchbend parameter and when the touch sensor is released, the pitchbend parameter is reset to an intermediate position.
    • this function can be accessed fron the Touch Sensor settings ITEM.
    • on the second preset_page of the Dart controller, the TOP spinner is set in SCALE LEARN MODE, so the touch sensor can be used to record a scale of notes, that can be played through the spinner rotation.

TIPS for DIYers

the spinners are based on encoders.  The clockwise or anticlockwise direction of an encoder is read by comparing the pulses sent by channels A and B; these readings are subsequently translated into MIDI messages.

Encoders come in all kinds of resolutions, from 16 to at least 1024 steps per revolution and more…

A DART controller can be equipped both with CONDUCTIVE and OPTICAL encoders.

Conductive Type Optical Type

Mechanical solutions for DIYers

More infos about the mechanical soultions to create Touch sensitive spinners here:



  • The Top-Spinner encoder is always connected to the Digital Pins 2 and 3 on the Arduino board.
    • The readings of this encoder make use of the Arduino intrrupt function, for this reason they are faster and more precise: a good solution for reading optical encoders, such as those used on DART_Speciale.
  • The Side-Spinner  encoder has to be connected to Input Pins 33 and 41, on the DART_MOBO.
    • the reading fof this encoder is slightly lower than that of the TOP SPINNER, but it is more than enough to read a conductive encoder , since the readings are twice as fast than that of the generic encoders.
    • The Side-spinner functionality has to be activated through the DART_EDITOR ( GENERAL item, SPINNERS selector).


Up to 24 generic encoders can be connected to the Dart_Mobo circuit as in the example illustration above:

  • Encoder pin 1 – to any input pin from 1 to 48.
  • Encoder pin 2 – to GND.
  • Encoder pin 3 – to the subsequent multiplexer and  in the same position of the Enc pin 1.

// example: if Enc_pin_1 is connected to Dart_Mobo input 21, the Enc_pin_3 has to be connected to Dart_mobo input 29, while Encoder_pin_2 is connected to GND.


Taking the previous illustration as reference, we are going to edit the settings for the encoder we connected to inputs 21 and 29.

So, in the Dart_Editor, select the item 21 and set the  MODE  selector  to “ENCODER”.

The settings work the seme way as described for the Top and Side spinners.

On the item 29, the MODE selector will be left to “BLIND INPUT”.

In the same way, for the encoder connected to inputs 35 and 43, the encoder setting will be specified on item 35, leaving item 43 in blind mode.