Note Tools

This page describes functions that allow you to very conveniently work with and manipulate Note, Notes, and similar for example you can easily translate in time or transpose them in pitch.

The functions velocities, positions, pitches, durations return the respective property when given some Notes.

Other functions follow:

MusicManipulations.translateFunction
translate(notes, ticks)

Translate the notes for the given amount of ticks. Also works for a single note.

Base.transposeFunction
transpose(notes, semitones)

Transpose the notes by the given amount of semitones. Also works for a single note.

MusicManipulations.loudenFunction
louden(notes, v::Int)

Change the velocity of the notes by v (which could also be negative). Also works for a single note.

Base.repeatFunction
repeat(notes, i = 1)

Repeat the notes i times, by successively adding duplicates of notes shifted by the total duration of notes. Return a single Notes container for convenience.

The function assumes that notes are timesorted.

MusicManipulations.timesort!Function
timesort!(notes::Notes)

In-place sort the notes by their temporal position. Use timesort for a non-mutating version.


And for getting default notes:

MIDI.testmidiFunction
testmidi()

Return the path to a test MIDI file.

MIDI.testnotesFunction
testnotes()

Return a test set of human-played MIDI notes on the piano.