MIDI SMPTE Offset meta message

The MIDI SMPTE offset meta message specifies an offset for the starting point of a MIDI track from the start of a sequence in terms of SMPTE time (hours:minutes:seconds:frames:subframes).

This message belongs to the category of MIDI meta messages. Since this is a meta message, it may exist in MIDI files, but it is never sent over MIDI ports to a MIDI device.

This message consists of eight bytes of data. The first byte is the status byte 0xFF, which shows that this is a meta message. The second byte is the meta message type 0x54, which shows that this is the SMPTE offset meta message. The third byte is 0x05, which shows that there are five remaining bytes. The fourth byte specifies the hours of the SMPTE time and the frame rate as described below. The fifth, sixth, seventh, and eighth bytes specify the minutes, seconds, frames, and sub-frames of the SMPTE time.

The hours byte has the binary format "0sshhhhh". The top bit is zero as it is reserved according to the MIDI time code specifications. The two bits ss define the frame rate in frames per second. If those bits are "00" (0 decimal), the frame rate is 24 frames per second. If those bits are "01" (1 decimal), the frame rate is 25 frames per second. If the bits are "10" (2 decimal), the frame rate is "drop 30" or 29.97 frames per second. If the top two bits are "11", then the frame rate is 30 frames per second. The five hhhhh bits define the hours of the SMPTE time.

Obviously, the hour byte of the SMPTE time takes values between 0 and 23. The minute and second bytes of the SMPTE time take values between 0 and 59. The frame byte takes values which range depends on the frame rate specified in the hour byte. For example, if the frame rate is 24 frames per second, then the frame byte takes values between 0 and 23. The sub-frame byte takes values between 0-99 as there are always 100 sub-frames in a frame.

The following is an example of a MIDI SMPTE offset meta message.

0xFF 0x54 0x05 0x01 0x00 0x00 0x00 0x00

The status byte is 0xFF which means that this is a meta message. The meta message type is 0x54 which means that this is the SMPTE offset meta message. The third byte shows that 5 bytes follow. The fourth byte is 0x01 which has the binary form 00000001 and hence the frame rate is "00" or 24 frames per second. The SMPTE hours are 1. The remaining bytes define the SMPTE minutes, seconds, frames, and sub-frames as 0. Thus, this message means that the track should start 1 hour after the beginning of the sequence.

See also:
Musical Instrument Digital Interface (MIDI)

Comments

admin: First posted on 2017 05 10

kazem, 2017 05 10: why this message can appear anywhere? what should happen in case we have two of these messages?

The message should occur only at the beginning of tracks (i.e., it has no meaning if it is elsewhere). I changed the other topic that was talking about this.

I am not sure where you’re getting your information, but great topic. I needs to spend some time learning much more or understanding more.
Thanks for great information I was looking for this information for my mission.

Add new comment

Filtered HTML

  • Freelinking helps you easily create HTML links. Links take the form of [[indicator:target|Title]]. By default (no indicator): Click to view a local node.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.