Responsive image

Testing MIDI applications

Sema Kachalo
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}
}