Jump to content

Midi file tempo change on export?


Recommended Posts

Hey there. If I export a standard midi file, let's say one instrument. A flute for instance.

Tempo is 95 bpm

When I re-import that midi file into a score program, in this case Sibelius, the tempo shows as: 94.9999999955566 or something like that.

It's never the exact tempo I had set in Cakewalk. 

What could cause that? 

Link to comment
Share on other sites

I would tend to ask this question of Sibelius. 
I have exchanged midi files amongst dozens of midi apps, some for software from the 80’s and I’ve never seen a tempo that was wrong. 


So it’s not Cakewalk printing the wrong info to the exported file. You could check the tempo list in the inspector to confirm the tempo. 

And you can Import any midi between any midi sequencer and that data should always  play at the tempo set in the original Software. 

When you open a midi file ( not import) then the tempo that was set in the software you export from is what the new software should use. 

These day you generally drag and drop individual midi tracks between apps. 
And if you drag a midi clip from a project that was 120 BPM into a project that is at 95 BPM that clip will play at 95 BPM. End of story. 
So Set Sibelius at 95 then drag the track from you export folder into the Sibelius project. 

Edited by John Vere
Link to comment
Share on other sites

Several years ago I looked into some of the finer details of MIDI files.  IIRC BPM tempo is calculated. See for example the following which is one source that describes the Meta-Event for Set Tempo.   

Quote

FF 51 03 tttttt Set Tempo (in microseconds per MIDI quarter-note):
This event indicates a tempo change. Another way of putting "microseconds per quarter-note" is "24ths of a microsecond per MIDI clock". Representing tempos as time per beat instead of beat per time allows absolutely exact long-term synchronisation with a time-based sync protocol such as SMPTE time code or MIDI time code. The amount of accuracy provided by this tempo resolution allows a four-minute piece at 120 beats per minute to be accurate within 500 usec at the end of the piece. Ideally, these events should only occur where MIDI clocks would be located -- this convention is intended to guarantee, or at least increase the likelihood, of compatibility with other synchronisation devices so that a time signature/tempo map stored in this format may easily be transferred to another device. (Source)

I remember reading more about how the calculation to BPM is done, but I don't remember the details. I do remember that I was working on a DIY MIDI hobbyist project involving a microprocessor (an Arduino), an LCD, a whole bunch of sliders, a piece of BPM gear as a MIDI clock source (a hardware sequencer/sound module).  The BPM hardware was based on 384 PPQ, I needed to count MIDI clock bytes, and derive a formula based on clock bytes per time, etc.

I am guessing that  94.9999999955566 BPM is close enough to 95 BPM for all practical purposes.  

Edited by User 905133
added my source for the quotation; edits
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...