Happy Thanksgiving! I’ve done more work than I realized over the last few months. Changes include:
I rewrote most of the playlist code to use a std::vector instead of a linked list. The class is much simpler now and should be easier to maintain going forward.
Switch to gstreamer 1.0.
Added sort and random buttons to the UI and rip out extra playlist types.
Command line completion for ocarina-* commands.
Various other cleanups.
You can get it here. There is a PKGBUILD available here.
This release took a few months longer than I was planning on, but I put a lot of work into making ocarina easier to use. I started off writing my own linked list class to use in playlists, but the interface still needs work so I haven’t started using it everywhere.
Something I didn’t plan on doing was rewriting the entire UI… that’s really what took the longest. I had some messy, hand-written code for showing the application and it wasn’t easy to work with at all. I dreaded adding new features or cleaning any of it up because something might break. I knew I would have to rewrite most of it eventually anyway to work on some UI changes that I planned on making, so I decided I would try to make future edits as easy as possible. I found GtkBuilder and the Glade UI designer and then spent several weeks cutting out old code and making everything work with this new system. I think the end result was worth it!
New features in Ocarina 5.10 include:
– Move playlist close button into the tab page because tabs were growing too wide.
– j/k keys move the currently highlighted down or up (vim style!).
– d deletes selected songs from the current playlist.
– Now playing and the AutoPause / Library / Settings notebook share space, everything in a single notebook resulted in a lot of wasted space.
– Users can manually hide the Recently Played and Banned tracks lists from the Settings tab.
You can get it here. There is a PKGBUILD available here.
New features in Ocarina 5.9 include:
– Reordering playlist tabs to change where the next song is picked from
– Close button on playlist tabs
– Reworked the entire build system
– Keep a play count and remember the date songs were last played
– “Ban” songs from playing in the library
You can get it here. There is a PKGBUILD available here.
Just released Ocarina 5.6. New things include:
– Backend alsa is optional
– Output to other alsa devices
– git-ish commands (`ocarina play`, `ocarina pause`)
– Tooltips showing filepath of hovered song
You can get it here. There is a PKGBUILD available here.
I’ve been sitting on Ocarina 5.5-rc for a while now without finding any serious bugs. When I compiled without the -g flag to g++ a few weeks ago there was a segmentation fault when reading in save files. This problem seems to be gone now, so hopefully it was a g++ error (I have no idea what else would cause it…).
New features include:
– Fairly big cleanup of the entire backend
– Queue is automatically saved across sessions
– Songs can be removed from the queue
– Faster library scanning
– Library update removes tracks that no longer exist
– Gapless playback using gstreamers “about-to-finish” signal
You can get it here. There is a PKGBUILD available here.
Ocarina 5.4 has been released. You can get it here. There is a PKGBUILD available here.
New features include:
– Library filtering
– Playback queue
– Pause after current song
I’m doing a feature freeze for the next release or two so I can clean up the code and make everything easier to work with. I also have ideas for how to make library scanning more efficient.
I’ve decided against implementing playlists for Ocarina 5, mostly because I don’t use them. I listen to my entire library on shuffle, so the only playlist I ever create is an exact copy of the library. It takes extra work to keep this playlist up to date, especially since I never took the time to easily show the difference between playlists and the library. I usually ended up clearing the entire playlist, and then readding every song from the library. This is unnecessary for how I listen to my music and avoiding the hassle is what Ocarina is all about.
I do plan on spending time bringing some of the benefits of playlists to a library-only world. Ocarina has always had song filtering, but I’ve only ever implemented simple keyword matching with regexes. I think that I should spend time developing better filtering rules. Specifying “artist contains ‘foo’ or artist contains ‘beatles'” directly in the library display would be more useful. I might even try to implement automatic filters for artist, album, genre, and year tags. Saving user defined filters would be useful, too…