-
Notifications
You must be signed in to change notification settings - Fork 155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bogus MIDI time signature and/or tempo imports #13
Comments
I tried some workaround by avoiding this "timesig and tempo changes at the same time" pattern, but I still see weird imports. I will try to create some repro song that only contains the master track later. So far, GarageBand could successfully import the song, and timidity player played it without problem, so I assume the song itself was not bogus (it was generated my own compiler tool). |
repro SMF: issue13repro.mid.zip |
On further investigation, this is another piece of code in doubt:
where
The value is assigned only when the MIDI track contains the tempo change, which looks correct. But then the call to This Attaching another simplified repro, which (in the same pseudo code) is like:
|
Thanks for the report and detailed info. I'll take a look at this soon hopefully. |
I am trying to import some MIDI file into Waveform 9 (tried 10beta too), but the imported data is corrupt around where time signature changes. I suspect that tracktion_engine fails to deal with them.
I can't share my song in production, but my pseudo MIDI event list for my master track (0) is like this:
(
t
is tempo,r
is rest,BEAT
is for time signature, andMARKER
is marker meta text. Edit: and '[' to ']'n means "repeat n times".)Starting
Section B
, Waveform fails to generate valid tempo/timesig changes, I can't really logically explain the actual behavior. It would be reproducible but changes them at many points.Tracking the MIDI importer sources, this code smells:
I guess this assumes that they are either "both time signature" or "both tempo" and thus ignores the other. But my song contains a time signature change and a tempo change at the same time at
Section C
.The text was updated successfully, but these errors were encountered: