ardour/libs
Robin Gareus cd53301d06
Significantly speed up loading SMF tempo-maps
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
2022-02-05 17:33:21 +01:00
..
appleutility wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
ardour Triggerbox: revert test-code 2022-02-04 21:48:45 -06:00
ardouralsautil wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
audiographer Amend f322c4ded7, clean up includes, fix visibility 2022-01-28 02:29:11 +01:00
auscan wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
backends wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
canvas Remove 18 month old debug messages 2022-02-01 22:01:41 +01:00
clearlooks-newer wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
evoral Significantly speed up loading SMF tempo-maps 2022-02-05 17:33:21 +01:00
fluidsynth wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
fst wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
gtkmm2ext Prioritize self-deletion 2022-01-29 05:17:00 +01:00
hidapi wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
libltc wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
lua Add API to modify Lua Metatable and set Metamethods 2022-01-24 06:23:16 +01:00
midi++2 wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
panners wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
pbd Fix poor_mans_glob, ~' for $HOME' is only valid at the start of a path 2022-02-01 15:47:54 +01:00
plugins wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
ptformat wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
qm-dsp wscript: improve configure messages slightly 2022-01-22 22:19:07 +01:00
surfaces wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
temporal alter Source::_length from timecnt_t to timepos_t 2022-01-28 15:52:27 -07:00
vamp-plugins wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
vamp-pyin wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
vfork wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
vst3 Backport VST3 diagnostic pragma 2021-03-01 22:14:38 +01:00
waveview wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
widgets Dim text rendered with ShadedPlusSign 2022-01-31 01:58:42 +01:00
zita-convolver wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
zita-resampler wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00