Colibri 3- upcoming update

The next version of Colibri – dubbed version 3.0.0 – is still in development and no, it hasn’t been abandoned; it’s aimed for release in the coming months.

The main reason for the very long delay is a sum of multiple things, the biggest of which is what Swift 6 and SwiftUI have brought to the table. Colibri was started back at the tail end of 2016, when Swift 3.0.1 had just come out, and to this day it still uses UIKit with Storyboards. This has worked mostly fine up until now, but it’s been showing its age, and it’s time to take the next generational step forward.

Along with these changes, Intel support will end this year: macOS 27 will be the first major version of macOS that only runs on Apple Silicon – Rosetta 2 support will supposedly still be there, albeit partially, but it is unknown if Colibri will function properly with it.

Colibri relies on a few external modules that need Rosetta 2 to function. Two examples, among other structural building blocks.:

  • ZXTune, which provides a vast amount of chiptune/mod/tracker music support
  • BS2B, which lets many users listen on headphones without becoming nauseous

Since these modules don’t have proper Apple Silicon binaries, I took it upon myself to dig in and rectify the situation – which, honestly, turned out to be biting off way more than I could ever have predicted I’d need to chew.

In the end, though, I built the missing pieces myself and in doing so closed the gap and updated the module from its upstream source. The results:

  • ZXTune jumped from a “frozen” 2018 state to a fresh build from just a few weeks ago – a plethora of bug fixes, improvements and new format support, all carried over while being completely native to Apple Silicon
  • BS2B now builds in seconds and uses next to no processing power

That said, my aim is to retain the current look, feel and capabilities of Colibri as much as the new frameworks allow – the goal is preferably a seamless update, where the end user might not even realise it has happened. Sandbox bookmarks are a bit rough in that regard; I’ve had plenty of problems with them in the past, but I’m hoping that this time around, the current implementation will let them stay nothing more than an unpleasant memory.

Colibri will ship with Intel support for as long as Apple lets me upload a Universal Binary to the App Store.

And one more thing: Colibri is buy once, own forever – all updates are free of charge, including major versions like this upcoming version 3. I’m still baffled I have to say this.

Colibri 2.2.0 is now available

Thank you for using Colibri! This update fixes many reported issues and thoroughly cleans up the birdcage. Happy listening!

Fixes:

  • an audio hiccup that could occur during song transition in CoreAudio mode
  • DSD song change in PCM data sending mode doesn’t apply EQ settings
  • DSD song change in PCM data sending mode lowers the system volume
  • playing a DSD song after a non-DSD song in DoP/DoPA data sending modes can cause noise to be played
  • seeking using the left/right arrow keys can sometimes fail when a DSD song is played in DoP/DoPA mode
  • multiple crashes during song loading while AirPlay mode is active
  • multiple crashes when adding many folders at once from different storage media
  • folders with multiple nested levels of Cue Sheets don’t load recursively
  • when Cue sheet reading fails, the fallback folder reading isn’t triggered
  • files without file extension are loaded when adding a folder
  • adding a Cue sheet after restarting Colibri can mess up previously added Cue sheet song processed metadata
  • when file metadata reading fails (or if it is empty), the filename is not shown
  • multiple Sandbox related issues

Updates:

  • FLAC module to 2.4.5.4
  • WavPack module to 2.4.7.4
  • Cue sheet processing now uses multi-pass file encoding detection
  • reduced memory usage during AirPlay loop ‘current song’ mode
  • removed deprecated CoreAudio calls
  • Sandbox bookmarks are now refreshed when becoming stale

As usual, it might take a few hours for your Mac to pick up the update – you can do it manually by visiting Colibri’s page in the Mac App Store app.

AppStore review time from upload to verified took around 1 hour 🎉

Colibri 2.2.0 Changelog

Fixes:

  • an audio hiccup that could occur during song transition in CoreAudio mode
  • DSD song change in PCM data sending mode doesn’t apply EQ settings
  • DSD song change in PCM data sending mode lowers the system volume
  • playing a DSD song after a non-DSD song in DoP/DoPA data sending modes can cause noise to be played
  • seeking using the left/right arrow keys can sometimes fail when a DSD song is played in DoP/DoPA mode
  • multiple crashes during song loading while AirPlay mode is active
  • multiple crashes when adding many folders at once from different storage media
  • folders with multiple nested levels of Cue Sheets don’t load recursively
  • when Cue sheet reading fails, the fallback folder reading isn’t triggered
  • files without file extension are loaded when adding a folder
  • adding a Cue sheet after restarting Colibri can mess up previously added Cue sheet song processed metadata
  • when file metadata reading fails (or if it is empty), the filename is not shown
  • multiple Sandbox related issues

Updates:

  • FLAC module to 2.4.5.4
  • WavPack module to 2.4.7.4
  • Cue sheet processing now uses multi-pass file encoding detection
  • reduced memory usage during AirPlay loop ‘current song’ mode
  • removed deprecated CoreAudio calls
  • Sandbox bookmarks are now refreshed when becoming stale

Colibri 2.1.9 is now available

Thank you for using Colibri! This is an emergency update that fixes the crashes introduced in the previous version. Really sorry about this!

Fixes:

  • Colibri would crash on a Song change
  • Colibri would crash when reaching the end of the Playlist

Remarks:

  • Built with Xcode 14.3.1

As usual, it might take a few hours for your Mac to pick up the update – you can do it manually by visiting Colibri’s page in the Mac App Store app.

Colibri 2.1.8 is now available

Thank you for using Colibri! This update fixes an annoying Playlist bug and addresses memory related issues related AirPlay playback mode. Happy listening!

Updates:

  • FLAC module updated to 2.4.5.2
  • OPUS module updated to 2.4.2.4
  • HLS module updated to 2.4.4

Fixes:

  • A memory leak could occur when playing AirPlay songs with preload enabled
  • A memory usage spike could happen when the play button (or Return hotkey) was pressed many times in quick succession while AirPlay mode was active
  • A race condition bug could prevent Colibri from gaplessly proceeding to the next Song in AirPlay mode under high system load
  • Re-ordering Songs above the currently playing Song could cause the Playlist to mark a different Song as being played

Remarks:

  • Built with Xcode 15.0

Colibri 2.1.8 Changelog

Updates:

  • FLAC module updated to 2.4.5.2
  • OPUS module updated to 2.4.2.4
  • HLS module updated to 2.4.4

Fixes:

  • A memory leak could occur when playing AirPlay songs with preload enabled
  • A memory usage spike could happen when the play button (or Return hotkey) was pressed many times in quick succession while AirPlay mode was active
  • A race condition bug could prevent Colibri from gaplessly proceeding to the next Song in AirPlay mode under high system load
  • Re-ordering Songs above the currently playing Song could cause the Playlist to mark a different Song as being played

Remarks:

  • Built with Xcode 15.0