Any updates on Capo's development?

Despite continuing to charge a premium subscription price there have been zero new features in 2 years, only the bare minimum updates to keep Capo working.

I still use Capo most days for practise & learning songs. This is because I know my way round it and I’ve accumulated a lot of songs now. However the same issues continue to frustrate me every time I use it.

I would really like to see some of the many requested features make it into Capo. Failing that I suggest you charge a price per version and I’ll pay to upgrade.

That last point seems very fair and stops my argument about lacking features. It also puts pressure on you to develop the app.

At the very least you could share your product roadmap with your loyal customers.

Top of my list are:

  • Better loop/region management with the ability to overlap regions
  • More granular tempo adjustments (increments of 5bpm for example)
  • Volume and tempo controls on the same screen (or customisable controls)
  • Easier/better way to align the bar counter with the actual bars in the song. Same for chord names.
  • Ability to colour code songs (for example make all open tuning songs a different colour to standard tuning. Or use a different colour per genre, etc)

Thanks,

James

Hi James,

I can understand your frustration with me right now, and I’m sorry that I’ve not been churning out your desired features as quickly as you’d like them to be.

Your list has some overlapping elements with my own, and one of them is already possible (on macOS, anyway). Holding the shift key while using the up/down arrows will give you really fine adjustments to the speed (in increments of 1%).

Is there something specific about the beat grid editing that’s not working out for you right now? “Make it easier/better” isn’t very helpful feedback. Same for chords: what are your specific challenges there?

Anyway, I’ve very much been alive here, grinding away, remaining highly responsive to all the users that email customer support, and keeping Capo working well across all the recent OS transitions. While this may all seem like small work, these maintenance updates are often far from the bare minimum in terms of the effort needed to keep your beloved Capo working well when Apple decides to mess around with the OS and break it every year. Over the past 3 years, there are many major fixes like this that I’ve had to undertake, many of which have had zero noticeable effect.

But that’s kind of the point, right? Make it look easy… :stuck_out_tongue:

1 Like

Hi Liscio,

Don’t get me wrong, I appreciate that you keep Capo running. However I’d really like to see Capo progress, see the changes people requested, new features etc.

I use Capo most days so most days I get reminded of the things I’d like, as per my list.

I’m very glad to know that you have a list and I would really like to see it! Please make it available on the forum? You could even ask your customers to vote for the things they most want to see.

I know how to use the shortcuts - you have to if you want to make Capo work for you. For the speed control it would be nice to be able to change tempo in 5 or 10bps increments with a single keystroke. Regarding the beat alignment, I’d like to set a marker where the first bar starts and have Capo do the rest. Simple :slight_smile:

If all I ever see on the app version history is “maintenance” and “bug fixes” then all I can assume is that Capo is purely in maintenance mode. I appreciate the bug fixes btw. I work in the software industry and the significance is not lost on me.

I’m sure I’m not alone in what I’m asking for!

To be completely frank, I hate sharing roadmaps, or discussions about features that I’m working on. So many things change on a moment’s notice that will totally disrupt (or invalidate) a list of planned features for a given release. This is especially true given that I’m a single (human!) developer working on a very large project, with family and life obligations that complicate matters a great deal.

One of the rare times I’ve shared plans of a feature I’m working on, I regretted it shortly afterwards, when I was completely overwhelmed by a combination of grad school responsibilities, and a metric butt-ton of emergency, major rework, of Capo’s code to work around a problem that was introduced in Xcode 14[1].

Despite my distaste for doing this, here’s a small sample from my “short list” of things I want to get into the app ASAP (in no particular order, subject to change, etc):

  • Overriding the detected key of the song (which was fully implemented, then pulled due to strange interactions with another bug, and other issues related to Capo’s underlying design.)
  • Always-on freezer mode, where you can basically play the song at 0% speed. This has been requested numerous times in support, and is long overdue.
  • Speed control based on the tempo value[2]
  • Allowing users to re-run the beat detection, possibly exposing some parameter adjustments
  • Auto-adjusting the pitch slider value based on the detected “concert A” (440Hz) reference pitch
  • (Restoring) an easy way to loop the playback of the whole song

Some medium-to-large sized things:

  • Improving the layout algorithm for the CHORDS view
  • A nice mechanism for editing, and aligning chords within bars
  • A way to make (temporary) loops from the STRUCTURE (and maybe also CHORDS) song view(s)
  • Carrying your section definitions into the PRACTICE song view
  • Named markers, which is already half-built
  • Defining the song’s boundaries, so you can basically hide/ignore stuff
  • Re-running chord detection on a pitch-adjusted version of the song[3].

