You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So I've been working to automate the performance regression tests and it's going OK. I have a fairly simple process down now, I'll probably put it in another repository though.
I've ran it on a set of MIDI and SFZ files for the past months of merge commits.
The midi files are:
Some uptempo swing drum track with alot of crashes (files called jump-)
Chopin's "Butterfly" etude (files called butterfly-)
Chopin's Fantaisie Impromptu (files called fantaisie-)
Bach's Well Tempered Keyboard first prelude (files called wtc-) with specific CCs that change the amplitude of the stops used e.g. in Prelude
The SFZ I've considered are:
AVL Drumkits (avl)
GCSW Drumkits (gcsw)
Naked Drums (naked)
DSmolken's Big Rusty Drums (rusty)
Ivy Piano in 162 (ivy)
Little Lizard Piano (lizard)
Prelude.lv2 organ (prelude) -- a wavetable-heavy file
The results are here, I'll try to keep them updated as much as possible:
We can see that some heavy performance impact was due to the envelope follower, now reduced and further cancelled by Add runtime configs for loading in ram and voice stealing #353 where the envelope follower is disable unless requested by the stealing algorithm
Links update with a blocksize of 128 samples, to better reflect normal use as a plugin (before it was 1024). This makes it worse with respect to things like polyphony checks and the modulation matrix since these are costs independent of the block size.
So I've been working to automate the performance regression tests and it's going OK. I have a fairly simple process down now, I'll probably put it in another repository though.
I've ran it on a set of MIDI and SFZ files for the past months of merge commits.
The midi files are:
jump-
)butterfly-
)fantaisie-
)wtc-
) with specific CCs that change the amplitude of the stops used e.g. in PreludeThe SFZ I've considered are:
avl
)gcsw
)naked
)rusty
)ivy
)lizard
)prelude
) -- a wavetable-heavy fileThe results are here, I'll try to keep them updated as much as possible:
https://box.ferrand.cc/sfizz-reports/history/butterfly-ivy-amd64.html
https://box.ferrand.cc/sfizz-reports/history/butterfly-lizard-amd64.html
https://box.ferrand.cc/sfizz-reports/history/fantaisie-ivy-amd64.html
https://box.ferrand.cc/sfizz-reports/history/fantaisie-lizard-amd64.html
https://box.ferrand.cc/sfizz-reports/history/jump-avl-amd64.html
https://box.ferrand.cc/sfizz-reports/history/jump-gcsw-amd64.html
https://box.ferrand.cc/sfizz-reports/history/jump-naked-amd64.html
https://box.ferrand.cc/sfizz-reports/history/jump-rusty-amd64.html
https://box.ferrand.cc/sfizz-reports/history/wtc-prelude-amd64.html
https://box.ferrand.cc/sfizz-reports/history/jump-avl-armv7.html
https://box.ferrand.cc/sfizz-reports/history/wtc-prelude-armv7.html
https://box.ferrand.cc/sfizz-reports/history/butterfly-lizard-armv7.html
Hopefully we can use all this to make sfizz as performant as possible and avoid regressions over time 🙂
The text was updated successfully, but these errors were encountered: