Skip to content

DryWetMIDI 7.1.0

Latest
Compare
Choose a tag to compare
@melanchall melanchall released this 02 May 16:29
19ff130

Rests redesigned

Now you can get rests between different types of objects and by any logic you will describe. Please read updated Rests section of the docs. This entails a breaking change – there is no ObjectType.Rest option anymore. So to get, for example, notes and rests between them you need to write following code:

var notesAndRests = midiFile
    .GetNotes()
    .WithRests(RestDetectionSettings.NoNotesByChannel);

To feel the power of the new approach, just take a look to the snippet:

var notesAndChordsAndRests = midiFile
    .GetObjects(ObjectType.Note | ObjectType.Chord)
    .WithRests(new RestDetectionSettings
    {
        KeySelector = obj => obj is Note note && note.NoteNumber > 100
            ? (object)note.NoteNumber
            : null
    });

Here we get notes, chords and rests between notes with note number > 100 separately for each note number. Rests won't be built for chords and notes with note number <= 100.

CSV serialization redesigned

CSV serialization and deserialization have been completely reworked with the new CsvSerializer class. Please read CSV serializer article to learn more.

Small changes