(Not at all Monthly) Community Update #3

After being asked if we are re still alive a few times on twitter, we decided that it is time for another one of our nearly monthly community updates.

Git build numbers and other tweaks to the build process

In addition to a lot of tweaks to the building process from djcj, we’ve also got a patch ready to make the build number helpful again. What this means is that we’ll exactly know what version of Nightingale you have when you report bugs or feature requests.

Moving and copying in play queue

queue_movePreviously the play queue would only let you copy tracks. Now, thanks to luisgmarine’s work you can move tracks.  If you press Control (or your OS’s equivalent of a copy key) you can copy and then paste the tracks.

Copying in playlists

playlist_copyPlaylists already showed the cursor for copying tracks when pressing Control on the keyboard, now they actually let you copy tracks in place.

Libnotify settings

Libnotify settings in the playback paneEver since we added libnotify support to Nightingale we wanted to expose preferences to disable it.  Now they are available in the playback section, if your version of Nightingale is able to show libnotify track change notifications.

Lastly, we’re currently discussing moving developer meetings to another day of the week. If you previously couldn’t attend the developer meetings, or if you plan to keep attending them, head over to the poll on the forum.

See you next month!

Got comments? Post them here!

New: Monthly Community Update

Default Nightingale Equalizer Presets

A few months ago we opened a poll asking you how you would like to get the newest news from the project. This post is the first of hopefully many to come. It’s going to be a quite big one, as it covers the last three months instead of just one month. If there won’t be enough content (aka no content) there will be no community update post.

This first edition is based on the last three developer meetings, so it’s a bit longer. Oh and yeah, we have monthly developer meetings on IRC now.

Remember that these are all things we are currently working on. Some of features mentioned bellow can already be tested in our nightly builds.

Nightingale command line helpCommand Line Playback Control

Remember the command line support extension for Nightingale (and Songbird)? Good news, that’s in Nightingale by default now! You can get an exact command set by typing nightingale -help.


Based on an old MPRIS extension for Songbird from loganfsmyth, freaktechnik added support for MPRIS 2. This allows Linux users to get information about Nightingale and control Nightingale via DBus. More information on the MPRIS implementation can be found in this wiki article. On the topic of wiki: we’ve found a way to fend of spam bots and as a result you get edit rights by default again!

Dock Actions on elementary OSMac & Linux Dock Shortcuts

We accidentally removed the Mac OS X dock playback controls in 1.12 when we upgraded XULRunner. Johnmurrayvi re-added dock support and added a mute/unmute item. Our default .desktop file for Linux now also contains the same actions as the Mac OS X dock, thanks to the CLI API.

Mac Extensions

Previously, a couple of issues with the old Apple Media Keys extension had been reported. Notably, there was a problem requiring the media key to be pressed twice in order for it to register. We’re happy to say that the “apple-mediakeys” and “apple-remote” extensions, originally written by whitedragon (Nick Kreeger) for Songbird, have been added into our repository and the reported issues have been resolved.

Default Nightingale Equalizer PresetsEQ Presets

Just recently freaktechnik landed the infrastructure and the UI for equalizer presets. Not only does Nightingale have a set of default presets, it also lets you save your own presets. But that’s just the beginning. It comes with a powerful API for add-on developers to create own preset sets, preset importers or any other equalizer preset related extension you can think of!

Tagging Issues

We’ve noticed a lot of issues popping up recently involving song metadata being read or written incorrectly. In our recent developer meeting during June, we discussed this problem and possible solutions. Since the meeting, new testing builds with a patched TagLib have been posted, as well as dependencies, to the patched-taglib-1.7.2-testing folder on our Sourceforge page. If you have experienced any problems you think may be related, give these builds a try. Please post any problems or comments (positive or negative!) about the builds in our forum, as we need feedback on the issue.

A Teaser for the Future

One of the biggest tasks Nightingale has set out to accomplish is updating the code so that it can utilize newer versions of the core XULRunner platform. Until now, Nightingale has relied on the 1.9 version, and updating any XULRunner application from 1.9 to 2.0 is significant step, requiring many changes, in and of itself. After an extensive amount of work, not only working on the Nightingale code, but also creating updated dependency packages, there are many signs of life from new builds based on XULRunner 9.0.1. The effort over the last year can be seen in the master-xul-9.0.1 branch of the repository, as well as the xul-9.0.1 branch of the dependencies repository. With all of these changes, the updated Nightingale builds on Linux, Mac, and Windows, and the core features are functional. The next task is changing the user interface code to provide the intended experience. For example, as seen below, the media library page has yet to be updated, and is currently inoperable. Still, even without the library page, the builds can play music!

win-xr9XULRunner 9 Build on Mac OS XXULRunner 9 Build on Ubuntu

In addition to using a newer version of XULRunner, the other dependencies are using their current stable versions as well. This includes Flac, libogg, libvorbis, libtheora, TagLib, and, most notably, GStreamer and the GStreamer plugins. The code for Nightingale’s mediacore has been updated to utilize the new GStreamer as part of the newer XULRunner builds.

