/sysexd

WebSockets to MIDI sysex daemon

Primary LanguageC++OtherNOASSERTION

sysexd

This daemon allows applications to communicate SysEx messages over MIDI using WebSockets.

As such, it opens a WebSockets-enabled HTTP server on a predefined port (e.g. 9002) on the local host, on which the host's MIDI interfaces are exposed.

Installation instructions

Windows

If you don't feel like building sysexd, head over to https://github.com/ijsf/sysexd/releases to download the latest binary and just run it.

OSX/*nix

For these platforms, it is required to build sysexd. First, make sure you have the following requirements:

  1. XCode - for more information e.g. see http://railsapps.github.io/xcode-command-line-tools.html.
  2. Homebrew - for more information e.g. see http://brew.sh.
  3. Boost - install with brew install boost.
  4. CMake - install with brew install cmake.

Now generate the makefiles using CMake:

cmake .

If no errors have occurred, build sysexd:

make

If the build was successful, you should now be able to run sysexd as follows:

./bin/sysexd

Why use a daemon?

Although the Web MIDI API is currently under development for browsers, there a number of situations where a daemon may have advantages:

  • Broader browser compatibility, e.g. including browsers that do not support the Web MIDI API.
  • Lower-level implementation, e.g. to support SysEx communication with devices that do not behave according to MIDI SysEx specifications.
  • Isolation, e.g. keeping low-level SysEx communication related code, such as data corruption and message retries, out of the client codebase.

Examples

An example of use for sysexd can be found at wer.si.