nt_helper

Table of contents

Helper for Disting NT Preset Editing

nt_helper UI image

Introduction

I got a Disting NT, read through the manual, and decided one day to see whether I could write a program to implement the SysEx protocol. Nearly immediately, I was able to get messages flying between a Flutter application and the Disting NT, and this project began. Using Flutter, I thought I'd be able to support a wide range of platforms quite easily, and that has been true so far.

This project supports Windows desktop, Linux, and macOS, as well as iOS and Android.

Installation

For Windows, Linux, Android, and macOS, download the appropriate file from the releases on GitHub and install it. For macOS, the app is registered with Apple on each build, and code signed so that you can more easily install it from the archive.

Troubleshooting

If you find the app is not starting on Windows, please download the C++ libraries from Microsoft from this URL: Latest Microsoft Visual C Redistributable Version

Features

The features of nt_helper follow those of the Expert Sleepers preset editor since they are built on the same protocol. nt_helper differs in a few ways, mainly in its tab layout (instead of indexed slots, you see all of the algorithms in a preset).

nt_helper has a light theme, and a dark theme, depending on what the system is configured to it will adapt.

Connecting to Disting NT

You will need to directly wire, via USB-C, the Disting NT and the device you are running nt_helper on. Some iOS devices require a Lightning to USB-C adapter to do this, but most modern devices can use a USB-C cable directly.

The initial screen you will see is the connection screen. You need to select the input and output MIDI devices to make the connection bidirectional. You can select the same device if it appears in both lists.

connection screen

If you have no devices, check your cable and hit the Refresh button.

Once the Connect button is enabled, press it to establish the connection.

Synchronizing

You will see a screen that shows the initial synchronization spinner. This should only take a short period of time. If it spins indefinitely, you likely have an issue with MIDI, such as cable length or another problem. Try a shorter cable. Try a different cable. Then contact me for help. Synchronization should not take long, but sometimes timeouts and retries occur if the devices are slow or the cable connection is poor. If necessary, Cancel and try connecting again.

You may need to modify the default settings for message timeouts and inter-message delays. See the Settings section below for details. The settings icon appears on the connection page, and so when you cancel, you can edit the settings if you need to.

synchronizing

Working Offline

nt_helper provides an offline mode that allows you to manage and edit presets even when not actively connected to your Disting NT. This is useful for preparing presets on the go, organizing your preset library, or working when your module isn't immediately available.

Key Features of Offline Mode:

Offline Data saved presets

Offline Data synced algorithms

This offline capability ensures you can still be productive with your presets and ideas, regardless of your immediate connection status to the Disting NT.

Editor Screen

The editor screen consists of several sections, each described below.

Top App Bar

This app bar shows the app title, actions, overflow menu, and preset name.

top app bar

Actions

You can refresh, delete an algorithm and move algorithms up and down (back and forth in the tab bar). Algorithms that are further left are higher in the algorithm list on the module. The order sometimes matters for signal processing.

Overflow Menu

Options in the overflow menu include:

menu

Preset Name

Displays the preset name. Tapping it opens a dialog to edit or change the name.

Tab Bar

Tabs display each algorithm in the preset and can be scrolled horizontally. Long-press a tab to rename the algorithm, which will also update the name on the module.

Algorithm Window

The Algorithm window displays a custom widget (e.g., Notes algorithm) or a list of parameter pages. Each parameter row includes:

editor

Mapping

When the mapping icon is pressed, a bottom-sheet will slide up to allow you to edit mappings for CV, MIDI and i2c.

mapping icon

MIDI Mapping Types

The MIDI mapping editor supports several mapping types:

14-bit MIDI CC mapping

14-bit MIDI CC provides 16,384 discrete values instead of the standard 128, eliminating zipper noise and enabling smooth parameter sweeps. This is particularly useful for parameters like filter cutoff, pitch, or any parameter that benefits from fine control. When using 14-bit CC, configure both the low and high controllers as a pair, with the low controller number typically 32 higher than the high controller number (e.g., CC 1 for high, CC 33 for low).

MIDI Detector

There is a somewhat hidden feature in the MIDI mapping editor, where if you scroll it to the bottom, you will see a MIDI Detector box. You can connect to any of the MIDI connections attached to your device, and it will monitor the MIDI CC messages, and automatically fill in the Channel and CC fields for you when it detects a sufficient number of incoming messages that are the same. This makes it quite a bit easier to perform MIDI mapping with nt_helper.

MIDI detector

Once you are done editing a mapping, hit the save button to send that mapping to the Disting NT.

Bottom App Bar

The bottom app bar provides quick access to view modes and displays status information.

