MIDI Designer and StreamByter

MIDI Designer Pro 2 provides a flexible, customizable MIDI control surface.

StreamByter, by Audeonic, provides processing of a MIDI data stream.

Working together, they provide a complete MIDI processing and control solution.

Example use combinations
– SB decodes a SysEx status dump from target hardware into individual MIDI commands for display in MDP2
– SB remaps MDP2 controls to different target addresses (e.g., one set of controls for part and master effects)
– MDP2 provides control of SB channel cloning / remapping
– SB provides advanced relationships for MDP2 controls

StreamByter is built in to MDP2 as an in app purchase for input and output processing.

For more advanced processing, add the stand alone version of StreamByter, for looping output back to input.

MIDI Fire adds other tools, such as flexible MIDI routing, with multiple StreamByter modules.

See more about StreamByter.

See MDP2 layouts using StreamByter.

If you need help, post your question on our Q&A forum

MIDI Designer Pro 2 for the Transitioning Lemur User

Liine have announced the end of support for the Lemur MIDI / OSC controller application – see liine.net 

MIDI Designer Pro 2 offers the Lemur user an alternate application that supports many of the use cases of Lemur.

Lemur MIDI Designer Pro 2
Control surfaces for MIDI devices – Buttons, knobs, sliders, lists, VU meters, dynamic labels, XY controls, accelerometer
– Eight banks with up to six pages each
– Abstract visual style controls 🟡 – MDP2 focuses more on hardware realistic interfaces, some abstraction possible
Advanced relationships between control settings – programming required – Super / sub control relationships and named ticks provide no-programming implementations for preponderance of controls
– StreamByter for advanced control relationships 
Open Sound Control – MIDI only
Sequencer, Multi-Ball Controls 🟡 – MDP2 does provide control loopers, but no direct sequencing
iOS Supported, M1 Mac Provisional – M1 is provisional, functional, with in-work interface improvements
End of Support – MDP2 continues active development and support, most recent update in July 2022
?  Active application help and user groups – MDP2 has active users, FB group, shared layouts, and developer provided support
? – Library of user shared layouts

There is no conversion capability to convert a Lemur application into a MDP2 layout.  But with MDP2 you can build a layout without any programming – place controls, adjust settings, connect, and take control of your devices.

When advanced control relationships are required:

  • Super / sub control relationships provide basic control interconnection
  • Named ticks provide scaling, arbitrary relationships, control down-sampling, and more, without writing any code
  • StreamByter provides advanced control relationships with straight-forward lexicon

MDP2 is not a one-for-one replacement for Lemur, but can cover many use cases.

Our user group and support team are standing by to help you transition.  

Check out our Q&A site for help and user layouts – midiDr.com/qa/

Join our FaceBook group – https://www.facebook.com/groups/mididesigner

StreamByter is a audeonic.com product, included in MDP2, available stand-alone and in MIDI Fire

MDP2 – a capable SysEx solution for device control

Many current and classic boards provide ability to edit settings via System Exclusive (SysEx) messages.  SysEx provides more data options than Continuous Controller (Cc) or Registered Parameter (RPN/NRPN) messages.  Instead of two MIDI bytes, the data field can be (somewhat) unlimited, allowing for exchange of patch, performance, or even complete system backup.

MDP2 SysEx message format provides for up to four Data bytes, and an extra “channel” byte, for five selectable bytes in a message.

MIDI is already a somewhat non-standard format, since it uses 7 (vice 8) data bits in a message byte.  MDP2 automatically handles conversion from decimal to hex for typical 1 to 4 byte values.  But many manufacturers use even more complicated formats, such as “four bit” encoding (used a lot by Roland), or even somewhat random encoding.  MDP2 has you covered in these cases with “named ticks” – supporting manufacturers completely arbitrary encoding concepts.  In the Roland four-bit per byte case, we can provide a spreadsheet to do the required numerical conversions to load the named ticks.

Many board will have a “transmit edit” setting that will send messages, often SysEx, when edits are done on the board, to keep a MDP2 control layout in sync.  But what if it doesn’t automatically send?  MDP2 can generate the required interrogation messages to obtain status to synchronize the layout.

A board can report data with individual SysEx messages for each parameter, or a longer combined message with multiple values combined.  Each is supported by MDP2.

