DART_EDiTOR

 


  • The DART_Editor app lets you modify, upload and save presets for a DART based machine.
  • the controller Layouts are editable so the Editor can be adapted to any custom controller shape.
  • it is also possible to customize the startup Layout, for those who want a real custom editor for their machines.
  • The incoming MIDI activity can be monitored by audible buzzer sound and by a proper MIDI-monitor

Download Dart EDITOR here


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. LAYOUT 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. EDIT MODE – allows you to add, delete and shape the ITEMS of the layout area

1) LAYOUT AREA

 

  • Each ITEM represents a modifier that is actually mounted on the Dart controller box: potentiometers, spinners, pushbuttons, sensors and so on…
  • Up to 60 ITEMS can be selected and edited.
  • 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) is set to GENERAL mode for circuit config setup.

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
  • B) The MIDI filter section can be used to focus on a specified Channel or Value.
  • 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.
  • NOTE:  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.

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 AREA

  • All the setting, for the selected ITEM, can be edited here.
  • the most important selector is MODE, it allows us to diversify the settings for knobs or potentiometers or sensors and so on …
    • Some MODE selections can be choosen ONLY ONE TIME in a preset: Pages, Pads, Spinner 1, Spinner 2, Touch 1, Touch 2, Mouse, General.
    • Some MODE selections will cause the Settings-Area to be linked between Page-1 and Page-2, for instance PAGE-SWITCH Mode.
    • Some MODE selections are made to just contain generic infos about the controller setup, for instance GENERAL mode or MOUSE mode.
  • list of MODE selections:
    • BUTTON
    • TOGGLE
    • TOGGLE GROUPS 1- 8
    • 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

5) PAGES

  1. each preset is divided in two pages
  2. the settings of a ITEM is 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) EDIT MODE

  • Allows you to add, delete and shape the ITEMS of the layout area
  • The edit-mode is 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
    • 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 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.

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.

 

  • 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.
      • 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)
      • POT/BUTTON/SCALE
        • 0 – Potentiometer mode : the distance sensor produces a continuous MIDI output flow, as a potentiometer.
        • 1 – BUTTON emulation : the sensor emulates an ON-OFF switch, distance will regulate the data byte 2 (velocity) of the MIDI signal.
        • 2 -Scale play mode (set MIDI-type to NOTE for scale-play!) .

 

  • 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 modifier to contain the ciruit settings of the controller. The settings are linked for both page1 and page2. Only ONE modifier can be set to General mode at a time.  A General modifier must always be activated in a preset, otherwise the controller will work in AutoDetect mode!!
    • Settings:
      • 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 Secondary encoder is alwais read on the DartMobo inputs 41 and 42, no matter what the Memory Position value is.
        • 0 – OFF
        • 1 – Main Spinner ACTIVE.
        • 2 – Main Spinner + 2nd Spinner ACTIVE.