Motivation to Build Frettly

Frettly is my attempt to build the guitar-learning tool I wish I’d had – a way to explore scales, chords and tunings visually, and actually hear what you’re looking at.

Why I Built Frettly

I first started learning guitar five years ago, and wanted to understand more about music theory. How are scales and chords constructed? What are the “rules” that determine which notes form a C Major scale – or a Dsus4 chord? What determines whether a note in a scale should be shown as 'A#' or 'Bb'?

I’m a professional software developer with forty years’ experience. I began with BASIC, Forth, Pascal and Z80 at a young age, just as the industry was taking off. I’ve always enjoyed the logic of coding, but also the art and craft of designing elegant, maintainable software.

Forty years ago I turned my hobby into my career and have worked my way through C, C++, Java, HTML, Javascript, Golang, Dart and Swift.

From Frettler to Frettly

Back to Frettly. When I was learning guitar and trying to understand how music theory applies to the instrument, I naturally started writing some Java code to help cement concepts in my head. What began as rough code to calculate scales became a program that printed them out in a pseudo-graphical format in the terminal. That meant working out where those notes were on the fretboard – in code.

Then the “what ifs” started:

  • What if the tuning were different?
  • What if the guitar were left-handed?
  • What if the instrument were actually a ukulele?
  • And so on…

The ideas kept coming, and the features grew and grew, eventually becoming an open-source Java command-line program called Frettler .

As you can see from Frettly's pre-cursor, Frettler, I got carried away. But it always bugged me that all of that complex music-theory logic ended up behind a basic command-line interface. The older Frettler is a one-shot program – you run it, it prints the result, and it exits. Rinse, repeat.

A New Start in Swift

I wanted the original Frettler to have a proper graphical interface – something interactive and something you could actually hear. So I began porting the core music-theory engine from Java to Swift, which was quite a learning exercise. Then I paused… for a few years.

This year I returned to design and build Frettly, a native macOS document-based application that lets you build a portfolio of scales, chords and modes you want to study and practise. I now had a better idea as to what Frettlys UI should look like, how I wanted it to function and what would make it super useful for myself and other guitarists (and bassists, and ...).

Where Frettly Is Going

As you’ll see from the original Frettler features, I have a backlog of ideas I’d love to build into Frettly – but I want user feedback on what would actually be useful, and how you’d like these features to fit into the app.

I don’t want to bloat Frettly, so I’m taking time to consider how it should evolve. My goal is to help guitarists understand the instrument through clear visualisation and interactive theory tools, rather than adding features for the sake of it.