Skip to content

ForMIDI v0.4 "Forbidden Love"

Latest
Compare
Choose a tag to compare
@vmagnin vmagnin released this 04 Jul 19:24
· 3 commits to main since this release
d114c7d

Added

  • The Meta event set_time_signature() method and the time_signature optional argument in the new() method.
  • The MIDI event pitch_bend() (demonstrated in tests).
  • In src/music.f90:
    • most useful notes values, alongside quarter_note, are now defined as Fortran parameters: whole_note, half_note, eighth_note, sixteenth_note and thirty_second_note, expressed in MIDI ticks.
    • A dotted() function returning the value of a dotted note.
    • Common note levels expressed as MIDI velocities, from pppp_level to ffff_level.
  • The method play_broken_chord() can now either accept a value argument with the whole duration or a values array argument containing the values for each note.
  • example/motifs.f90: based on Dmitri Shostakovich's DSCH motif and BACH motif, with four musical tracks. It uses the new values array argument of the method play_broken_chord().
  • Unit tests for the function variable_length_quantity(i), which was added to be called by the method write_variable_length_quantity(self, i).
  • A FORD documentation: a project file ford.yml and a workflow .github/workflows/ford.yml to generate GitHub Pages.

Changed

  • In the Note_OFF() method, the velocity argument is now optional (64 is the default value).
  • The ON and OFF MIDI constants are now defined as parameters, using their decimal value.
  • The quarter_note parameter is now 96 instead of 128 (96 has the advantage of being a multiple of 2 and 3).
  • Refactored automatic tests.

Fixed

  • The last ishft() in the write_variable_length_quantity() is now toward the right instead of left (fixes Issue #9).