Testing MIDI applications
Testing is an important part of software development process. We introduce three open source tools to facilitate testing MIDI applications.
midi-test ( https://github.com/jazz-soft/midi-test ) This tool allows to open real MIDI ports (visible by all MIDI applications), and manipulate them via JavaScript: connect, disconnect, emit MIDI messages, monitor the received MIDI messages. Combined with JZZ.jz, it can simulate Web MIDI API as well.
web-midi-test ( https://github.com/jazz-soft/web-midi-test ) This is a fake Web MIDI API. Its ports are not visible by real MIDI applications, so they can be used only from JavaScript code. web-midi-test is useful for writing unit tests that don't require browser, and for modeling corner cases, i.g.: port is visible but is taken by another application, user allowed MIDI, but did not allow SysEx, etc... Both midi-test and web-midi-test share the same API that allow running both flavors of the same test.
test-midi-files ( https://github.com/jazz-soft/test-midi-files ) This framework allows producing MIDI files from readable JavaScript code.
All above testing tools have been successfully used by the Open Source community.
@inproceedings{2021_17,
abstract = {Testing is an important part of software development process. We introduce three open source tools to facilitate testing MIDI applications.
midi-test ( https://github.com/jazz-soft/midi-test ) This tool allows to open real MIDI ports (visible by all MIDI applications), and manipulate them via JavaScript: connect, disconnect, emit MIDI messages, monitor the received MIDI messages. Combined with JZZ.jz, it can simulate Web MIDI API as well.
web-midi-test ( https://github.com/jazz-soft/web-midi-test ) This is a fake Web MIDI API. Its ports are not visible by real MIDI applications, so they can be used only from JavaScript code. web-midi-test is useful for writing unit tests that don't require browser, and for modeling corner cases, i.g.: port is visible but is taken by another application, user allowed MIDI, but did not allow SysEx, etc... Both midi-test and web-midi-test share the same API that allow running both flavors of the same test.
test-midi-files ( https://github.com/jazz-soft/test-midi-files ) This framework allows producing MIDI files from readable JavaScript code.
All above testing tools have been successfully used by the Open Source community.},
address = {Barcelona, Spain},
author = {Kachalo, Sema},
booktitle = {Proceedings of the International Web Audio Conference},
editor = {Joglar-Ongay, Luis and Serra, Xavier and Font, Frederic and Tovstogan, Philip and Stolfi, Ariane and A. Correya, Albin and Ramires, Antonio and Bogdanov, Dmitry and Faraldo, Angel and Favory, Xavier},
month = {July},
pages = {},
publisher = {UPF},
series = {WAC '21},
title = {Testing MIDI applications},
year = {2021},
ISSN = {2663-5844}
}