Upcoming update

Hi everyone, thanks for checking in!

As most of you are aware, Colibri is currently undergoing a really heavy rewrite: a new, modern architecture was made to better accommodate the new features and upcoming operating systems while greatly increasing the stability. These are grandiose words, but in reality it all means that since starting Colibri I’ve learned constantly and am putting in my best effort to reflect on these past experiences and knowledge with this update.

At first I constantly updated the FAQ section to let people know that I am still working on it and I haven’t abandoned the project. It is understandable as the latest update happened many months in the past. I’d like to take the time and emphasise it once more: Colibri is a labour of love, a passion project and is done by solely me in my free time – although I’m devoting it way more energy and time than some would consider healthy, I firmly believe that the end result will most certainly justify this. At the end of the day, I also use it on a day to day basis and it also bothers me that the update is taking this long.

Why is it taking this long? Apart from it being nearly as much work as writing a completely new version of Colibri I also did the mistake of biting off more than I can chew in a feasible amount of time. I did identify a handful of bugs related to the architecture and the way I wrote Colibri back in the day and instead of hacking around (and possibly introducing new bugs) I thought to have a clean slate with more future-proofing in mind. This, as a kind fellow pointed out, is also a “siren’s call” as more often than not it happens that one set of bugs are fixed and a new set is introduced instead. What can I do to prevent this? Doing my absolute best from start to finish and use all the tools available to me to ensure such scenario does not come to pass.

But enough with the words as writing this takes time away from developing the update, so without further ado, here are the status updates from oldest to newest, scroll to the bottom for the latest!

TL;DR: I’m still working on the update, see the latest status update below.

01/05/2020: it is a massive rewrite and needs lot of testing, adjustments and making sure that it will remain as compatible with your current settings as possible.

20/05/2020: still heavily working on it, have uncovered some additional sample rate switching issues, mostly affecting pre-load. Fixed a handful of bugs relating to Sandbox and Network Stream support. I still estimate a good few weeks as I would like to release an update that is stable. Currently, I’m at around 9,000 lines of code changes and counting.

04/06/2020: going strong with the rewrite, uncovered a latency issue with external DACs – have an experimental solution to it, just need to stabilize it. Also had to write a wrapper for CoreAudio.

25/06/2020: one major issue Colibri had with audio clicking on some DACs during song switching and pause is now fixed, the CoreAudio wrapper seems to eliminate the hickup frequency switching caused under a lot of circumstances.

05/07/2020: fixing smaller user-reported issues and doing a bit of an overhaul for the Settings view. I aim to release it as fast as possible but at the same time I’d also like to be sure that it was worth the wait, so please bear with me!

31/07/2020: I’m not on vacation and am actively working on the update. I’ve finally found why some of you experienced the inability of your Mac to sleep while Colibri is running, even if music isn’t playing. I’ve ended up writing a tool to help test my theory and it might end up in the AppStore after a bit of polish. So yes, work is being made – your patience is much appreciated!

13/08/2020: Checking the reported crashes so far and making sure they do not come up after the new update – so far so good. Rest assured, I’m working on it as much as I can.

24/08/2020: Volume changes are now properly shown in the title bar – it supersedes the “gray capsule-looking notification bar” that appears at the bottom of Colibri’s window. Right now I’m putting on the finishing touches to some RAM-related new features – a fresh take on a somewhat usual and heavy-requested feature. I really hope you’ll like it!

27/09/2020: Still working on the update, had a somewhat new idea regarding the feature I’m working on. I think I now also know why I haven’t seen this implemented in a lot of players. Stay tuned, I’m not quitting any time soon!

02/11/2020: Now Colibri can properly extract cover images from DSF files and other exotic formats, before resorting to supplied images in the songs’ folder. Fixed permanent pause and output switching bugs as well and the annoying Sandbox window for album art loading is now officially gone. There are still a great amount of work left to be done so bear with me, I’m sinking all my available free time into it to make your wait worthwhile.

01/12/2020: Still working on the update! I’ve got a two bug reports which are now also fixed. Also to the best I can test, the popping sound during pause/unpause of DSD streams is now fixed along with other clicks that could be heard while using an external DAC. I’ve also added extra methods to better accomodate AirPods and AirPods Pro compatibility – sadly, the automatic mic switching can still cause an initial quality drop when starting playback (as a result of the Bluetooth standard).

05/12/2020: The OS X 10.10.5 display bug has been fixed and will be part of this update, hang tight!

Colibri 1.9.1 Changelog

