Liner Notes
Red Guitar Pick
The FATpick Blog

You may have noticed that our release cadence has slowed down considerably over the past several weeks. But that doesn't mean we've been slacking off. On the contrary, this release cycle has been longer than usual precisely because we've been extremely busy working on major upgrades to some of the most fundamental components of the app - and it's critical that we get these changes right before releasing them into the wild.

Specifically, some of the major changes we've been working on include:

  1. A ground-up rebuild of the audio input analysis engine - enhancing virtually all aspects of the framework:

    • The primary motivation for this redesign was to radically improve FATpick's polyphonic pitch detection (i.e., chord-detection).

    • But the changes don't stop there: both polyphonic and monophonic pitch-detection (pitch-class and octave; independently and collectively) and timing-detection are more accurate, more tolerant of "anomalies" like volume changes and background noise, and more consistent across a broader range of octaves.

    • Incidentally the performance of the audio analysis has also improved: notes are resolved faster but with less load on the CPU and fewer demands for system resources overall. (At least this is true so far. But to be clear, while these performance gains aren't exactly an "accident", they were never the primary objective either. As we finalize the changes, we're prepared to sacrifice some of these performance gains in order to achieve the primary objective of improving polyphonic pitch detection.)

  2. Design and functional improvements to a number of chord-related features, including true chord-box rendering on the tab player, and more interactivity and customization capabilities within the guitar chord database tool.

  3. An interface redesign: potentially substantial changes to the application design. Mostly related to graphic and visual design elements (navigation buttons, form controls, menu items, etc. - the kind of stuff they used to call "chrome" before Google used that name for their web browser), but likely touching on some UX (user experience) and IA (information architecture) aspects as well. Unlikely to yield more than superficial/cosmetic changes to the primary tab-player/game-play experience and other "core content" aspects of the app, but we may revisit some those in subsequent phases of the redesign.

Our intent has been to unveil the first one, possibly two, of those bullets as release v2.5 and the redesign as our next "major version" upgrade (v3.0). And we've made substantial progress toward those milestones.

In fact the redesign of the audio analysis engine is very nearly complete. Following a great deal of exploration and experimentation - and more implement/test/revise cycles than we expected - we're feeling pretty confident about the redesigned engine in general and the polyphonic analysis algorithm in particular. But, given the nature of and degree of these changes, we'd like to be a little more than "pretty confident". We're not quite comfortable releasing the polyphonic-specific analysis algorithm into production without a few more rounds of laboratory testing and tuning. But we don't necessarily need to sit on all of these changes until that time.

We had originally envisioned unveiling the new analysis engine - the end-to-end redesign - in one fell swoop. But it's not actually a monolithic change. The redesign was implemented in a iterative fashion - layer by layer. And the final layer - the final couple of layers actually - represent wholly new functionality. They aren't replacing or re-implementing capabilities found in the existing version of the app. They are extending the app; adding new capabilities. We had hoped to include all of these capabilities in the very first release of this new engine, but we don't really have to. The fact is the new engine matched the capabilities - and exceeded the performance - found in the most recent release some time ago.

To be specific, we've come to realize that even without the polyphonic-specific enhancements the audio analysis engine is a substantial improvement over the previous (currently live) version. It's faster. It's more resource efficient. It's more accurate. It's probably more thoroughly tested even, at least in a laboratory setting. It doesn't make sense to hold these changes back simply because the engine hasn't quite met the definition of "done" that we arbitrarily set for ourselves when we started the effort. It literally does everything that the engine found in the current version of the app can do. And as far as we can tell it does almost all of it better. We're being silly. Let's ship it.

For this reason we expect to release a new version of FATpick - labelled v2.5 - in the next few days. That release will include the new and improved audio input analysis engine (modulo the pending polyphonic-specific extensions) and a handful of updates, enhancements and bug-fixes that have been implemented since the previous (v2.4.8) release.

UPDATE FATpick v2.5 was released 12/14/2021.

In parallel, we will continue with what we hope to be the final round of testing and tuning of the polyphonic-specific enhancements of the new analysis engine. If the testing goes well that release could be available within the next couple of weeks, but if release v2.5 yields any especially interesting data or feedback we may decide to make changes in response to that. The polyphonic enhancement release is likely to be labelled v2.6.0.

The other major changes on the near-term roadmap - the chord-related enhancements and the application redesign - are in motion, but not nearly as far along as the audio analysis engine upgrade. At this point we expect that work to accelerate following the v2.5 and v2.6 releases.

If priorities remain more or less the same as they are now it's likely these changes will be released in Q1 of 2022. But that's a fairly big "if": we frequently re-prioritize the product roadmap based on user feedback, behavioral metrics, and other emergent info.

For what it's worth, while some of the pending changes are foundational enough that we may need still need a little extra time between releases to complete the work, we don't anticipate anything remotely as long as the delay between release 2.4.8 and 2.5.0. And we hope to return to our traditional two-week cadence as soon as possible.

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