Public preview. Do not place real orders.

GLIDE MPE Controller

Touch controlfor MPE synths.

Play notes, pressure, slide, pads, and performance controls from one tablet surface. GLIDE is built for expressive synth work without adding another dedicated hardware surface.

GLIDE MPE controller keyboard and harmony interface

MPE Zone

Lower zone

Global Channel

1

Note Channels

2-16

Pitch Bend

48 semitones

Slide

CC74

Pressure

Channel pressure

MPE performance

Per-note pitch, pressure, and slide for synths that understand MPE.

Playable layouts

Keyboard, pads, harmony, arp, XY/XYZ, and macro views for different parts of a track.

DAW ready

Works as a MIDI input in MPE-capable hosts. Bitwig users can use the included controller script.

The controller surface is the product.

GLIDE puts the controls used during a take on screen: note entry, pressure, slide, harmony, pads, macros, and larger movement surfaces.

GLIDE screenshot: Keyboard and harmony

Keyboard and harmony

Notes, scale control, chord tools, and performance controls in one view.

GLIDE screenshot: Performance rack

Performance rack

Pads, envelopes, LFO controls, and macros for changing a sound while playing.

GLIDE screenshot: XYZ control

XYZ control

Large touch zones for pressure, movement, and modulation gestures.

GLIDE screenshot: Live layout

Live layout

A dark stage-friendly view for keyboard and performance control.

GLIDE screenshot: Bitwig flow

Bitwig flow

A Bitwig-focused layout with the same MPE performance model.

GLIDE screenshot: Cubase flow

Cubase flow

XYZ control and note-expression style performance for Cubase sessions.

Designed for standard MPE workflows.

GLIDE sends lower-zone MPE: channel 1 for global messages, channels 2-16 for notes, pitch bend at 48 semitones, slide on CC74, and pressure as channel pressure.

Ableton Live

Enable MPE for the GLIDE MIDI input, then use an MPE-capable Live instrument or plug-in.

Bitwig Studio

Use the included controller script or add GLIDE as an MPE/all-channel input. The script includes Android's common "MIDI Function" USB name.

Cubase

Use Cubase's Note Expression/MPE input setup so pitch bend, pressure, and CC74 stay attached to the note.

Fender Studio Pro

Add GLIDE as a keyboard-style MIDI input. For MPE instruments, keep the track or device input open to the original MIDI channels where the host exposes that setting.

Waveform Free + Vital

A no-cost test path: Waveform Free as the host and Vital Basic as the synth. Confirm your host build is preserving MPE channel data.

Dedicated Bitwig setup in one file.

The script makes Bitwig treat GLIDE as an expressive MIDI controller and includes the generic Android USB name that often appears as MIDI Function.

Place the file in Bitwig's Controller Scripts folder, restart Bitwig, then add GLIDE MPE from controller settings.

View Script
loadAPI(1);

host.defineController(
   "Berg Instruments",
   "GLIDE MPE",
   "1.1",
   "f7b37b68-62a4-4d7f-b0c8-2c5c1af0d9fd",
   "Berg Instruments"
);

host.defineMidiPorts(1, 1);

// Android often exposes USB MIDI devices under the generic interface name
// "MIDI Function". Keep the GLIDE-specific names too for virtual MIDI and
// future firmware/app naming, but prefer the tablet's real-world name first.
host.addDeviceNameBasedDiscoveryPair([ "MIDI Function" ], [ "MIDI Function" ]);
host.addDeviceNameBasedDiscoveryPair([ "GLIDE MPE Performance Out" ], [ "GLIDE MPE Clock In" ]);
host.addDeviceNameBasedDiscoveryPair([ "GLIDE MPE" ], [ "GLIDE MPE" ]);
host.addDeviceNameBasedDiscoveryPair([ "MIDIPolyphonicExpressionApp" ], [ "MIDIPolyphonicExpressionApp" ]);

var noteInput = null;
var midiIn = null;
function init()
{
   midiIn = host.getMidiInPort(0);

   midiIn.setMidiCallback(onMidi);
   midiIn.setSysexCallback(onSysex);

   // Match Bitwig's bundled ROLI/Joue MPE scripts: let the expressive note
   // input see the complete stream so note, pressure, slide, and per-channel
   // pitch bend stay grouped as MPE note expressions.
   noteInput = midiIn.createNoteInput("GLIDE MPE", "??????");
   noteInput.setShouldConsumeEvents(false);

   // Lower-zone MPE: master channel 1, member channels 2-16.
   // Keep this pitch range aligned with the Android app MPE bend range.
   noteInput.setUseExpressiveMidi(true, 0, 48);

   host.showPopupNotification("GLIDE MPE ready - use the MIDI Function input");
}

function flush()
{
}

function onMidi(status, data1, data2)
{
}

function onSysex(data)
{
}

function exit()
{
}