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.

MPRIS

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.

Happy Nightlies! (Updated 2/13)

 “Nightlies” are builds compiled every night, more information on Wikipedia : http://en.wikipedia.org/wiki/Nightly_build
Since the beginning, there were Songbird nightlies available to test out new features and develop add-ons for future versions. There were both branch and trunk builds released each day – later they decided to only provide trunk builds. As of now they seem to build branch builds again for version 2.1.0.
Nightingale’s case is particular, we didn’t have build servers like POTI does when starting the project. Fortunately, we are now setting up buildbots to compile and upload nightly builds every day, if there are changes in the source code.
To begin with, three build servers are provided by Antoine (GeekShadow):
  • GNU/Linux, Ubuntu 12.04.1 i686 → .tar.bz2
  • GNU/Linux, Ubuntu 12.04.1 x86_64 → .tar.bz2
  • Microsoft Windows Server 2003 x86 → .exe (Inno Installer) and .zip

One is provided by Matt (ilikenwf):

  • Mac OS X 10.5.8 and greater → .dmg
All servers are located in France, except for the Mac, and are set to upload builds to SourceForge: http://sourceforge.net/projects/ngale/files/trunk-Nightlies/

For now we are only building the sb-trunk-oldxul branch which is version 1.12 but matches Songbird trunk (2.2). We chose to rename to version  to “1.12″ mostly because there are no major changes between the Songbird trunk (2.2) and 1.11 since POTI is mostly bumping up the version numbers for their closed-source work.

Some technical notes :
Unlike Mozilla and POTI, we have decided not to use Buildbot since it’s much too complex for our needs. Instead, we are using our own bash scripts available on GitHub. They are easy to use and modify :)
More information can be found on our wiki :
Whether you’re a developer wanting to build the next generation of add-ons or a user not afraid of the freshest and sometimes very unstable changes,  Grab a Nightly Build and let us know what you think!

Merry Christmas from (and to) The Nightingale Team!

New (old) Hardware

I recently purchased an old 2006-era Mac Mini for our development, so that I could make sure and get a more proper Mac build out for our next release. I’m happy to say that after setting up the build environment (and reinstalling OSX once the machine arrived, as I trust no eBay seller to do that part for me), I have most of the Nightingale build dependencies built fresh.

2006 Era Mac MiniNew Mac Testing Build

I’m still fighting with XULRunner to get it to build under OS X. That said, I did compile the new TagLib, so I was able to cobble together a current trunk build for all 5 of our Mac users out there (j/k, we have at least 7 Mac users :P). You can download the testing build here. I’d love to hear of any issues you run into, as I’m using a different compiler – the vanilla gcc 4.7 – to build the dependencies and client this time around. It should provide for smaller, faster, more efficient code.

Gearing Up For A New Release: 1.12

In other news, the team and I are all working hard to get the polish all together for a 1.12 release here at the beginning of January. Short of fighting to get the FLAC albumart display working, we have a lot of great changes, as well as more stability across all our platforms. On Linux especially, we have more system integration, and only have to rely on XULRunner and SQLite as precompiled dependencies. The release after next should do away with those altogether.

New Year’s Parties – Use Nightingale, Tell Friends!

We hope you had a Merry Christmas, and happy holidays all around. Furthermore, we all wish you a very happy New Year! Make sure to use Nightingale to play the music at your New Year’s parties, and show it off to your friends! Our resolution is to make Nightingale the best desktop music player out there, and to have more people use it as well. We can’t do that without your help, so please, make sure to help us get the word out!

Discuss!

Feel free to talk about the player, discuss the Mac build, or even just let us know your New Year’s resolutions in the comments, jump into the forums, or chat with us in #nightingale on irc.mozilla.org.

Nightingale 1.11.0 – Our First Official Release!

We’re happy to announce the release of Nightingale 1.11.0 for Linux, Windows and (drumroll, please…) Mac OS X! You can download this new release from the front page. If you choose, you can also build it yourself by checking out the source from GitHub or Sourceforge and running build.sh.

What’s new?

  • Based off of the latest Songbird changes, providing better performance
  • Uses the more recent Gecko 1.9.2
  • Play Queue functionality is now implemented
  • The feather has been refreshed by GeekShadow, as designed by Manko10
  • Update functionality – get future releases automatically
  • Build system improvements
  • Various other bugfixes – see the git logs for a complete list

Add-ons

We have already ported many of the available add-ons, others will follow. We did some changes on the underlying interfaces, allowing Songbird add-ons to be ported with just one little modification. Ported add-ons can be installed into both Nightingale and Songbird!

We welcome any addons you port yourself to be added to our addons page – just let us know on the forums, or here in the comments!

Migrating From Nightingale 1.8

If you already use the old 1.8 version, there is no update available – we apologize. In fact, since it was a developer preview, you need to first uninstall it and then install 1.11.0. Note that a new profile will also be created to avoid any collisions, meaning your old one will be wiped out.

If you want to keep your ratings and preferences, you should transfer them with the RatingFile (for 1.8) and BackupBird (for 1.8) add-ons, which are both available for 1.8 and 1.11.0. Install the extensions in 1.8 and use them to export your preferences and ratings. Then, proceed to install 1.11, install the addons, and import the settings you exported from 1.8.

Migrating from Songbird

If you currently use Songbird, now is the best time to transfer your Songbird profile to Nightingale. This functionality will only be available until there are divergences between Nightingale and Songbird in terms of the formats used to store your profile data. This means that you should migrate from Songbird before it becomes difficult or even impossible to do so upon future releases of Nightingale!

Join Nightingale – Users, Developers, Testers, Doc Writers Wanted!

Again, we’d like to ask you to become an active part of the Nightingale community. You don’t have to be a geek and/or coder to join us, we’re looking for people providing bug reports, adding ideas, and writing documentation. In terms of getting more developers, we’re especially looking for people to help out with the upcoming update to Gecko 6. Please check out the forums, or join us in #nightingale on irc.mozilla.org. In terms of the languages we need developers for, we use C++, Python, Perl, Xul, JavaScript, and CSS on the player, but we also need PHP developers willing to help us build our addons platform, featherweight, and maintain other pages. We’re growing and always looking for your help!

Build Your Own Nightly

One final note is for those of you who are brave – you can start checking out and building the sb-trunk-oldxul branch, which is a working 1.12.X (Songbird concurrent) branch for our next release. Of course, we’re still working on upgrading our Gecko version (non working as of yet, see the master branch), but we’ll be doing a few more 1.11.X releases before we achieve builds that use newer Gecko versions. To keep those of you who want the bleeding edge happy, the sb-trunk-oldxul branch is the one for you!

As building for Windows is quite tricky, we set up a step-by-step tutorial in the wiki to help you to get started. We’re looking forward to build tutorials (and distro specific packaging guides) for Linux and Mac as well. Feel free to contribute to the project by writing one after you succesfully built Nightingale yourself.