For individual messages, the board response does not require any translation – with a SysEx address match and MIDI receive enabled, the appropriate control will update.  But, say you need to request 200 parameters, that is a lot of coding.  No problem – a SysEx scanner (https://mididesigner.com/qa/6964) will let just a few controls (typically one for each data byte length) do all the work for you.  (Example – RD-2000, X(m) and RD-88 layouts.)

For a single combined message, the work of separating the single message into individual control messages is done by StreamByter.  Ugh, but now I need to handcraft 200 lines of StreamByter code.  Nope – again, a spreadsheet can automatically generate the needed SB code.  Each situation is slightly different, but we can provide an example if needed to get you started.

Often a manufacturer uses the same SysEx code for a new board, just with different addresses.  In this case an existing layout can be quickly extended to the new board.  But, now you have to change umpteen controls to the new SysEx address format, even though all the data formats are the same.  Nope – SB code can translate the messages in both directions, allowing the layout to be used unchanged with the new hardware.  (Example – some pages in RD-88 editor)

We do have a few limitations.

  • We only process data values up to four bytes, and a fifth “channel” byte.  Again, there are work arounds. One is to have StreamByter compressi data inbound to process, re-expanding outbound.  (Example – eight bytes required to select ZEN-Core waves in X(m) ZEN-Core editor).  Other methods get around the limitation of trying to manipulate a >four byte value range on a single MDP2 control.  Again, using SB, split the inbound data into smaller pieces (say, digits of timecode) for display and control, reassemble on outbound.  Some data may be more amenable to using a section of the data to show/hide controls for the remaining range – an alternate solution to the ZC wave selection problem.
  • We have a current bug where a few specific cases of V and L are not recognized (https://mididesigner.com/qa/9013)
  • We cannot pull out complete patch names for display, or enter patch names, but this in in our think-about pile.  We have several examples of using individual controls (by letter) as a work-around.
  • We do not provide storage for SysEx backup, but MDP2 can be the front end to request patch/performance/board backups to be recorded in a separate SysEx librarian.

MDP2 SysEx controls, supported by named ticks and StreamByter code should be able to handle your most complex board implementations.  If you need help, post a Q&A.

MIDI Designer 2.5: More Tools

Service Release MIDI Designer Pro 2 v2.5.1 is now out. It fixes two minor issues in MDP2 v2.5.
See details in the Change Log.



MIDI Designer Pro 2 v2.5 is coming this Saturday, December 10, 2016 for MDP2*. More tools! We’re adding new features and fixes to make the best MIDI controller experience for iOS even better. It’s a medium-weight upgrade, providing more flexibility for your rig design and editor creation.

Big New Features

  • Movable Panels: put controls on panels, move them around, and even use “make similar.” This feature is very useful as is, and we’ve got big plans for it.

  • Display Zero for Knobs, Sliders and Crossfaders: now the LED ring (knobs) or LED track (sliders/crossfaders) can extend out from any point along its path. Two typical cases are pan knobs (Display Zero is 50% up) and Hammond-organ bars (Display Zero is 100% up). Requires Extra Features Pack to include in a layout; free to use for all.

  • Rotary action for knobs: This is useful to place knobs near the top or bottom of your pages. It also means we’re compatible with gadgets that stick on your screen and rotate, if that’s your thing. Requires Extra Features Pack to include in a layout; free to use for anybody.

Medium-Sized New Features

  • Pedalboards Expose Down: Now you can slide your pages down or up to expose pedalboards. And if you don’t allow pedalboards in Play Mode, they’ll snap shut when you exit Design Mode.
  • Default Value Experience Upgrade: Default Values work properly with Named Ticks, even if your ticks’ MIDI values are out of order (e.g., 5, 127, 2).

Xcode 8, iOS 10

Lots and lots and lots of code changed in the upgrade to iOS 10 (Swift 3 and Xcode 8). See something, say something! Please report all bugs to wtf [at] mididesigner.com

Fixes

  • Fixed: Now no MIDI values are sent on MIDI Designer start, layout load, page load, nor reset to default template (Config -> Actions -> New)
  • Fixed: Default values for named ticks
  • Fixed: Bluetooth popup bug for iPhone introduced in 2.4.6
  • Fixed: Smaller bugs, and lots of under-the-hood improvements to make MD even better.

*For existing users of MIDI Designer Limited and MIDI Designer Lite, it’s going to be coming in the middle of next week.

Bounce Back (2nd Press Action for Button Groups)

NOTE: Bounce Back was released in version 1.5.3 [see Change Log], available on the App Store since June 28, 2013

Bounce Back covers two quite different feature requests for buttons groups.

One was to have the option to disallow shutting off the last button, or cause the last button to resend. This is seen here in this user suggestion.

The other was a suggestion from User #1 (Mike Rosenstark) to have to return to the previous on last button press. Apparently, this was a feature on the Digitech PMC 10, although that’s hard to confirm right now (no longer in production).

The feature is called Bounce Back because of this suggestion (and it sounds cool, too). Instructions below.

English

Spanish

Set It Up

  1. Create a dynamic control (knob, slider, crossfader or the axis of an X/Y pad)
  2. Make it a supercontrol
  3. Add all the buttons of interest as subcontrols. Now you have a button group.
  4. Now use Relationships → Options as Super → Button Group 2nd Press

Options

  • Button Shuts Off — second tap turns the selected button off. Now all the buttons are off.
  • No Action (Exclusive) — second tap does nothing. After initial press, one button is always on
  • Resend (Exclusive 2) — second tap resends on value. After initial press, one button is always on
  • Bounce Back to Previous Button — second tap selects previously selected button. After initial press, one button is always on
  • Bounce Back to First Button — second tap selects first button in button group. After initial press, one button is always on
  • Bounce Back to Last Button — second tap selects last button in button group. After initial press, one button is always on

Control Copies

Control Copies

  • Make multiple instances of a control (Actions -> Copy)
  • Move them to different pages
  • Size and shape them as you need them, including the labels
  • Use Relationships -> Other Instances to find copies

Use Super- and Subcontrols

  • This is another way to do it, allow for different control types
  • The knob is a supercontrol of the slider… as long as the knob has only one subcontrol, the relationship is bidirectional