13
0
livetrax/libs/evoral
Robin Gareus c6b87972b1
Remove unused libsmf seconds/time API
This significantly speeds up parsing MIDI files with complex
tempo-maps. e.g. "Black MIDI Trilogy_2.mid" has 24134 Tempo
changes. Prior to this commit parsing that file took over 5 minutes.
now it loads in under one seconds (libsmf only; libardour still
add overhead, and now needs about 30-40 seconds, previously
it took about 10 mins).

The problem was that every call to `smf_track_add_event_pulses()`
calls `seconds_from_pulses()` which calls `smf_get_tempo_by_seconds()`
which iterates over the tempo-map:

  for every midi-event { for ever tempo until that midi-event {..} }

This does not scale to 3.5M events and 24k tempo-changes.
2020-07-16 18:38:03 +02:00
..
evoral Remove unused libsmf seconds/time API 2020-07-16 18:38:03 +02:00
libsmf Remove unused libsmf seconds/time API 2020-07-16 18:38:03 +02:00
MSVCevoral Accommodate some recently moved/renamed folders and source files (libevoral) 2019-11-03 13:46:29 +00:00
test Fix test breakage from a855119bdd 2020-01-16 14:01:18 -06:00
Control.cc
ControlList.cc Improve debug message 2020-06-12 05:08:40 +02:00
ControlSet.cc
Curve.cc
debug.cc
Event.cc
Note.cc
run-tests.sh
Sequence.cc slight better warning/debug message for a stuck note to-be-deleted 2020-05-04 18:48:17 -06:00
SMF.cc Remove unused libsmf seconds/time API 2020-07-16 18:38:03 +02:00
SMFReader.cc
TimeConverter.cc
wscript Fix building unit-tests 2020-01-27 17:43:37 +01:00