MainGraphic-Trans

MidiStrata is a real-time software application that sits between a Master keyboard and a network of Midi devices that provides creative control of live performances.

Designed by a keyboard player primarily for keyboard players, it is a valuable tool for any environment where devices generate or react to MIDI data.  EDM environments, DJs, guitarists & wind players with Midi interfaces, lighting designers, etc., can all benefit from MidiStrata in various ways.

Being modular in design, it unifies any device that sends or receives MIDI messages into a single logical network where any receiving device on any channel becomes an object called a Layer. A collection of layers is called a Strata.

A key concept is when and how a layer is heard or silenced. This aspect is referred to as “Layer Enablement.” Layers are enabled or disabled in a variety of ways. It could be as simple as touching a button or through a rich set of logical conditions. Layers may be disabled even when notes are already sounding without those notes being silenced. Layer Enablement provides seamless transitioning between synthesizer voices regardless of what device(s) in the Midi network they are sounding on.

MidiStrata uses both Midi Controller and NRPN messages for controlling its operation. Any device that can send these messages can remotely control MidiStrata.

MidiStrata runs on Microsoft Windows 7® and above. Touchscreens and pen interfaces are supported. Preconfigured for Remote Control using  Behringer® x-Touch Mini® and wireless control through iPad® using Liine® Lemur® software.

It is possible to run MidiStrata on Macintosh computers with Intel processors using Parallels or VMware Fusion Player.

 

What are some of the use cases? 

Gigging keyboard player in a band

Enables a single keyboard player to play and manipulate many musical parts normally requiring multiple players in a live setting.

Adlib Performances

Provides an easy to use and delightful interface that allows the musician to quickly have direct access to patches on any sound module on any channel, with key zoneskey transposition, and velocity ranges.

Project Studios

MidiStrata® is just as purposeful in the project studio where it can shift workflow away from DAW engineering tasks literally into the hands of the musician. This fosters a unique, creative and fun experience.

Stage Lighting Integration

Lighting systems with MIDI interfaces can be manipulated and integrated into the musician’s performance. Lighting fixture’s parameter can be associated with parameters of a layer.

Bloop-Bleep – controlling modular synthesizers

By sending MIDI directly to modular synths that already have a MIDI interface, or using any MIDI to CV converter any MIDI event can be routed to any CV input. Conversely, using CV to MIDI converters any gate or CV signal can be translated to any MIDI event and routed to any device on any channel. 

Non-Musical Open-Ended Creativity

Since MIDI enjoys such wide-spread adoption and utility, there are all sorts of environments such as robotic DYI projects and art installations that can be integrated into a live musical performance. 

MidiStrata Feature Overview 

Unified Midi Network

MidiStrata will connect to as many Midi devices that are installed on the computer.  Each device is enumerated by the name of the driver in separate input and output tree lists.  These can be both physical and virtual devices regardless of manufacture

Default your Sound Modules

Regardless of the vintage of a synthesizer or sound module, each manufacture has varying degrees of mapping implementations. This is especially significant when it comes to multitimbral synths. Great examples are Korg’s “Combination Mode” or Yamaha’s “Multi-Mode” for layering, splitting, etc. When one has various manufacturers in a keyboard rig, remembering where all these parameters are is a challenging effort, to say the least. Let MidiStrata take care of all of this for you. All the necessary performance parameters are already in a Layer’s parameter set.

Purpose Built Set of Layer Parameters

MidiStrata has a very comprehensive set of parameters unique to each layer. These parameters control all aspects of how and when a layer is heard or silenced. Various ways of parameter visualizing and editing is provided supporting both intuitive fast on-the-fly changes and deep dive editing.

Note Discontinuance

An ever-present and inevitable problem is the issue of the “stuck note”.  This happens when a Midi Note On message is sent to a device and the port, channel or transposition is changed before the matching Off message is sent. This happens to various degrees and is exacerbated by the complexity of the number of Midi devices in a keyboard rig.

MidiStrata® remembers all Note On messages that are actively sounding on all MIDI interfaces and on all channels. So when the layer that originated the sounding note(s)  becomes disabled the Note Off message(s) are automatically routed to the sounding device and channel on the release of the originating key.

Modular Design

