5

My understanding based on the MIDI spec is that for audio-only playback (i.e. no accompanying visual notes display), the only time information necessary to read from a MIDI file is:

  1. The division value from the header chunk -- which is in ticks per quarter note (assuming metrical not SMPTE time)

  2. The current tempo based on Set Tempo meta events -- which are in microseconds per quarter note

  3. The delta-times of Note On/Off events -- which are in ticks

To determine when to start playing a note, you'd simply figure out the current real-time length of a tick by dividing the current tempo by the division (getting microseconds per tick) and multiplying that value by the Note On's tick.

Thus, if I've gotten the above correct, the separate time signature meta event information isn't needed for audio playback. Which begs the question: what is the purpose of the time signature information?

NOTE: I have asked an analogous question about key signatures elsewhere. This question is about time signatures.

  • 4
  • 2
    the questions is different (key signature vs time signature) but the answer is the same. Notation and Cataloging. – Noel Walters Aug 30 '15 at 8:56
  • Your method of determining the start time of a note does not work when the tempo has changed. See How to get Exact Time of a MIDI event and Reading notes from MIDI file using NAudio. – CL. Aug 30 '15 at 17:11
  • Thanks @CL. - is your concern with my approach about incremental versus absolute delta times? i.e. what I wrote above is definitely a bit sloppy about this, I should note that you need to keep track of the incremental delta times and any tempo changes along the way. Other than that, is my approach correct, i.e. you still never need to look at the time signature information for the purpose of determining on/off times? – Ghopper21 Aug 31 '15 at 14:56
5

The specification says that MIDI files

may also include time signature information, so that the bar number may be derived

For actual MIDI playback, the time signature information is not needed.

2

MIDI files a versatile (they aren't just used for audio playback).

For example: I make MIDI files with a program (LilyPond), I can then import these files into music editing programs (such as GarageBand) to edit and manipulate the music. The editing programs will read the time signature (and key signature) that I specified in the MIDI file. This ensures that the score represented on the editing program is notated correctly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.