Massive-and-incredibly-difficult things:

  • Overhauled MIDI and Keyboard customization, plus adding support on both platforms (which always over-complicates matters)
  • Layout, printing, and exporting of chord charts.[4]
  • Redacted :smile:
  • REDACTED :joy:
  • And, yeah—“support for multiple regions”[5]

There’s obviously a lot more, and—I hate to say it—many of these might never see the light of day.

Further, there’s also a looming laundry list of maintenance items I didn’t include here that have to take priority, because they’re likely to become full-on emergencies that could stop Capo from functioning, or possibly hinder the delivery of the above features to the App Store. Also, many of the above items be possible until certain demons are exercised from Capo’s code base, which is now more than 15 years old.[6]

Still, I’m very much here for attempting to fulfill all these wishes, because I’m very passionate about what Capo is all about—supporting the most effective way of learning music, by ear.[7]


  1. Capo would no longer build or link correctly, causing it to crash on launch for a large number of users on older versions of macOS. One could argue this was a bug in older versions of Xcode and macOS that allowed me to do something that shouldn’t have worked at all. Only a combination of Xcode 14 fixing that loophole, plus macOS Ventura being a little bit more selective, forced me to adopt a far more complicated method for supporting earlier versions of macOS. ↩︎

  2. Personally I find this one weird, because of how Capo’s estimate is an average, based on beat marks that often get faster or slower as the song moves forwards. ↩︎

  3. When a recording is more than a quarter of a step out of tune (cough most popular AC/DC stuff cough) the chord detection is (understandably) thrown off a whole lot. ↩︎

  4. It’s a long and stupid story why this is hard, but basically it’s because I want this to work well, and not just be a screenshot…Also? Both platforms. :roll_eyes: ↩︎

  5. I quoted this, because the full extent of what I want goes well beyond what you may think. :shushing_face: ↩︎

  6. 2009 Chris was so stupid in many of his decisions and designs. If only he could have predicted the future: the iPad, Apple Silicon, the introduction of Swift, Apple switching to yearly, effecitvely forced OS releases, subscriptions, streaming music, etc. (He probably should have bought some AAPL, too…) :stuck_out_tongue_closed_eyes: ↩︎

  7. If you play any kind of pop music, it’s basically the only way you should be doing it. This is a major component of my grad school research, and I hope to share more of what I’ve been learning about all of that soon. ↩︎

1 Like

Hey Chris,

Thats really really good to see! I’m sorry if I was an asshole about it but this was all invisible to me. I’m invested in Capo in terms of time and effort and it’s my go-to tool of choice. I want to see Capo stay modern, functional, easy to use.

I’m really encouraged by what you have, and I look forward to seeing these features and improvements make it into Capo!

Thank you very much,

James

I think there are a few reasons companies don’t like to reveal their future plans. First, is that they can change depending on what they encounter during development, disappointing or frustrating customers. Second, people will hold off on buying [shipping product] because they think they’d rather have [yet-to-be-released product] (this is more often seen with hardware or say, cars than software, but it can happen there, too). Third, it can give their competitors a leg up on their own products (that is, steal their ideas).

I think Chris is mostly dealing with the first one. I appreciate him sharing what he’s thinking (except for REDACTED :stuck_out_tongue_winking_eye:) and I for one won’t hold him to anything except generally keeping Capo working and adding what he can when he can. I appreciate what he does!

Hah—I added the REDACTED items because—if I put them out there in the public—I would absolutely destroy the already-slim chance of those features from ever seeing the light of day. :smiley:

To be completely honest, these specific ideas aren’t fully fleshed out yet. I even built a full prototype of Capo that contains one of them way back in ~2016. The screenshots of those prototypes would drive some folks absolutely mad with excitement, but in real-world use I had to be honest with myself—it was utterly painful to use in practice, and carried an overly complicated mental model for the user to juggle[1]. Years later, I’ve still not figured out a better way to pull it off. (Once bitten, twice shy? :man_shrugging:)


  1. Pro tip: If you struggle to write a few paragraphs that explain how to use a new feature, that’s a pretty strong sign that you’ve bungled something badly along the way. ↩︎

I’m curious, do you consider that the fun part or the annoying part of being a developer? :wink:

I was only giving you a hard time about REDACTED. Thanks for sharing your experiences though.