bottom app bar

Mode Switcher

On the left side, a segmented button toggles between two editing modes:

Display Mode Buttons

The display mode buttons control what the Disting NT shows on its screen. On desktop, these appear as individual icons. On mobile, tap the View Options button to access them via a menu.

These controls are useful when you want to view the module's display remotely, particularly when combined with the Screenshot feature.

When working offline, an Offline Data button appears instead, providing access to cached presets and algorithm metadata.

Status Indicators

On the right side of the bottom bar:

Add Algorithm Button

The floating action button on the right opens the Add Algorithm screen to add new algorithms to your preset.

MCP Server Integration

nt_helper includes an MCP (Model Context Protocol) server, primarily for desktop platforms (Windows, macOS, Linux). This server allows external tools and AI assistants (like Cursor) to interact with the application programmatically, enabling advanced workflows and automation. MCP is an open protocol that standardizes how applications provide context to LLMs. You can learn more about it at the Model Context Protocol website.

Adding Algorithms

Pressing the Add Algorithm button navigates to the specification screen. Here, you can select an algorithm and configure it before adding it. Synchronization occurs automatically, and the new algorithm appears at the end of the tab bar.

If the algorithm does not appear, use the Refresh menu option to trigger another update.

add algorithm screen

View Modes

The Add Algorithm screen offers three different view modes to help you find algorithms efficiently. Use the segmented button near the filter controls to switch between modes:

Add Algorithm list view

Add Algorithm column view

Your selected view mode persists across app restarts. All three views support the same filtering options: search, favorites, plugin type, and categories. An algorithm count is displayed below the filter controls showing how many algorithms match your current filters.

Filtering

Use the filter controls to narrow down the algorithm list:

Step Sequencer

The Step Sequencer algorithm has a dedicated visual interface in nt_helper that replaces the standard parameter list with an intuitive grid-based editor. When you select a Step Sequencer algorithm in your preset, you will see the visual interface automatically.

Step Sequencer main view

Grid Interface

The main interface displays a 16-step grid where each column represents one step in the sequence:

Sequence Selector

At the top of the interface, the sequence selector allows you to switch between the four available sequences (A, B, C, D). Each sequence has its own independent set of step values.

Quantization

The Step Sequencer includes scale quantization to keep your sequences musical:

Step Sequencer quantize controls

Playback Controls

Below the grid, playback controls allow you to configure how the sequence plays:

Per-Step Parameters

Each step can have additional parameters beyond pitch:

Bit Pattern Editors

For Pattern and Ties parameters, dedicated bit pattern editors allow you to toggle individual bits by tapping directly on the pattern display. This provides a quick way to create rhythmic variations and tie patterns.

Parameter Pages

For access to all Step Sequencer parameters in the traditional format, use the Parameter Pages view. This displays the familiar expandable parameter sections while still providing the visual context of the step grid.

Step Sequencer parameter pages

Randomization

The randomize menu provides options to generate random sequences:

Sync Status

A sync indicator shows whether your changes have been sent to the module. Changes are automatically synchronized with a short debounce delay to prevent flooding the module with messages while you are actively editing.

Offline Support

The Step Sequencer visual interface works in offline mode. You can edit sequences without a connected module, and changes will be tracked for later synchronization when you reconnect.

nt_helper includes a comprehensive Plugin Gallery for discovering, managing, and installing plugins for your Disting NT. Access the Plugin Gallery through the overflow menu by selecting Plugin Manager.

Plugin Manager Interface

The Plugin Manager provides two main views:

Installed Plugins Tab

Plugin Manager installed tab

Plugin Gallery explore tab

View Modes

The Plugin Gallery offers multiple view modes accessible via the view mode selector:

Plugin Gallery view modes

Installation Process

From Gallery:

  1. Browse or search for plugins in the Gallery tab
  2. Add desired plugins to your installation queue
  3. For plugin collections, choose specific plugins to install via the selection dialog
  4. Install all queued plugins with progress tracking
  5. Plugins are automatically transferred to your Disting NT's SD card
  6. Lua Scripts and Three Pot plugins are handled gracefully during program changes

Plugin Gallery queue tab

Direct Installation (Desktop):

C++ Plugin Installation:

C++ plugins (.o files) require special handling because the Disting NT needs to rescan its plugin directory after installation. When you install a C++ plugin:

  1. The plugin file is transferred to the programs/plug-ins/ directory on the SD card
  2. nt_helper automatically triggers a plugin rescan on the module
  3. The module reloads its plugin list to include the newly installed plugin
  4. The new algorithm becomes available in the Add Algorithm screen

