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 4 comments in our discussion thread.

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

Announcing Nightingale 1.12

We’re pleased to announce that Nightingale 1.12 is finally available for download! Existing installations of the last release version of Nightingale (1.11.0) will give you the opportunity to automatically update – this will be the first time we’ve ever used our update system. It may or may not work depending on your OS, and how you have Nightingale configured. We hope everything works great, but if it doesn’t let us know, and grab a regular build.

What’s new?

Most importantly, we moved to a cleaner backend. For you, that means Nightingale is more stable; on Linux, it means you use more of your system’s own libraries. This release also brings us closer to using more recent libraries. Behind the scenes, we’re already planning the next release which will use a current xulrunner, delivering more features and performance. Such an upgrade is a very large project, and as such we could use more developers. Feel free to pitch in!

We have also cleaned up our installer for Windows, which no longer requires administrative privileges. We  moved it to a completely new backend and designed it to be much simpler from the developers’ point of view. Working in the old system was quite a pain!

Another platform specific change is LookingMan’s Unity Integration – Nightingale is now able to integrate into Gnome and Unity audio menus and notification systems, a much requested feature that we are very happy to have available for you.

Independent of your platform, there are a number of new and ported addons, some from Songbird, others from scratch. One new addon includes GeekShadow’s fixed and updated port of the SoundCloud addon, a feature any self-respecting player should have.

While we work on version 2.0, this release should last for a while. A large reson being the last big change between 1.11 and 1.12: we fixed tons of issues. From crashing issues on Windows and Ubuntu to cosmetic issues like Nightingale opening with an empty tab – this new version fixes many old issues. We have also improved the branding a bit, updated the locales and made some tweaks – read a full list of changes in the Changelog.

We hope you enjoy the new version; update or install it and enjoy some music! We’d love to hear your feedback in the forums or on the IRC channel, #nightingale on moznet. We’re always 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

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.