13
0
livetrax/libs/evoral/libsmf
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
..
COPYING move evoral/src/* to evoral/ 2019-11-02 16:32:18 -06:00
README move evoral/src/* to evoral/ 2019-11-02 16:32:18 -06:00
smf_decode.c move evoral/src/* to evoral/ 2019-11-02 16:32:18 -06:00
smf_load.c SMF: remove unused variable (from 803dab7d87) 2020-07-16 18:35:43 +02:00
smf_private.h move evoral/src/* to evoral/ 2019-11-02 16:32:18 -06:00
smf_save.c Remove unused libsmf seconds/time API 2020-07-16 18:38:03 +02:00
smf_tempo.c Remove unused libsmf seconds/time API 2020-07-16 18:38:03 +02:00
smf.c Remove unused libsmf seconds/time API 2020-07-16 18:38:03 +02:00
smf.h Remove unused libsmf seconds/time API 2020-07-16 18:38:03 +02:00
smfsh.c move evoral/src/* to evoral/ 2019-11-02 16:32:18 -06:00

This is a stripped down version of libsmf 1.2 by Edward Tomasz Napiera
for internal use by Evoral.  See COPYING for licensing information.

The complete version can be found at <http://libsmf.sf.net>.