Log the details of every found multi-sample during Analyse (the run log proposed in #336) - #348
Merged
Merged
Conversation
The Analyse run can log for every found multi-sample what it contains: the mapping of its zones with their sample format, loops with their cross-fades, envelopes, LFOs and the filter with its modulators. Only attributes which a source actually uses are logged, so searching the log finds the sources which use a specific feature - e.g. all presets of a library with a filter envelope, a loop cross-fade or a release trigger. Enabled with the option 'Log analysis details' in the Settings dialog or with -ad on the command line. The details describe the source as it was read, before any processing is applied. The attribute names are deliberately not translated, so a search pattern does not depend on the language of the user interface.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The run log proposed in #336: an option which makes the Analyse run log for every found multi-sample what it contains, so the log of a whole run over a library can be searched for the sources which use a specific feature - e.g. a test file with a filter envelope, a loop cross-fade or a release trigger.
Always logged per multi-sample are the file path, the metadata and for every zone the mapping (note name and MIDI number) and the sample format. Everything else appears only when the source actually uses it - which is what makes searching work:
Vibratoonly matches presets which have one, and theFile:line above the match is the test file. Covered are loops (with until-release, cross-fade and loop tuning), the amplitude velocity/envelope/LFO, pitch envelope and LFO, the filter with its velocity/envelope/LFO modulators, round robin positions, triggers other than attack, one-shot, reverse, fixed pitch, exclusive groups, note/velocity cross-fades, play ranges, a pitch bend other than the default 200 cents, polyphony and portamento. A performance logs each instrument with its MIDI channel and key clip.Rules:
fil_veltrackscale), dB for the tremolo depth (96 full scale) and for the resonance (40 full scale).It is an option ("Log analysis details" in the Settings dialog) rather than a Debug menu entry, so the CLI has it too:
-ad/--analyze-detailsimplies--analyze, and a whole-library run is one redirected command. A run without the option logs exactly what it logged before.The new code is
core/AnalysisLogger; the hook is one call inConverterBackend.acceptMultisampleandacceptPerformanceeach. Verified with Soundbox packs whose envelope values are known (logged exactly), DirectWave monolithic programs, an SFZ which uses every attribute at once and a constructed performance; a run without the option is unchanged. Compiles with JDK 25/26. The README (Options section and the CLI help) and the CHANGELOG are updated.