February and March half-time Progress Report

Hi again and thanks for checking in!

February has been a busy month that saw a lot of progress on Colibri 2.0 – this was the time when most of the things mentioned in the previous report have been implemented and polished.

Along with those, there were some notable changes that I feel like pointing out:

  • Preload trigger logic has been redone to fire under all known conditions (for gapless playback)
  • Title bar should properly re-align itself to be in center at all times, without any jitter
  • Drastically reduced draw calls to the Title Bar update methods which should save anywhere between 1-1,5% CPU on slower Macs
  • UI elements such as buttons are now properly vector-based and draw themselves accordingly
  • Fixed two crashes that belonged to FLAC embedded album art reading and playlist row drawing
  • There is now a giant “emphasised” clickable play/pause button that reflects the playback state and is essentially showing the reverse as to what the usual play/pause button shows: the idea is that pro and theatre environments need clear and distinctive state feedback even from further away. This has been asked of me multiple times and it is now coming with the update. It is switchable with the default option being ‘off’. Check it out at the Playlist settings!
  • Network streams will now properly show the bitrate of the stream being played
  • The playlist grid color bug that was reported a few weeks back has now also been resolved
  • …and just a few minutes ago I’ve finished adding Default System Output support! You can now have Colibri use and follow the audio output device set in System Preferences > Sound > Output or using the Speaker icon in the Menu Bar of macOS at the top of the screen. This has been long time coming and was quite a challenge: as you know, Colibri does automatic sample rate switching and while the ‘Default’ audio output has been available for some time, the moment you select it as the desired output most of Colibri’s internal logic simply goes off the rails. Why? It is really simple: the ‘Default’ audio output device does not report supported sample rates (frequencies), which means Colibri is not able to switch the rate as the currently (and upcoming) song requires it to do so. It also has no ‘driver’ descriptor so essentially CoreAudio reports nothing about it. Ultimately, had to think a bit outside the box for this one but I’m happy to report that based on the tests I’ve been doing up until now, the ‘Default’ output works as expected with automatic sample rate switching! And yes, switching to your AirPods or other wireless headphones during playback does work without issues.
  • As an added benefit, the work that went into the ‘Default’ audio output demanded that I re-engineer the sample rate switching logic and thus for ‘regular’ users the sample rate switching should be near-instantaneous – as there are some ‘slower’ DACs that take almost a second to switch sampling rate with the older implementation. So whether you consider using the ‘Default’ output device or not, this is a win-win for everybody!

As for the dreaded question: when will I release the update? There is still a bit more work to be done on the Output section of Colibri’s Preferences that involves mainly the per-device profile implementation. I’ll be sure to post when I wrap that one up – please bear with me!