BMIDI Virtual MIDI SDK

What is the BMIDI SDK?

BMIDI is a cross platform SDK for developers or manufacturers who want to add virtual MIDI ports to their application or driver.
It is used by many companies — from very small to very large — for quick and easy virtual port support in their software.

Details

Essentially, BMIDI provides a simple C library which allows applications to expose one or more MIDI ports to other MIDI applications. Those other applications use the BMIDI ports as if they were external hardware MIDI ports.

BMIDI is not a loopback driver, because one endpoint is always private, i.e. in your application. This architecture ensures best performance. A BMIDI application uses the BMIDI C API to add or remove ports, to query ports, and to send/receive data to/from ports. The same API is used for Windows, macOS, and iOS.

Please inquire for licensing options.

Features

  • send and receive MIDI data to/from other MIDI applications
  • MIDI messages can be arbitrary length
  • ports can have arbitrary names
  • create unlimited number of ports
  • high performance
  • rock stable
  • cross platform driver and simple C API
  • 32-bit and 64-bit compatible
  • in use by more than an estimated 50’000 end users
  • transparent to users
  • Wrappers:
    • C#, e.g. for Unity
    • RTMidi
    • …other wrappers can be developed on request
  • Source code integration support

Windows

  • Compatible with Windows XP, Vista, 7, 8, 10
  • WDM kernel driver compatible with Windows 10 UEFI Secure Boot
  • silent installer: no “hardware wizard” [except Windows XP]
  • exposes both MME and DirectMusic ports

macOS

  • Compatible with all current macOS versions since version 10.5
  • no installation required
  • BMIDI is integrated with a library
  • Support for Apple Silicon

Downloads

White Paper

Stand-Alone Installer

For trouble-shooting, you can download the stand-alone installer here:
BMIDI 2.1.0.44 Installer
MD5: f9b4f6f3894dceddb54398a055948bc8

Licensing

The typical licensing model for BMIDI is a one-time fee.
Please inquire for licensing options.

Additional Services

We also provide additional services according to your needs:

  • GUI implementations
  • add features to engine or library
  • implement drivers for your custom hardware
  • …anything else!