MidiStrata uses a graphic canvas paradigm where blocks of functionality are dragged onto the canvas and interconnected. There are Input Blocks, Application Blocks, and Output Blocks. Midi messages flow in from left to right starting from the inputs, processed through applications and sent to outputs. Blocks are clicked to access the underlying properties and parameters.  A series of connected blocks are called Processing Paths. There can be many simultaneously processing paths on the canvas. The application block Strata Process contains all the core logic that manages a strata configuration and its contents are saved as a Strata Data Files (.sdf). The entirety of the canvas is saved in IMX files and serves as the binding between the physical MIDI devices and MidiStrata processing logic. This allows for .sdf files to be freely moved between different computers with differing Midi devices without editing the layer logic.

Seamless Saving and Recall of Strata Files

All parameters of all layers are contained in Strata Data Files (.sdf) that are saved on any accessible disk. The multitasking nature of MidiStrata allows the possibility of saving and loading of files without interruption of any sustained sound throughout the Midi network. Note 2  The loading of Strata Data Files can be triggered through a  variety of methods – typically a Midi Program or Control messages. It is possible to use Boolean expressions in creating triggers that give unprecedented flexibility as to the when-and-how a file is loaded. Once loaded, the new processing logic begins on the next Note On event. Any previous notes still down or any layer that has sustain down will continue to sound their original sound until they are released.

Universal Sustain

Similar in issue as note discontinuance is the problem of handling the sustain pedal message. MidiStrata remembers all sustain messages on all MIDI interfaces and on all channels with active Note On messages. So if the layer(s) that originated the sustain down message becomes disabled, the sustain up messages are automatically routed to the sounding device and channel on the release of the sustain pedal. Each layer has parameters that affect how the sustain down messages are handled an allows for very intuitive an expressive performances. Note 1 Note 2

User-Friendly Interface

The user experience (UX) of MidiStrata has been designed to be clean, intuitive and easy to use. The UX is divided into 4 main activities: System Configuration, Strata Operations, Layer Editing, and Layer Enablement. MidiStrata plays well with multiple displays and touch/pen-enabled displays. 

Up to 128 Layers

Being object-oriented, MidiStrata can have 128 layers.  Practical aspects of computer processing power, resources, screen real-estate, and the possibility of saturating midi interfaces are possible and must be considered when configuring. Note1

SnapShots

The loading of Strata Data Files can have different degrees of latency depending on the computer's overall performance. Considerations include the type of disk (SSD or conventional spinning, USB, etc.), type of disk interface, and the path to the disk (local or network-attached). When instantaneous no-latency changes in layer enablement are desired, MidiStrata handles that with "SnapShots."

 

SnapShots change the layer(s) enablement to the Strata layers already in memory.  In conjunction with Universal Sustain (described later), this single feature is perhaps the most helpful as, collectively, their application fosters very creative glitch-free performance transitions.

Remote Control

MidiStrata has the ability to be controlled via external devices. By using standard Midi messages, any off-the-shelf Midi Controller device may be supported to various degrees of functionality. Remote control allows for a flexible physical configuration of a gig setup where one may not want the computer right at the Midi keyboard.

Pitch and Modulation Wheel Handling

Each layer has parameters that affect how these chatty messages are sent. They work together to conditionally send these messages only when relevant based upon enablement and note down or up status. Note 2

Midi Messsage Translation and Routing

MidiStrata has a comprehensive ability to translate any midi message type from any source to any other message type on any destination. There is no limit to how many translations can be configured. Note 2

Destinations may also be routed internally to MidiStrata itself to affect its operation.

 

Remote Control

Built into MidiStrata is plug-and-play support for Liine® Lemur® software that can run wirelessly on iPhone, iPad®, and Android tablets. Having a touch graphic display this remote solution has very robust functionality for editing and controlling  MidiStrata. Up to 128 layers on the iPad®are reasonableNote 4

 

MidiStrata has plug-and-play support for Behringer’s® affordable X-Touch Mini® USB Controller. Using this device up to 16 layers can be enabled, disabled, and soloed with the touch of a single button. The individual layer's basic parameters (Patch, Volume, Key Range, Octave transposition) can be edited on-the-fly in an intuitive way. Note 3 

 

Finally, All the configuration parameters are accessible using MIdi Non-Registered Parameter Numbers.

MidiStrata can support multiple remote devices simultaneously.

 

How does MidiStrata Operate?

