jono grant Posted February 12 Share Posted February 12 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 More sharing options...
John Vere Posted February 12 Share Posted February 12 (edited) 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 February 12 by John Vere Link to comment Share on other sites More sharing options...
User 905133 Posted February 13 Share Posted February 13 (edited) 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 February 13 by User 905133 added my source for the quotation; edits Link to comment Share on other sites More sharing options...
David Baay Posted February 13 Share Posted February 13 Not at my PC to do the calculation, but if the underlying MIDI value is in microseconds/quarter note, then Sibelius is likely showing more precision than is available and should be rounding to fewer places. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now