gitlab.com/gomidi/midi/v2 (go): Package midi helps with reading and writing of MIDI messages.  A `Message` is a slice of bytes with some methods to get the data. Any complete midi message (i.e. without "running status") can be interpreted as a Message, by converting the type. The data can be retrieved with the corresponding Get* method.  Received messages can be categorized by their type, e.g.  A new message is created by the corresponding function, e.g.  Sending and retrieving of midi data is done via drivers. The drivers take care of converting a "running status" into a full status. Most of the time, a single driver is sufficient. Therefor it is handy, that the drivers autoregister themself. This also makes it easy to exchange a driver if needed (see the example).  Different cross plattform implementations of the `Driver` interface can be found in the `drivers` subdirectory.  The `smf` subpackage helps with writing to and reading from `Simple MIDI Files` (SMF) (see https://pkg.go.dev/gitlab.com/gomidi/midi/v2/smf).  The `tools` subdirectory provides command line tools and libraries based on this library.
Keywords: go|golang|midi|smf