MidiStrata is a standards-based Microsoft Windows®  application designed to run in modern computers. Touch screens are not necessary but significantly enhance usability and experience.

 

Limited only by the performance of the computer (CPU speed, memory, disk speeds) and the available port resources (USB, card slots, for Midi interfaces) any number of MIDI devices can be connected. Collectively they are seen by MidiStrata as a single unified network of input and output devices – regardless of the size of the network. Being standards-based, connectivity to MIDI devices over wired or wireless LANs or Bluetooth® is possible and expected.

 

There can be many creative use cases but a focus on the role of a keyboard player gigging live with a band is a great example to illustrate the value of MidiStrata.

 

Consider the keyboard player is using a single keyboard as the so-called Master Keyboard.  This device has keys, a complement of controllers such as pitch and modulation wheels, etc. All events generated by the master keyboard provide input events into MidiStrata.

 

Outputs from MidiStrata are connected to many polyphonic, multitimbral sound modules that generate the actual sounds.

 

It is important to point out some characteristics of polyphonic, multitimbral synthesizers whether they are stat-of-the-art or desirable legacy devices from the early days of MIDI. Simultaneous voice polyphony and audio effects capability vary dramatically from device to device. Just as significant is the latency of reacting to program changes and the often-sudden truncation of a sustained sound when a program change is received. MidiStrata was designed specifically with these characteristics (or limitations) in mind to yield a highly seamless sound experience.

 

MidiStrata manages all MIDI input via Input Blocks, processes the data stream through Processor Application Blocks and finally outputs the processed data through Output Blocks.

 

Processor blocks manage objects called Layers and are then organized into collections called Strata.

 

Among many parameters of a layer, there are parameters that route the layer’s output to a specific MIDI interface, on a specific MIDI channel, over the unified MIDI network.

 

A layer has two primary states:  enabled or disabled. When a layer is enabled it will sound the voice mapped in the MIDI network using the key being pressed. How a layer is enabled and what happens during layer enablement or disablement, or what happens when a layer transitions between states are some of the key features of MidiStrata.

 

In systems that process a lot of continuous controller messages, traffic to the MIDI ports can flood dramatically causing noticeable latency.  MidiStrata manages these conditions in a unique method. Unlike some Midi processors, messages are not thinned – messages are only sent if and when the context of the message is relevant to the enable state of the layers. This minimizes Midi traffic and eliminates the “staircase” effect of a thinned controller. Note 2

 

Sustain, Pitch and Modulation events have special handling.  The state of the messages along with the state of the Key On messages are memorized throughout the entire Midi network of devices and their channels. Various layer parameters affect how these messages are treated. This is another feature that contributes to a MidiStrata seamless performance.

 

Note 1: Latency is always present in Midi systems.  Each Midi port can never go beyond the design rate of 31.25Kbit/second. Most if not all multitimbral synths cannot sustain constant midi streams without going into a buffer overload condition. And there is the polyphony limitation each device has and the reaction when that limit is surpassed. 

 

Note 2: MidiStrata by its nature conditionally expands Midi data streams.  There are various types of MIDI event messages and their impact on MIDI networks. By today’s standards, MIDI is a very slow communication protocol. Speed is measured in kilobits per second - not megabits or gigabits. Despite the speed, the standard continues to deliver on the original design goals. The phrase “chatty” is often used to describe density (how big) and frequency (how often) a message is sent. Midi continuous controllers such as the pitch wheel, modulation wheel, channel, and poly aftertouch are VERY chatty.  Depending upon Strata configurations the Sustain message can also become very chatty. 

 

Note 3: MidiStrata is programmed to recognize a factory defaulted Behringer® X-Touch Mini® device for fast plug-and-play integration.

 

Note 4: MidiStrata provides a preconfigured .jzml file. Lemur software must be purchased independently from Liine® and installed on Liine® qualifying devices per their instructions. Liine® also provides an editor (used to load the .jzml file onto the device) and a server component (needed to wirelessly connect to the device) that is installed on the same computer running MidiStrataLoopMIDI virtual Midi driver from Tobias Erichsen is recommended as a means to connect Lemur’s ports to MidiStrata. Due to physical screen size any more than 128 layers may be considered too dense for some device displays. iPhone has more restrictive screen size. It’s up to the user to decide what is best for their use.