0.8.2 to 0.9.0: * Improvements to handling pitch bend. The value of pitch bend is now represented as a Word14 and it is encoded and decoded according to the MIDI spec (previously it was left uninterpreted). Thanks to Joachim Tilsted Kristensen. * Removed ZMidi.Core.VersionNumber file. This means we can have a vanilla Setup.hs file. 0.8.1 to 0.8.2: * Updated to compile with ghc-8.4. Thanks to Evan Laforge. 0.8.0 to 0.8.1: * Fixed error with missing CPP directive in ZMidi.Core.Pretty. 0.7.0 to 0.8.0: * Updated to compile without errors with GHC 7.10. 0.6.0 to 0.7.0: * Changed @ChannelPrefix@ constructor to have a single argument - channel number (previously it stored a constant tag 0x01 as well as channel number). * Added @SysExCont@ and @SysExEscape@ constructors to the @MidiSysExEvent@ data type. * Added new pretty printers - @Csv@ based on @midicsv@ and @Ascii@ based on the ASCII MIDI representation in the book Beyond Midi (the zmidi ASCII representation is simplified). The demo application @MidiPrint@ now allows choice of pretty printer. * @printMidiHeader@ and @printMidiTrack@ from @Pretty@ changed to MidiFiles as arguments, @printMidi@ has now become @putMidi@. 0.5.0 to 0.6.0: * Extended the parser and changed the syntax tree to interpret MIDI Running Status. * Added a module @ZMidi.Core.Canonical@ to translate MidiFiles to a canonical form where any shorthand NoteOff introduced by Running Status is expanded to regular NoteOn and NoteOff events (with Running Status set, MidiFiles can signal NoteOff events as another NoteOn with 0 channel velocity). * Added a hack to the pretty printer to stop printing ASCII chars greater than 164 causing an error when printing to stdout. 0.4.0 to 0.5.0: * Changed order of @MidiVoiceEnvent@ constructors so the Ord instance follows the order of the /tag/ in the MIDI binary representation. * Changed @MidiSysCommonEvent@ to have different constructors for unidentified F4 anf F5 events. * Changed @MidiSysRealTimeEvent@ to have different constructors for unidentified F9 and FD events. * Added more Haddock docs. * Various internal code changes. 0.3.0 to v0.4.0: * Added new constructors to @MidiMetaEvent@ for MidiPort and MetaOther. MetaOther recognizes otherwise unrecognized events improving the robustness of the parser. Similarly a new /other/ constructor has been added to @MidiScaleType@ to avoid parse errors. 0.2.1 to 0.3.0: * Revised naming of the MIDI data types. All data types now have the prefix Midi (previously only MidiFile followed this scheme). The rationale for this is client software, that might want a higher-level representation, is then free to use the more generic names Track, Message, etc. * @DeltaTime@ made a newtype wrapper rather than a type synonym. * Renamed the pretty print functions @track@ to @printMidiTrack@ and @header@ to @printMidiHeader@. * Moved internal dataypes (SplitByte, Varlen) into a private module. 0.2.0 to 0.2.1: * Added Show class constraints to various type signatures to accommodate changes to Num superclass hierarchy in GHC 7.4. Thanks to Rémy Mouëza for the patches. 0.1.0 to 0.2.0: * Added a top-level /shim/ module to import all the exposed modules. Added a version number module 0.1.0: * Initial release.