- Add
to_static
methods to drop lifetimed data. - Implement
From<Fps>
foru8
andf32
. - Implement
Add
,AddAssign
,Sub
andSubAssign
for the restricted primitive integers.
- Fix parsing of
LiveEvent::Realtime
. - Add implementations of
PartialEq
between restricted ints and primitive ints.
- Added
new
constructors everywhere they made sense. - Exposed
EventBytemapIter
, which was accidentally private. - Fixed
DefaultBuffer::max_cap
not being aconst fn
if thealloc
feature was disabled. - Implement
Send
forArena
.
- Rename
number
module tonum
. - Simplify generic
Smf<T>
toSmf
,SmfBytemap
and genericparse
/write
functions. - Add the
alloc
feature, which can be disabled to make the crate fullyno_std
and make no allocations. - Add the
parallel
feature to disable multithreading and therayon
dependency without dropping integration withstd
. - Move error framework from
failure
tostd::error::Error
whenstd
is enabled, and no error trait when disabled. - Errors are always a thin pointer.
- Writing now supports
no_std
with an auxiliaryWrite
trait. - Event bytes no longer include delta-time.
- Optimized allocations by guessing the amount of bytes per event.
- Files without a correct header now fail early.
- Added a
PitchBend
newtype to manipulate pitch bend values. - Added a
live
module that allows parsing standalone MIDI events. - Added a
stream
module to support raw MIDI stream decoding. - All types now implement
Debug
, and all data types implementHash
. Smf::new
no longer returns an error, and creates an emptySmf
with no tracks. To create anSmf
with prebuilt tracks useSmf { header, tracks }
construction.- Added
Arena
to make track construction more ergonomic.
- Add support for the
.rmi
RIFF wrapper for MIDI files. - Errors are now a thin pointer in release mode.
- Add a
TrackIter::running_status_mut
method. - Update
README.md
to match0.4
.
EventKind::parse
andEvent::read
no longer return event bytes.- Simplify
lenient
andstrict
features to a simplestrict
feature.
- Add support for writing MIDI files and events.
- Handle running status more correctly.
- Fix pitch bend messages being read with the wrong endianness.
- Update
README.md
to match the API of0.2
. - Added an
ErrorKind::mesage
method.
- Move error framework from
error-chain
tofailure
. - Renamed
Varlen
tou28
. - Added
lenient
andstrict
crate features to configure how eager should the parser be to reject files. - Give meaningful names to MIDI message fields.
- Replace the
SmfBuffer
convenience type with threeparse
variants. - Default the
Smf<T>
type toSmf<Vec<Event>>
. - No longer tries to parallelize lazy parsing.
- Renamed
EventKind::read
toEventKind::parse
to match the rest of the parse methods. - Added an optional (enabled by default)
std
feature to make the crateno_std + alloc
.
- Rename
Fps::as_u8
andFps::from_u8
toFps::as_int
andFps::from_int
.
- Make MIDI primitives public.
- Add
as_int
method to convert MIDI integers to primitives.
- Initial release.
- Move to a cursor approach instead of an advancing slice, for performance.