• Ocarina 5.11

    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.


  • Ocarina 5.10

    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.


  • Ocarina 5.9

    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.


  • Ocarina 5.6

    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.


  • Ocarina 5.5

    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

    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.


  • Ocarina 5.3

    Ocarina 5.3 has been released. You can get it here. There is a PKGBUILD available here.


  • Goodbye playlists… hello better filtering

    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…


  • Hello world!

    I expect that I’ll use this site for writing about more than just Ocarina.  We’ll see.