This automatic rescan eliminates the need to manually power cycle or navigate menus on the module after installing C++ plugins.

Plugin Backup (Desktop Only)

Create comprehensive backups of your installed plugins:

Preset Package Installation

On desktop platforms, nt_helper supports installation of preset packages through drag-and-drop functionality. This feature streamlines the process of installing community-created preset collections.

Supported Formats:

Installation Process:

  1. Drag a .zip package or .json preset file onto the Load Preset dialog
  2. For ZIP packages, nt_helper analyzes the contents and validates the manifest
  3. If file conflicts are detected (files already exist on your SD card), a conflict resolution dialog appears
  4. Choose actions for each conflicting file: Overwrite, Skip, or Rename
  5. Files are transferred to your Disting NT's SD card with progress tracking

Conflict Resolution: When installing packages, nt_helper checks for existing files and provides file-by-file conflict resolution options, ensuring you maintain control over your existing preset library while adding new content.

Routing Editor

nt_helper features an interactive Routing Editor that provides a visual, node-based representation of your preset's signal flow. Access it through the overflow menu by selecting Routing Editor, or by tapping the Routing button in the bottom bar.

Routing Editor overview

Node Types

The routing editor displays several types of nodes:

Each algorithm node includes a toolbar with Move Up, Move Down, and Delete buttons for managing the algorithm order.

Creating Connections

To create a connection, drag from an output port to an input port. A temporary line follows your cursor during the drag. The editor automatically assigns an appropriate internal bus based on the connection type:

Invalid connections (such as connecting two inputs or two outputs) are prevented with visual feedback.

Connection Display

Connections appear as curved lines between ports. Each connection displays:

Click on a connection label to toggle between Add and Replace modes where applicable.

Deleting Connections

Toolbar

The toolbar at the top of the routing editor provides several controls:

Routing Editor toolbar

Keyboard Shortcuts (Desktop)

Screenshot and Export

The screenshot button provides several options for capturing the routing diagram:

Mini-Map

A mini-map in the bottom-right corner shows an overview of the entire canvas. The highlighted rectangle indicates your current viewport position. Click anywhere on the mini-map to jump to that location.

Position Persistence

Node positions are saved per preset. When you reopen a preset, the routing editor restores your previous node arrangement. Use the Reset Layout button to return to the default positions.

Perform

The Perform screen provides quick access to parameters you have assigned to Performance Pages. This mirrors the Performance Pages feature on the Disting NT itself, which allows you to curate key parameters from throughout a preset and present them in a centralized location. Instead of navigating between different algorithms to adjust frequently-used parameters, you can organize them onto up to 15 performance pages.

Perform screen

Performance Pages

The Disting NT supports 15 performance pages (P1 through P15). Each page can contain parameters from any algorithm in your preset. In nt_helper, you navigate between pages using the colored badges in the side rail on the left side of the screen. The badges use a rotating color scheme (blue, green, orange, purple, red) to help distinguish pages visually.

Only pages that have parameters assigned to them appear in the navigation rail. Select a page badge to view and edit the parameters on that page.

Assigning Parameters to Performance Pages

There are two ways to assign a parameter to a performance page:

From the Algorithm Editor (Desktop): On screens 600px or wider, each parameter row displays a performance page dropdown. Select a page number (1-15) to assign the parameter, or "Not Assigned" to remove it from all performance pages.

Performance page dropdown in algorithm editor

From the Mapping Editor: Open the mapping editor for any parameter by tapping its mapping icon. The fourth tab, Performance, contains a dropdown to select which performance page the parameter should appear on.

Performance tab in mapping editor

Performance Parameters Section

When editing an algorithm, a collapsible Performance Parameters section appears showing all parameters from that algorithm currently assigned to any performance page. Each entry displays the page badge (P1, P2, etc.) and includes a remove button to quickly unassign the parameter.

Parameter Polling

The play button in the app bar enables real-time polling of parameter values. When enabled:

CV modulation does not change the underlying parameter values (it applies offsets), so CV changes are not reflected in the Perform sliders.

Polling stops automatically when you leave the Perform screen, or you can stop it manually with the pause button.

Editing Parameters

From the Perform screen you can:

Settings

Displays a dialog where you can change a few settings.

settings screen

Support

If you have any problems, or just want to talk, feel free to contact me through the Github Repository for this project. There you can also leave support tickets in the issues section. If you want to talk with me in person, you can do so through the Expert Sleepers Discord.

Privacy Policy

nt_helper does not connect to the Internet, and does not collect data. Your privacy is assured. I will not collect any information from the app and do not intend to do so.

/Disting NT/ /Projects/