developer.getnightingale.com screenshotDocumentation

We’ve finally been able to get documentation out of our code again, thanks to thebecwar. You can admire the doxygen based documentation on http://developer.getnightingale.com or build it yourself from our source, exact instructions can be found on the wiki. We’ve also started importing articles from the songbird wiki, so if you’re creating an extension, take a look at the recipebook.

An additional set of documentation has been add to the wiki as well, although it is still a work in progress. While the page on building Nightingale from source has existed for sometime, there has not been any information on building the dependency packages. This page has been created to help document the process, which can prove to be somewhat complex. The first section is intended for building the updated dependencies used in the master-xul-9.0.1 branch, while the latter section is for the current sb-trunk-oldxul branch. The dependencies currently used have proven to be a challenge, as they’re fairly dated, but they’re building on all platforms now, so the latter section will be updated with Linux and Mac instructions in addition to a finalized Windows page.

Finally, another key page has been created, involving in-line tasks from comments, such as “FIXME”, “TODO”, and “XXX”. This page lists the current task markers in the Nightingale code as of 2014/05/14.

Website Translation

While at RMLL freaktechnik and GeekShadow opened translations for the current firstrun, launch and dashboard pages plus the upcoming new main website. When writing this post there already is a French, Portuguese (Brasil), Spanish (Mexico) and a German translation. Those are nearly complete, however with each new Nightingale release we will add new strings for the changelogs, so you’ll never run out of strings to translate. To start translating, head over to the localization page on Babelzilla.

There are 5 comments in our discussion thread.

Nightingale at RMLL 2014 in Montpellier


The next RMLL (that’s Roncontre Mondiale des Logicial Libre or Libre Software Meeting in english) is coming up soon. It feels like Brussels was yesterday, however freaktechnik and GeekShadow will be at this year’s RMLL in Montpellier for Nightingale.

Compared to last year we won’t have a talk. We discussed possible topics and came to the conclusion that we don’t really have anything new to share worthy of a talk.

We will still have a booth for Nightingale, so if you’re from the area, please come and visit us! If you don’t have Nightingale stickers yet it’s the perfect opportunity to get some. We’ll also show off some things we are currently working on, if you’re interested. Or we can talk about music, listen to music and broaden each other’s musical horizon. If you always wanted to get into add-on development this is the perfect opportunity to get an introduction tailored to you. In other words we’ll sit down with any of you and talk about nearly whatever you want!

Got comments? Post them here!

Announcing Nightingale 1.12.1

Nightingale 1.12.1 is finally released! Existing installations of the last release version of Nightingale (1.12) on Windows or Mac OS X will give you the opportunity to automatically update to the new version. For Linux users the packages are updated; if you installed from a tarball on Linux you’ll have to update by grabbing a new one from the download page.

What’s new?

We cleaned up quite a bit: More legacy code from Songbird was removed or disabled, thus we expect the release to be more stable. There are also some bugs fixed, such as the Unity integration causing a crash in Ubuntu 13.04, battery drain in OS X Lion or newer and playback not properly updating the play counts.

As mentioned in a previous blog post, freaktechnik implemented some beautiful firstrun pages, which will present you changes after updates or overall information on the very first start. Through our newly introduced statistics page, this will also help us to track installations and upgrades to find update-related issues. Note that if you dislike the firstrun page, you can visit about:config and set the preference ‘nightingale.update.url’ to ”.

Additionally, GeekShadow implemented a new localization infrastructure and will contact past Songbird translators. He got rid of the last Songbird references, and thanks to our translators and reviewers many locales were improved quite a lot. However, there are still some locales without maintainers; and even if your locale already has one it would be great if you volunteer for proofreading and translating Nightingale’s strings! When updating, you may need to re-download the language packs for this change to take effect.

We also did some backend work switching to a new update infrastructure, as Google Code shuts down its downloads section. Updates are now handled through GitHub, where we also keep our main source code repository. An issue preventing Linux updates got fixed as well, so you should be able to auto-update from tarballs in the future.

As this is our first release after the shutdown of Songbird we replaced everything provided through Songbird infrastructure with our own services. To see everything we changed in 1.12.1, check out the official release notes.

The IDs of some add-ons changed, namely mashTape, SHOUTcast and Last.fm. This means Nightingale will find new add-ons and ask you, if you want to install them. Since the ID changed, they will not override the existing extensions. The previous versions of those add-ons will show up in the extensions manager as incompatible with Nightingale 1.12.1 and can be uninstalled.

Unity and libnotify integration have been split up into two optional components. Thanks to this the nightingale-nounity package now also includes libnotify integration. For those who don’t want, or can’t use our PPA, we still offer GNOME/Unity integration builds.


Enjoy the latest version of Nightingale, update or install it and listen to your favorite songs. We’d love to hear your feedback in the forums or on the IRC channel, #nightingale on irc.mozilla.org. As always, we’re looking for testers, developers, theme makers, and users to idle in our forums and IRC, not to mention help out with the project. Feel free to join!

Spread the word – and enjoy the tune of life!

– The Nightingale Community