DryWetMIDI 5.0.0
·
369 commits
to 6c591ff7663114d8139d4d0bf3f4133bad59eed9
since this release
Breaking changes
This version of the library has breaking changes:
Melanchall.DryWetMidi.Smf
namespace renamed toMelanchall.DryWetMidi.Core
.Melanchall.DryWetMidi.Smf.Interaction
namespace renamed toMelanchall.DryWetMidi.Interaction
.- Pattern API moved to new namespace
Melanchall.DryWetMidi.Composing
. BarBeatTimeSpan
renamed toBarBeatTicksTimeSpan
.- Renamed
SetProgram
methods of thePatternBuilder
class toProgramChange
. - Changed type of the parameter of
SetOctave
method of thePatternBuilder
class fromint
toOctave
.
Documentation
From now you can read complete library documentation on https://melanchall.github.io/drywetmidi. Here you can find information about every class and members of the library. API documentation is placed in API Documentation section.
Right now it's not full replacement for the library Wiki so please don't forget to look at Wiki also when you want to get more information on some topic.
New features
- Added
Chord
class toMelanchall.DryWetMidi.MusicTheory
namespace. - Added
ChordProgression
class toMelanchall.DryWetMidi.MusicTheory
namespace. - Added
GetStep
method toScaleUtilities
that getsNoteName
corresponding to the specified step of a musical scale. - Added
GetNotesNames
method toScaleUtilities
that returns infinite collection of note names that belong to the specified scale. - Added
IntervalQuality
enum toMelanchall.DryWetMidi.MusicTheory
namespace. - Added
Get
method toInterval
class which accepts interval number and quality. - Implemented parsing of
Interval
by number and quality (for example, "P8" which is perfect eight). - Added
Transpose
method toNoteUtilities
class which returns theNoteName
transposed by the specified interval. Note
can be parsed now from string with any number of sharps and flats.- Added
NoteCallback
property toPlayback
class which allows to modify and filter every note to be played. - Added
EventCallback
property toPlayback
class which allows to modify and filter every MIDI event to be played. - Added
EventPlayed
event toPlayback
class to track MIDI events playing. - Added
PlaybackCurrentTimeWatcher
class which allows to watch current time of specified playbacks and report it in the specified units via corresponding event. - Added
BarBeatFractionTimeSpan
which represents a beat as a fraction (for example0.5
) instead of number of whole beats and number of MIDI ticks (used byBarBeatTicksTimeSpan
). - Added
BarBeatUitilities
which contains methods:GetBarLength
that allows to get length of specified bar in terms of MIDI ticks;GetBeatLength
that allows to get length of a beat of specified bar in terms MIDI ticks.
- Added
Filter
property to quantizing settings classes to filter out objects that should be quantized. - Added
Filter
property to randomizing settings classes to filter out objects that should be randomized. - Added
MidiClock
class which allows to report ticks with the specified interval and speed. - Added
NoteId
class that repesents a separately sounding note (note number and channel). - Added
PatternUtilities
class with methods:TransformNotes
that transforms notes within the specifiedPattern
producing new pattern;TransformChords
that transforms chords within the specifiedPattern
producing new pattern;SplitAtAnchor
that splits a pattern into subpatterns in points where the specified anchor inserted;SplitAtAllAnchors
that splits a pattern into subpatterns in points where anchors inserted;SplitAtMarker
that splits a pattern into subpatterns in points where the specified marker inserted;SplitAtAllMarkers
that splits a pattern into subpatterns in points where markers inserted;CombineInSequence
that combines the specified patterns into single one placing them after each other;CombineInParallel
that combines the specified patterns into single one starting all them at the same time (i.e. stacking patterns).
- Added constants to
PatternBuilder
that holds default values: - Added properties to
PatternBuilder
that return current values:Velocity
;NoteLength
;Step
;Octave
;RootNote
.
- Added
ReplayPattern
method toPatternBuilder
class to insert all actions from the specifed pattern. - Added
PatternBuilder
constructor that acceptsPattern
to start from the list of actions of the passed pattern. - Added
Chord
methods toPatternBuilder
class which accept an instance of theMelanchall.DryWetMidi.MusicTheory.Chord
. - Added
Clone
method toPattern
class to create a copy of the current pattern.
Small changes and bug fixes
- Improved
GetHashCode
implementation for the library classes. - Fixed: notes order is invalid on collecting by
NotesManager
when notes are overlapped. - Fixed:
PatternBuilder.MoveToPreviousTime
doesn't work. - Fixed: playback starts immidiately if first event is meta event with delta-time greater than zero (#37).