Jul 20, 2023

C++ MIDI file parsing and writing library

C++ library for parsing and weiring standard MIDI Files.


  • Event timestamps can be converted between absolute or delta tick values with the MidiFiledeltaTicks and MidiFileabsoluteTicks functions
  • In absolute tick mode, messages can be inserted into tracks in any order and later sorted by timestamp with the MidiFilesortTracks function
  • Multi-track files can be converted to a single track in a reversible process
  • Event performance times in seconds can be calculated from tick times and tempo meta messages with the MidiFiledoTimeAnalysis function
  • Durations of notes can be extracted using the MidiFilelinkNotePairs function

Checkout these related ports:
  • Zynaddsubfx - Realtime software synthesizer
  • Zrythm - Modern music production system, also known as DAW
  • Zplugins-lv2 - Collection of LV2 plugins to be bundled with Zrythm
  • Zmusic - GZDoom's music system as a standalone library
  • Zita-rev1 - Reworked version of the reverb originally developed for Aeolus
  • Zita-resampler - C++ library for resampling audio signals
  • Zita-njbridge - Command line client to transmit audio over a local IP network
  • Zita-mu1 - Simple Jack app used to organise stereo monitoring
  • Zita-jclient - Library to create a Jack client with a few lines of C++
  • Zita-dpl1 - Look-ahead digital peak level limiter
  • Zita-convolver - Fast, partitioned convolution engine library
  • Zita-bls1 - Blumlein Shuffler converter of binaural signals to stereo speaker pair
  • Zita-at1 - Autotuner Jack application
  • Zita-alsa-pcmi - Easy access to ALSA PCM devices
  • Zinf - GTK-based MP3 player