DART EDITOR

  • The DART_Editor application can be used to create, modify, upload and save presets for a DARTMOBO based machine.
  • it is also an excellent and convenient MIDI MONITOR, thanks to the midi-filter and the buzzer, wich provides immediate sound feedback.
  • the Editor can also be adapted to any custom controller shape, thanks to the possibility to draw custom layouts.
  • It can also be used as a software MIDI controller.

Download DART_EDITOR 


INITIALIZE the editor

At the program startup, the user will be asked for MIDI IN and MIDI OUT ports wich the comunication goes thru.

The DART controller  ports is usually named “DART” or “Arduino Leonardo”.


EDITOR OVERVIEW

  1. ITEMS AREA – contains up to 60 ITEMS
  2. MIDI MONITOR – allows you to read the incoming midi data
  3. SEND ALL/ SEND This – to upload the complete preset, or the selected ITEM only
  4. SETTINGS BOX – contains all the selectors to define the setting of an ITEM
  5. PAGES – each preset consists of two selectable pages
  6. LOAD / SAVE – presets are saved and loaded to disk in .csv format
  7. HINT BOX – immediate help to better use the editor
  8. DRAW MODE (Edit) – allows you to add, delete and shape the ITEMS of the layout area

1. ITEMS AREA

 

  • Each ITEM represents a modifier that is mounted on the Dart controller box: potentiometers, spinners, pushbuttons, sensors and so on…
  • Up to 60 ITEMS can be selected to get access to the settings of the related modifier.
  • Items can be varied in shape, size and position (so as to remember the shape of a button or a fader), and can contain a short string of text that reminds which modifier they refer to.
  • Some ITEMS in this area are related to generic settings to be sent to the Dart controller ( General-setup or Mouse-setup)
  • The default layout, at editor’s startup, reproduces the inputs of a DartMobo PCB circuit. All modifiers are set to BLIND-INPUT mode. The last modifier (G) stores the GENERAL settings, for circuit configuration.
  • Items can be used to produce MIDI messages, so the Dart_Editor can be used as a controller itself.

Fullscreen view

It is possible to set the Items area in fullscreen mode by pressing the keys “G” and “F” on the pc keyboard.


2. MIDI MONITOR

  • A. Incoming MIDI messages (Green section). The monitor shows messages in a four-parameter scheme:
    • Channel – 1 to 16
    • Type – Note, Poly AT, CC, AT, PC, PB
    • Data Byte 1 – 0 to 127
    • Data Byte 2- 0 to 127
  • Each time a MIDI message is received form the Dart controller, the ITEM that corresponds to this message will flash in green colour. This is another way to monitor the incoming MIDI activity.
  • B. The MIDI filter section can be used to focus on a specified Channel or Value.
  • Incoming or outgoing messages can be excluded from monitoring by clicking on IN and OUT selectors.
  • C. A Raw-Data monitor in 6 lines offers a visual reference of data, in the classic MIDI 3 bytes form.
    • STATUS BYTE – it identifies the Channel and the Type
    • DATA BYTE 1 – it idetifies the Number.
    • DATA BYTE 2 – it identifies the Velocity
  • D. A KeyStrokes monitor (Orange colour section). It can be used to monitor the HID emulation functions.

3. SEND all/ SEND this

  • by clicking on SEND-ALL It is possible to upload the complete preset, on both pages, to the controller.
  • by clicking SEND-THIS the upload process is restricted to the selected modifier on the selected page
  • during a correct Preset Upload process all LEDs on the controller panel flash intermittently.



4. SETTINGS box

  • All the setting, for the selected ITEM, can be edited here.
  • the main selector is MODE, it allows us to diversify the settings for knobs, potentiometers and sensors. All other selectors may change depending on the MODE selector setting.
  • list of MODE selections:
    • BUTTON
    • TOGGLE
    • TOGGLE GROUPS 1- 4
    • RADIO GROUPS 1-4
    • POT
    • HYPERCURVE 1
    • HYPERCURVE 2
    • CENTER-CURVE 1
    • CENTER-CURVE 2
    • PAGE SWITCH
    • DISTANCE SENSOR
    • BLIND INPUT
    • PADS
    • SPINNER1 Setup
    • SPINNER2 Setup
    • ENCODER
    • TOUCH SENSOR 1
    • TOUCH SENSOR 2
    • MOUSE/ARROWS
    • GENERAL

4a. SETTINGS box in DRAW mode

When the DRAW mode is active, three additional selectors will be displayed:

  • MEMORY POSITION – this value indicates the exact input pin the selected Item refers to. positioning yourself on this selector with the mouse cursor, the image of the circuit will be displayed, to help orient yourself during the construction.
  • HINT – the hint message can be customized here, for every item.
  • NAME – the item name can be changed here.

 


