audacity
audacity copied to clipboard
Per track meter internals
Resolves: (direct link to the issue)
Some of this originated in #5779
Put into AudioIO.cpp all the support needed for per-track meters displaying correct peak and RMS data (post all adjustments for the effect stack, pan, gain, envelope).
But also other cleanups of AudioIO. Move the experimental automated input level adjustment out, so the Meter interface needs fewer virtual functions.
Also clean up the publication of events from AudioIO and correct some non-thread-safe message callbacks.
To do: MixerBoard should use this. It doesn't show correct data now in all cases. See #5117
(short description of the changes and the motivation to make the changes)
- [x] I signed CLA
- [x] The title of the pull request describes an issue it addresses
- [x] If changes are extensive, then there is a sequence of easily reviewable commits
- [x] Each commit's message describes its purpose and effects
- [x] There are no behavior changes unnecessary for the stated purpose of the PR
Recommended:
- [x] Each commit compiles and runs on my machine without known undesirable changes of behavior
I should have put the big red Experimental label on this bit of holiday hackathon. I didn't ask review yet, but thank you.
@saintmatthieu @vsverchinsky
Rebased onto latest master.
There is much cleanup of AudioIO.cpp that I prepared. It's still not all of the cleanup.
Correct inter-thread communication of the stream of most recently played samples is necessary for a per-track meter display that is not meaningless garbage.