Robin Gareus
cd53301d06
Files that have many tracks, each with tempo information were near impossible to load (30+ mins on modern 4.2Ghz CPU!), because tempo is parsed incrementally: ``` For each new track: for each new tempo-event: rewind() for each loaded track so far: for each event on this track so far ``` This reduces the complexity from O(tracks^2 * tempos^2) to O(tracks * tempos). "Come Thou Fount Tempo Map.mid" has 238 Tracks and 56168 total Tempo Changes (236 per track). This now requires only 56168 iterations in smf_create_tempo_map_and_compute_seconds, rather than 1.64e+9 iterations |
||
---|---|---|
.. | ||
evoral | ||
libsmf | ||
MSVCevoral | ||
test | ||
Control.cc | ||
ControlList.cc | ||
ControlSet.cc | ||
Curve.cc | ||
debug.cc | ||
Event.cc | ||
Note.cc | ||
run-tests.sh | ||
Sequence.cc | ||
SMF.cc | ||
SMFReader.cc | ||
wscript |