5. PAGES

  1. each preset is divided in two PAGES
  2. the settings of an ITEM can be different for page-1 and page-2.
    • Some MODE selections will cause the Settings-Area to be linked between Page-1 and Page-2, for instance PAGE-SWITCH Mode.

6. LOAD / SAVE

  • each preset contains the configuration to be sent to the DART controller, and the graphic layout of the Modifiers Area.
  • The presets are saved in .CSV (Comma Seperated Values) files that can be also opened and modified using a common NotePad app.
  • It is possible to customize the Default-Preset.csv, contained in “data” folder, that is automatically opened at editor startup. So, DIYers can create complete controller systems (machine+editor).

7. HINT BOX

  • just click or move on a specified element on screen and the Hint Box will show the related HowTo suggestions.

8. DRAW MODE

  • The DRAW mode allows you to add, delete and shape the ITEMS on the layout area
  • It is designed for those who are using the DARTMOBO PCB kit to build their own machines.

 

  • list of editing actions:
    • SHIFT + Mouse-left-click and drag = move a modifier, within the Modifiers Area.
    • SHIFT + MouseWheel = change modifier size
    • CTRL + Mouse Wheel = change modifier shape
    • ‘W’ + MouseWheel = change modifier width
    • ‘H’ + MouseWheel = change modifier height
    • ‘M’ + MouseWheel = add or change mask.
    • ‘N’ + MouseWheel = change mask size.
    • ‘B’ + MouseWheel  = Change mask layer.
    • CTRL + ‘-‘ or CTRL + ‘8’ = hide current modifier – Hidden modifiers are set to BLIND INPUT MODE
    • CTRL + ‘0’ = hide all modifiers – Hidden modifiers are set to BLIND INPUT MODE
    • CTRL + ‘+’ or CTRL + ‘9’= Add a modifier (up to 60 modifiers can be added)
  • Settings-Area parameters that are accessible from Edit-mode:
    • MEMORY POSITION: choose here the memory-slot, on the Dart controller’s memory, where the choosen modifier settings will be uploaded. The memory position is directly related to the CIRCUIT position. In other words: a potentiometer or button, connected to Circuit position number 3 must be set to Memory-Position number 3. Memory-Position value is not relevant for Generic settings (Mouse-mode, General-Mode, Pads-mode…). So, Generic setting are usually loaded on Memory positions higher that 56 (the maximum number of phisical modifiers that a DartMobo system can handle). A picture of the DartMobo PCB input/output numbering will be visible by clicking on the Memory Pos. number box . Memory-position value cannot be the same on more than one modifier.
    • HINTS: write here a suggestion text that will be shown on the Hint Box, clicking on the selected modifier.
    • NAME: Name of the modifier, shown in the Modifiers-Area.

MASKS

it is possible to add masks to the items on the screen. In this way it is possible to create an interface for your self-built controller that is actually corresponding, even visually, to the physical controller.

Mask .png files, contained in the ‘data’ folder can also be modified and customized.

Masks type, size and layer can be modified as described in the DRAW mode point.

 


Settings Area – MODE selector – in detail…

  • BLIND INPUT: the input is not read.
  • BUTTON: debounced on-off output.
    • Settings:
      • VALUE – the value of the Data Byte 1 – in a Note message it will be the Note-Pitch value.
      • MINIMUM – the value of the Data byte 2 of the MIDI message at released-button action.
      • MAXIMUM – the value of the Data byte 2 of the MIDI message at pressed-button action.
      • MIDI CHANNEL – the channel to wich the MIDI message will be encoded – from 1 to 16
      • DMX CHANNEL – The channel of the DMX output produced by the button action.
        • the DMX value on Button_pressed is double the MAXIMUM value.
      • MIDI TYPE: Note, Poly AfterTouch, Control Change, Program Change, AfterTouch, Pitch Bend.
      • KEY: the keyboard key emulated by the controller. MIDI data will not be output with Key emulation active, choose NULL to have midi output.
      • HOTKEY: CTRL, SHIFT, ALT keys can be combined with Key message to assign complex KeyStrokes to a button.
      • LED: choose here the Output that is controlled by the selected modifier. A picture of the DartMobo PCB input/output numbering will be visible by clicking on the LED number box . Value ‘0’ is NO-action. Here is the Input/Output numbering in a DartMobo PCB based DIY controller or in a breadboard based circuit:
  • TOGGLE: debounced Toggle mode.
    • Settings: as Button.
  • TOGGLE GROUPS: Only one can be ON at a time in a group.
    • Settings: as Button.
  • RADIO GROUPS: emulation of a vintage radio channel selector. the selected button remains lit after pressig it again.
    • Settings: as Button

 

  • POT MODE: Continuous output, for potenciometers and sensors.
    • Settings:
      • VALUE – the value of the Data Byte 1 –  in a Note message it will be the Note-Pitch value.
      • MINIMUM – the value of the Data byte 2 of the MIDI message at released-button action.
      • MAXIMUM – the value of the Data byte 2 of the MIDI message at pressed-button action.
      • MIDI CHANNEL – the channel to wich the MIDI message will be encoded – from 1 to 16
      • DMX CHANNEL – The channel of the DMX output produced by the button action.
      • MIDI TYPE:  Poly AfterTouch, Control Change,  AfterTouch, Pitch Bend. (NO Note, NO Program Change)
  • HYPERCURVE 1-2: the maximum value is reached in a reduced range (from top to mid in hypercurve-1 / from bottom to mid in hypercurve-2).
    • Settings: as Pot.
  • CENTER-CURVE 1-2: the center value (64) has a larger flat range.
    • Settings: as Pot.

 

 

  • PAGE SWITCH: the page-switch itself can control a MIDI message. The settins are the same (linked) for both pages. Only ONE single modifier can be set to page-switch at a time.
    • Settings:
      • VALUE – the value of the Data Byte 1 – of the MIDI message. in a Note message it will be the Pitch value – the Data Byte 2 (VELOCITY) of the PageSwitch-action is always 0 or 127.
      • MIDI CHANNEL – the channel to wich the MIDI message will be encoded – from 1 to 16
      • MIDI TYPE: Note, Poly AfterTouch, Control Change, Program Change, AfterTouch, Pitch Bend.

 

  • DISTANCE SENSOR: It can be set to work as a normal POT or as a ON-OFF virtual button.
    • Settings:
      • VALUE – the value of the Data_Byte_1 – in a Note message it will be the Note-Pitch value.
      • MIN/MAX – the value range of the Data_byte_2 can be varied and inverted.
      • MIDI CHANNEL – the channel to wich the MIDI message will be encoded – from 1 to 16
      • DMX CHANNEL – The channel of the DMX output produced by the sensor action.
      • MIDI TYPE:  the distance sensor is commonly set to Control Change or Pitch Bend.
      • POT/BUTTON/SCALE
        • 0 – POT_mode : the distance sensor produces a continuous MIDI output flow, as a potentiometer.
        • 1 – BUTTON_mode : the sensor emulates an ON-OFF switch, distance will regulate the data byte 2 (velocity) of the MIDI signal – the MIDI-type selector should be set to NOTE.
        • 2 – SCALE_mode – the sensor will control a glissato sequence of notes, following the scale that has been set or recorded by one of the spinners (in case they are set in scale mode) –  the  MIDI-type selector should be set to NOTE.

 

  • PADS: settings for piezo-sensors inputs. the selected value is used for the first Pad-input, all other inputs are shifted to the following pitch value. The Data Byte 2 (velocity) is proportional to the intensity of the pulse-signal received.
    • Settings:
      • VALUE – the value of the Data Byte 1. in a Note message it will be the Note-Pitch value.
      • MIDI CHANNEL – the channel to wich the MIDI message will be encoded – from 1 to 16
      • MIDI TYPE: Note, Poly AfterTouch, Control Change, Program Change, AfterTouch, Pitch Bend.

 

  • SPINNER1: Main encoder settings. (Nerdy note: The main Spinner is read on the Arduino pins 2 and 3, wich have interrupt capability, for best precision)
    • Settings:
      • DATA BYTE 1 – the ID number of a MIDI message.  In a Note message it will be the Pitch value.
      • MIDI CHANNEL – the channel to wich the MIDI message will be encoded – from 1 to 16
      • MIDI TYPE: Note, Poly AfterTouch, Control Change, Program Change, AfterTouch, Pitch Bend.
      • SPIN MODE
        • 0 = 63-65 endless mode.
        • 1 = 0-127 endless mode.
        • 2 = POT emulation mode.
        • 3 = SCALE-LEARN mode.
      • TOUCH STOP:  the touch-stop function 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 just translate spinning data to the upper MIDI Channel.
        • 0 = NO touch-stop
        • 1 = touch-stop active
      • 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.
  • SPINNER2: Secondary encoder settings. The secondary spinner must be activated on the GENERAL setup modifier. the Secondary encoder is always read on the DartMobo inputs 41 and 42.
    • Settings: as Spinner 1.

 

  • TOUCH SENSOR 1:
    • Settings:
      • MIDI TYPE – Note, Poly AfterTouch, Control Change, Program Change, AfterTouch, Pitch Bend.
      • VALUE – the value of the Data Byte 1 –  in a Note message it will be the Pitch value – the Data Byte 2 (VELOCITY) of the touch-action is always 0 or 127.
      • LOWER LIMIT – Lower Sensitivity-treshold value for touch-action triggering. – usual value: 30.
      • UPPER LIMIT – Upper Sensitivity-treshold value for touch-action triggering. – usual value: 100.
      • MIDI CHANNEL – the channel to wich the MIDI message will be encoded – from 1 to 16
      • TOUCH RESET:
        • 0 – OFF
        • 1 – Touch-Reset active. The control will be reset to the Reset-Value, at Touch-release action.
      • RESET VALUE – the value to wich the control will be reset, at Touch-release action.
      • TOUCH MODE (Edit-mode) The Virtual-touch function can be enabled setting the LED value to 1 (EDIT mode). Capacitive touch will be disabled.
  • TOUCH SENSOR 2: the Secondary Touch sensor is enabled only if the Secondary Encoder is active.
    • Settings: as Touch Sensor 1.

 

  • MOUSE/ARROWS: Setting up an Analog joystick to act as a Mouse or ArrowKeys emulator.
    • Settings:
      • MOUSEWHEEL
        • 0 – OFF
        • 1 – Mousewheel emulation active on Spinner1 – use Spinner SPEED settings to setup the mousewheel speed.
        • 2 – Mousewheel emulation active on Spinner2
      • X AXIS – the Circuit-Position of the X axis potentiometer.
      • Y AXIS – The Circuit-Position of the Y axis potentiometer.
      • MOUSE/ARROWS
        • 0 – OFF – Common midi operation on X and Y axis pots.
        • 1 – Mouse emulation ACTIVE.
        • 2 – Arrow Keys emulation – the joystick can be used as a Up-Down, Left-Right arrows triggerer.

 

  • GENERAL: General mode sets a item to contain the ciruit settings of the controller. The settings are linked for both page1 and page2. Only ONE single item can be set to General mode at a time.  A General item must always be activated in a preset, otherwise the controller will work in AutoDetect mode!!
    • Settings:
      • NOMOBO – set it to 1 to set the machine in NOMOBO mode, in wich no Shifters are used in the circuit and up to 6 LEDs can be controlled directly from the arduino digital out pins. It is useful for small controller projects.
      • EXTRA PLEXER– The Extra Analog A9 input has been used in the DART KOROVA controller design to raise the number of inputs used to 56. Enabling the Extra-Input will cause the Touch-Sensor 2 to be disabled
        • 0 – OFF
        • 1 – Extra Analog Input ACTIVE – on Arduino pin A9
      • PADS – By enabling PADS, the A5 input of the Arduino board will be scanned at a higher frequency, so the inputs 45 46 47 and 48 will be capable of sensing pulses coming from Piezo Transducers or from Common drum pads (like Roland or Yamaha ones). The MIDI message setting for pads are contained in the Pads modifier (in Pads mode).
        • 0 – Pads ACTIVE
        • 1 – OFF
      • SPINNERS: the 2nd spinner/encoder is always read on the DartMobo inputs 41 and 42, no matter what the Memory Position value is. Set this selector to value 1 if you want to free the 41 and 42 inputs for common modifiers.
        • 0 – OFF
        • 1 – Main Spinner ACTIVE.
        • 2 – Main Spinner + 2nd Spinner ACTIVE.
      • LED EFX – enables /disables  the LED light animations that are activated when buttons are pressed. They only have an aesthetic function and are designed for our Dart and Korova controllers. it’s good to disable these effects for DIY projects, where the animations would have a chaotic effect …

