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 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 API to add or remove ports, to query ports, and to send/receive data to/from ports. The same BMIDI API is used on Windows, macOS, iOS/iPadOS, and Linux/RaspberryPi.
Features
- Send and receive MIDI data to/from other MIDI applications
- MIDI messages can be arbitrary length
- Virtual MIDI ports can have arbitrary names
- Create unlimited number of virtual MIDI ports
- High performance
- Rock stable
- Cross platform driver and simple API: Windows, MacOS, Linux, iOS, iPadOS, Android, Raspberry Pi OS
- Compatible with 32-bit, 64-bit, ARM/M1/M2/M3/M4
- In use by hundreds of thousands of end users
- API:
- C and C++
- C# wrapper, e.g. for Unity, Mono, .NET
- RtMidi bindings
- compatible with frameworks like Juce, Qt
- …other wrappers can be developed on request
- Source code integration support
Windows
- Compatible with Windows XP, Vista, 7, 8, 10, 11
- WDM kernel driver compatible with Windows 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.7
- no installation required
- BMIDI is integrated with a library
- Native support for Arm64/M1/M2/Apple Silicon
Linux
- Compatible with many current desktop Linux systems like Ubuntu
- Raspberry Pi OS support
iOS/iPadOS
- Compatible with all current iOS versions since version 10
- BMIDI is integrated with a library
Android
- All platforms since API Level 23 (Android M)
- Access the BMIDI ports from your native C/C++ code (compatible with Qt or Juce)
- Limitation: You will have to define a fixed set of virtual ports with your app. You cannot dynamically add and remove virtual MIDI ports.
Downloads
White Paper
Stand-Alone Installer (Windows)
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.
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!