NOW LOADING

MidiNetworkHostUpdateConfig


Config sent to the service to change settings on an existing Network MIDI 2.0 host
Namespace Windows.Devices.Midi2.Transports.Network
Type Name MidiNetworkHostUpdateConfig
Type WinRT Runtime Class
Implements IMidiServiceTransportPluginConfig 
IDL MidiNetworkHostUpdateConfig.idl

Pass to MidiNetworkTransportManager.UpdateNetworkHostAsync.

Constructors

Constructor Description
MidiNetworkHostUpdateConfig() Creates an empty configuration
MidiNetworkHostUpdateConfig(hostId) Creates a configuration for this host

Properties

Property Description
HostId The GUID of the host entry to change
CreateMidi1Ports Whether connected devices get MIDI 1.0 ports
FallbackMidi1PortCount How many source and destination ports to create for a device that declares no function blocks. 1 to 16
NetworkAdapterId Moves the host to another network adapter, or to every adapter with an empty GUID. The host restarts on it, which ends its connections. Setting it also fills in NetworkAdapterName
NetworkAdapterName The adapter’s name. It’s only shown to people
AllowNetworkAdapterFallback What the host does while its adapter is missing: true to run on every adapter until the adapter is back, false to wait for it
SendSpeedLimit How fast the host sends to each connected device. See MidiNetworkSendSpeedLimit
ReduceSendSpeedAutomatically Whether a connection sends more slowly while the device keeps asking for data again
SkipInBetweenValuesToCatchUp Whether a connection skips some in-between values to catch up when messages pile up behind SendSpeedLimit. Added in version 2 of MidiTransportsNetworkApiContract
FallbackMidi1PortGroups The groups to create MIDI 1.0 ports for, and what to call them, for a device that declares no function blocks and has none of its own in RemoteClientSettings. A list of MidiNetworkMidi1PortGroup. Used instead of FallbackMidi1PortCount when it isn’t empty. Added in version 2 of MidiTransportsNetworkApiContract

Remarks

Only the properties you set are changed. Everything else about the host stays as it is. FallbackMidi1PortGroups counts as set once you change the list. Build the whole list, because it replaces the one the host has, and clear it to go back to FallbackMidi1PortCount.

The host keeps running, unless you change NetworkAdapterId. Only the settings that can change on a running host take effect right away.

SendSpeedLimit, ReduceSendSpeedAutomatically and SkipInBetweenValuesToCatchUp apply straight away, to the connections that are already up as well as to new ones, without disconnecting anything.

FallbackMidi1PortCount and FallbackMidi1PortGroups apply to connections that are already running. Ports are added, removed or renamed without interrupting the session. CreateMidi1Ports applies the next time a remote device connects, because whether an endpoint has MIDI 1.0 ports at all is decided when the endpoint is built.

None of these do anything for a device that describes itself with function blocks. Those come first, and the service builds one port per group from them. See How Network MIDI 2.0 works in Windows.

A name in the host’s list goes to every device that connects. To name the ports for one device, give it its own list in MidiNetworkRemoteClientSettings.

Didn't find what you were looking for?

Windows MIDI Services is an open source project with all source available on GitHub. We have a great community on Discord as well. Between GitHub and Discord, you should find the information you are looking for.