Kernel Streaming

Property Value
Abstraction Id TBA
Abbreviation KSA

Overview

The Kernel Streaming Aggregator transport creates UMP endpoints for MIDI 1.0 devices using MIDI 1.0 byte format devices, like third-party MIDI 1.0 drivers.

NOTE: This transport may be recombined with the base Kernel Streaming transport in the future

Suggested Uses

Although this transport is primarily recommended for USB devices, it may be used for access to most other existing MIDI 1.0 devices on Windows.

Compatibility

The best experience for Windows MIDI Services will be with applications using the new Windows MIDI Services SDK.

API Compatible Notes
Windows MIDI Services Native Yes Data is translated between UMP and MIDI bytes (MIDI 1.0 data format) as required.
WinRT MIDI 1.0 Yes Data is translated between UMP and MIDI bytes (MIDI 1.0 data format) as required.
WinMM MIDI 1.0 Yes Data is translated between UMP and MIDI bytes (MIDI 1.0 data format) as required.

Naming

MIDI 1.0 port names use a new algorithm for naming, compared to what we have had in the past. Specifically, the device interface (the filter) name is the default root of the name. If there is no filter name, then we walk up to the parent device and use that device’s name as the root. Next, we query for the pin names, if provided via iJack, and append that to the name.

When the MIDI 1.0 endpoints for a device are combined into a single UMP endpoint for use in Windows MIDI Services, the MIDI 1.0 port names, without the parent device name, are used as the virtual Group Terminal Block names. The groups are mapped to the individual IO pins, starting at 0 (input and output both start at 0) and increasing monotonically for both input and output.

Configuration

Endpoints for this transport are not created through the configuration file, but certain properties, such as the name and description, are updatable through it.

"endpointTransportPluginSettings":
{
    "{26FA740D-469C-4D33-BEB1-3885DE7D6DF1}":
    {
        "_comment": "KSA MIDI (USB etc.)",
        "SWD: \\\\?\\SWD#MIDISRV#MIDIU_KSA_BIDI_6799286025327820155#{e7cce071-3c03-423f-88d3-f1045d02552b}":
        {
            
        }
    }
}

Implementation