ENCODERS

Encoders are used to to create jog wheel controllers (Spinners) that can turn infinitely,with no end stop like a potentiometer has.  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 maybe 16 to at least 1024 steps per revolution.A DART controller can be equipped both with CONDUCTIVE and OPTICAL encoders.

Conductive Type Optical Type

Mechanical solutions

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


 

TOP and SIDE spinners CONNECTIONS.

  • 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.
    • Two 10k Pull-Up resistors will improve stability.
  • The Side-Spinner  encoder has to be connected to Input Pins 41 and 42, on the DART_MOBO.
    • the reading accuracy of this encoder is slightly lower than that of the TOP SPINNER, it is not sufficient for an optical encoder, but it is more than enough to read a conductive encoder.
    • The Side-spinner functionality has to be activated through the DART_EDITOR.

 Spinner setup

in the following example we opened the default DART_ONE preset and selected the ITEM related to the TOP SPINNER. Now we will go to illustrate in detail all the selectors that are contained in the settings box of a spinner.

SPINNER settings box:

  • MODE – to access the spinner settings, the MODE selector is set to:
    • SPINNER1 – for the TOP spinner. Only one ITEM can be set to SPINNER1 inside a preset.
    • SPINNER2 – for the SIDE spinner. Only one ITEM can be set to SPINNER2 inside a preset.
  • TYPE – to select the type of MIDI message that will be controlled by the spinner.
    • CC is the most suitable type of message for the ENDLESS MODE  or POT EMULATION MODE.
    • NOTE  is the most suitable type of message for the SCALE MODE
    • PITCH BEND can be selected for the POT EMULATION MODE. 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.
    • Other types: they can be assimilated to the cases described for the CC type.
  • 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.

 

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, on TOUCH_condition_pressed. 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_condition_released.
    • 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 example

This video exemplifies different features of a DART device:

  • MIDI FEEDBACK:
    • 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.
  • SCALE LEARN
    • 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.