Liner Notes
Red Guitar Pick
The FATpick Blog

The primary focus of development for this release cycle has been a complete, ground-up rewrite of the audio analysis engine. In this stage 1 release of the re-architected engine you will find a substantial volume of improvements to the accuracy of the note estimation algorithm and overall audio processing performance.

FATpick v2.5.0 was released 14 December 2021 and is available now for Windows, Linux and macOS.

🔥 Major Upgrade to Note Detection Algorithm and Audio Analysis Engine

As previously mentioned we've been hard at work on a near total redesign of one of our most important subsystems: the audio analysis engine that powers our pitch and note-onset detection. The scope of the changes is considerable, as has been the level of effort invested to realize them. This is easily the largest individual initiative we've taken on in the 2.x series, and shows the potential to be the single largest upgrade in capabilities in that time frame as well.

This new implementation radically improves nearly all aspects of the audio analysis engine:

  • Note detection is more accurate and more consistent.

    • Pitch detection is more accurate.
    • Pitch detection is more consistent across volume levels.
    • Pitch-class detection is less susceptible to "edge effect" errors at the extreme ends of the frequency spectrum.
    • Octave detection is much less susceptible to errors triggered by harmonics and resonance frequencies.
    • Note timing evaluation (onset-detection/offset-detection) is less susceptible to errors triggered by background noise or changes in volume.
  • Higher performance; Lower latency.

    • Notes are resolved faster (i.e., less lag between the time the note was played and the corresponding getting tagged "hit" or "missed")
    • Pitch detection analysis loop executes ~10% faster in worst case; ~50% faster in average case; ~90% faster in the best case.
    • Overall audio input processing latency reduced ~30%.
    • The innermost step of the audio processing loop is now approximately 40% faster than before.
  • More resource efficient.

    • Requires less memory and fewer CPU cycles.
    • Uses resources more consistently: the need for dynamic allocation of temporary resources have been reduced, enabling more a consistent steady-state memory footprint and more predicable performance characteristics.

Despite, or perhaps in light of, the substantial progress represented here, it's worth noting that is only the first stage of the rollout of the new audio analysis engine. As remarkable as these improvements may be notice that they are just that - improvements to existing functionality rather than the introduction of new features or capabilities. If incremental improvement was our end goal we likely could have achieved that through optimization and tuning rather than a ground-up re-write of the engine. The primary motivation for this engine redesign, and the reason a wholly new architecture was needed, was to extend the capabilities of the audio analysis engine. Those new capabilities, and the ultimate payoff for this effort, are nearly production-ready, or at least approaching nearly production-ready. We expect to unveil some or all of those new capabilities with the second stage of this rollout under the label FATpick v2.6.

✨ Other Notable Changes

  • Tuner Enhancements. The chromatic tuner tool was improved in two fairly substantive ways:

    1. Rendering Performance. The rendering of the spectrogram visualization, and (to a lesser extent) other aspects of the tool, have been optimized for performance.

    2. Flat/Sharp Precision. The precision (sensitivity and resolution) of the sharp/flat estimate - the degree to which the observed pitch is above or below the expected note, as measured in "cents" (hundredths of a semitone) and reflected in the left/right deflection of the needle within the gauge - has increased. The change may be most pronounced for high-pitched notes.

  • Latency Calibration Metrics Revised. The audio data features used by the latency calibration test driver to identify the previously generated tone as captured in the audio input stream have been changed to measure the raw audio latency more precisely.

  • Audio Analysis Settings Options Changed. The range of acceptable values for the Window Size setting has been changed. A new Sample Density setting has been added.

  • Third-Party Libraries Upgraded. Several third-party software libraries and infrastructural components (licensed/open-source software and tools not directly created by the FATpick team itself) have been upgraded to their most recent stable/long-term support releases. In this instance that includes "major version" upgrades to the Chromium browser engine, Node.js runtime, and Electron.js framework, and a "minor version" upgrade to a handful of other libraries. Keeping up with the latest version of external/third-party dependencies like this is a software engineering "best practice". It helps us take advantage of the latest features, bug-fixes, performance enhancements, and - most importantly - security patches - available for these "upstream" software components.

  • Note When Default Track Overridden. A small note now appears at the bottom of the track-mixer dialog when, at song open, the track-filtering criteria of the most recent song search override the previously-played tab for that song.

  • New Scales Added. Two new scales have been added to the preset menu on the scale explorer tool: (1) the Acoustic Scale (aka "Lydian Dominant"; aka "Overtone Scale"), defined by the interval pattern W-W-W-H-W-H-W and (2) the "Ancient Chinese Scale" (which doesn't seem to have an authoritative online reference to cite) defined by the interval pattern W-W-W-H-W-m3. Thanks to users PL and JK, respectively, for the suggestions.

🐞 Bug Fixes

  • Extreme Mic Sensitivity After Restoring Advanced Audio Analysis Settings. Clicking the "Restore Factory Settings" button on the Advanced Audio Analysis menu was triggering an exponential increase in the audio input sensitivity that would stay in effect until the next app restart. This problem has been fixed.

  • Ability to Cancel an In-Progress Latency Calibration Run Restored. A couple of edge-cases related to cancelling an in-progress latency calibration test were fixed. Thanks to user JB for reporting the issue.

  • Inappropriately Sticky Focus Status for Dialog-launching Buttons. A minor cosmetic issue in which buttons retained their active/focused status after launching (and subsequently closing) a modal dialog was addressed.


Download the most recent version of the FATpick desktop app for macOS, Linux or Windows PCs at fatpick.com/get.

For more information about FATpick, the tab player that listens, visit fatpick.com.

FATpick
Also see more posts tagged , , or .
Or, visit the tag index, or view the latest posts.