Customization

The Dart_Editor can be customized to be offered and distributed together with a physical controller based on the DART framework. let’s see in detail which customizations can be made:

  • Changing the STARTUP LAYOUT – the Default_preset.csv file is located into the /data folder and is automatically loaded at Editor startup, therefore by changing the starting preset the editor will always be started with the desired layout, for example if you want to provide a specific editor for a controller that has a specific shape.
  • Changing the SCREEN COLOUR – by opening the Editor_settings.csv file, located into the /data folder it is posible to change the RGB values for the screen general colour. Vlues range from 0 to 255
  • Eliminating the DRAW BUTTON – The DRAW mode is used to create a custom layout, but the user of a controller usually only needs to change the settings and will never need to change the layout, as happens with those who buy a commercial controller; therefore it is possible to deactivate DRAW mode by editing the Editor_setting.csv file under DRAW, setting the value to 0.
  • Changing the INTRO STRING –  it is possible to enter a custom text string for those who want to redistribute an editor dedicated to a specific controller design. This string can contain, for example, the name of the author and the name/date of creation of the console model. The introductory string can be customized by changing the text following the word “intro string” in the Editor_settings.csv file so that it will be constantly displayed in the editor’s Hint Box.

MORE CONFIG TIPS

EDITOR main guide.

EDITOR basics

Page switch

Encoders

Touchsensors

Distance sensor

HID emulation

DMX output

PADS

Joystick / mouse