Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/webern/midi_file
MIDI File Basics in Rust
https://github.com/webern/midi_file
midi midi-files rust
Last synced: 2 months ago
JSON representation
MIDI File Basics in Rust
- Host: GitHub
- URL: https://github.com/webern/midi_file
- Owner: webern
- License: apache-2.0
- Created: 2020-12-24T06:16:21.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-15T09:32:59.000Z (3 months ago)
- Last Synced: 2024-10-14T14:52:13.577Z (2 months ago)
- Topics: midi, midi-files, rust
- Language: Rust
- Homepage:
- Size: 124 KB
- Stars: 13
- Watchers: 4
- Forks: 5
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE-APACHE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Rust MIDI File Library
The purpose of this library is primarily to be able to author and write MIDI files in Rust.
The library also parses MIDI files and thus can "round trip" files.### Unimplemented Features
- `sysex` messages
- sequence number messages
- sequencer specific messages### Interface
All the bytes, messages and such are represented with pub structs and enums, but the structs have private members.
To create a basic file, as I have done in an [example], I have added functions at the `Track` level.
With these functions you can build up a file without as much knowledge of the underlying data structure.You need to understand MIDI in order to create a meaningful MIDI file, but any file you create with the library should
be technically valid per the spec.
You do not need to understand the meaning of any particular byte's numeric value.[example]: https://github.com/webern/midi/blob/main/examples/main.rs