ENHANCEMENTS

  • Updated codebase to Swift 5
  • Settings -> Output now better fits all kHz entries
  • Volume is now automatically raised to 100% for DSD files when DoP/DoPA mode is selected and restored to previous volume level for non-DSD files (and PCM mode)
  • Unsupported DST encoded DSD and DTS encoded WAV files will now show proper Unsupported Codec error messages
  • added an alternate fallback method for Automatic Sample Rate Switching for stubborn DACs (Colibri uses it automatically when needed)
  • Finder sorting order is used to enqueueing files to the Playlist
  • Playlist will be rendered with system default monospace font when available (macOS 10.11 and up)
  • added a ‘Use Default SoundFont’ option for MIDI files to the right-click context menu of the Playlist
  • removing the default SoundFont will automatically set the next available SoundFont as the default
  • if the SoundFont list is empty, then the first SoundFont will automatically be marked as the default
  • removing a SoundFont only causes playback restart if the currently played song is affected by the removal
  • importing a new SoundFont will automatically set it as the default
  • new switchable option in Settings -> Playlist: “Dragging to the Playlist via Mouse / Trackpad”:
    • songs will be added at pointer position (insert)
    • songs will be added at the end of the list (append, like before)
  • added ‘Permanent Pause’ to Settings -> Behavior (Off, by default):
    • pause will ‘hold’ until the Play button is pressed again
    • switching to a different song will ‘arm’/prepare the song for playback
    • seeking repositions the playhead and it will play audio from the selected spot once unpaused
    • removing songs from the playlist does not affect the paused state
  • added ‘Auto-Play’ to Settings -> Behavior (On, by default):
    • On: Colibri automatically plays the next song
    • Off: Colibri stops when the current song ends
  • Playlist Columns have been rewritten from scratch for improved stability: see Settings -> Columns
  • Columns are now sortable:
    • click on the header once to sort playlist by that column
    • clicking once again switches between Ascending/Descending sorting
    • sorting is supported across all columns
  • added new Columns:
    • Length, kHz, Codec, Year, Track Number, Disc Number, Composer and Bit Depth
  • Playlist Columns can now have vertical and horizontal Grids:
    • they help in finding the columns boundaries during reordering and resizing
    • Grids can be toggled on/off in Settings -> Themes
    • a color picker has been added to Settings -> Themes for the Grid
  • new Loop option ‘Random Round Robin’ in Settings -> Playlist:
    • each song in the Playlist will be played once per “round”
    • when all songs were played once, a new “round” begins
    • removing a song causes the “round”
    • double-clicking on a song does not reset the “round”
    • a great way to have a balanced, random playback order
  • monospace system fonts are now used in both the Title bar and Status bar (10.11 and up)

BUGS FIXED IN THIS UPDATE

  • Colibri would not display its’ name in the Force Quit and Activity Monitor windows
  • Colibri would prevent the system from entering sleep state
  • Colibri would fail to play the upcoming song under very high system load
  • Playhead wouldn’t always continue from the same spot on output device change
  • Playlist would have a weird glitch on startup
  • Force Sample Rate would cause crash on startup
  • Online Streams wouldn’t always start playback
  • Random playback order would sometime cause Colibri to crash
  • BS2B and EQ profiles wouldn’t property restore on next startup
  • After starting Colibri, the playlist would become disorganized/chaotic if files had gone missing since last start
  • Automatic Sample Rate Switching wouldn’t always switch properly after the end of the playlist had been reached
  • Menubar Controller didn’t always refresh the data on song change
  • some built-in Audio DSP hardware wouldn’t switch sample rate properly (mainly newer MacBook Pros)
  • SoundFonts won’t always properly reload on next launch
  • SoundFonts won’t properly switch on a per-song basis
  • custom SoundFonts could disappear from the SoundFont list
  • setting a custom SoundFont as default wouldn’t always save properly
  • network streams won’t trigger a ‘Problem calculating song length’ error
  • Menubar Controller properly shows Light/Dark control buttons as per system theme
  • Colibri could crash by clicking on the EQ button while the Playlist is empty
  • moving multiple songs in the Playlist at once could cause titles to be become disorganized
  • dragging files / folder to the dock would not be added to the Playlist properly
  • Colibri could crash on El Capitan 10.11.6 when switching between Dock and Menu modes
  • added missing keyboard shortcut to DSD output mode menu
  • About Colibri window didn’t properly switch the Light logo in Dark Mode
  • Theme import / export buttons wouldn’t properly spawn the browser windows
  • Pressing Return on an empty playlist could sometimes cause crash
  • Pressing Return while nothing is selected in the playlist could cause crash
  • Color Pickers in Settings -> Themes should now behave as expected of them

Thank you Henning Gärtner for all-around essential feedback and testing, Rick Ernsting for feedback on the SoundFont issues!