Bookshelf Apps

SongBook Mac Beta 8

August 10th, 2010 0

We’ve just posted Beta 8 to the downloads page. This will most likely be the last Beta as we think that this version is quite stable now. We’ll just see how the testing goes and then all going well upload the final release shortly.

You can download from the usual location.

We’ve concentrated the testing on the media server and the iTunes server as these are the biggest changes.

What we’re doing about quality

August 10th, 2010 1

I know many users have been frustrated with the stability of the early 3.0 releases of SongBook DS. As is usual with these things there were not many bugs, but they were highly visible for some users. That and the delays inherent in the App Store release process made for a situation that was not very good. It’s not a situation that we want to repeat and has served as a strong sign that we need to change the way we manage releases.

In the past we had an easier time with releases as we had a smaller user base and a smaller set of supported devices. During the time of the 3.0.x releases we also had a few updates to Linn’s Cara firmware to deal with. In most cases we don’t get early access to Linn firmware updates so this can mean that sometimes we have some compatibility issues. We also had one major bug get through both our testing and Apples testing.

That’s the bad news. The good news is that with the 3.0.6 release (out a couple of weeks ago) we have eliminated most of the crashing bugs. We’ve still got further to go to reach our stability goals, but things are moving in the right direction. On our worst day we had 1.7 megabytes of crash reports on our server. The current daily report is 100k of crash data (52 crashes), so not perfect yet, but going in the right direction.

 

Complexity

SongBook is evolving in to quite a complex product. From a single source code base we now generate 12 different products. Some of these are not released yet, but every product means changes to the code base that need testing. We now have thousands of users, all with a slightly different network setup. Our release test plan (more on this below) now tests against 10 media renderer configurations, 4 OS/Hardware platforms, 5 media servers, and 27 functional tests. If we run a complete test this involves running 226 individual tests. Including setup time this takes many hours of work for each release.

 

What we are doing

We’ve been working hard putting new systems in place to ensure upcoming releases are much more stable right from the start. This is a huge task and we are only part of the way along implementing these processes, but this is what we have done so far:

1. Automated build and release process

Some of the issues we have had in the past have been because of mistakes in the build or release process, or due to testing a different build to what was actually released. We’ve implemented a completely automated build and release process to eliminate this problem. Builds are triggered by check-ins to our configuration management system and run completely unattended on a dedicated build server. We’ve also made lots of small changes in the code designed to increase reliability.

2. Issue tracking

We actually have had this for quite a while now, but our internal issue tracking system has played a core role in improving our internal processes. Issues in this system are tracked right through from configuration management to builds and releases. It’s one of the parts of the system that has worked out the best I think. We’re using Jira for issue tracking and release management. We found it much better to separate our issue tracking system from our support system, they really are for different purposes.

3. Regression Testing

We have a manual test plan in place for all releases. We’ve always had this but we have increased the number of tests substantially. We’re working on adding to these tests and to automating what we can. Also, because we are more formally tracking source code changes we have a better idea of what subsystems to concentrate the testing on.

4. Crash Reporting

We now automatically collect crash logs from our iOS applications. This gives us visibility of what is really happening, not just what is reported. It’s shown us that there are a lot of bugs that do not get reported. We analyse this data to find the most common crashes and work on eliminating them. This is not always easy as some of the bugs are caused by memory management issues that are not at all clear from the crash reports. The first few versions of the crash reports would also leave out critical information in some cases, so we have refined this process over time.

 

We’ve got a lot of work to do to finish this process, but it is already paying off and should only improve over time. This is really a natural progression from a one-person/one application development process to a larger business. As we continue to increase our product range and supported devices it will be essential to have these processes in place.

One of our fears with this change is that it would slow the pace of development down. There is a convincing argument though that it will allow us to increase our development speed as we are spending less time on resolving issues and fixing problems. Only time will tell if this is the case, but at least each release should be more reliable now.

Radio in Linn Cara 7 and later

July 13th, 2010 1

Linn have changed the way information is returned for Radio presets in Cara 7 and later. This has caused a problem with SongBook which was reported to us today. We’ve found and fixed the problem and will submit an update to Apple after release testing. This should be available in 1 – 2 weeks time. In the mean time if you use internet radio on your DS it would be better to stay with Cara 6 for now. Cara 7 has some useful updates that will help reliability on some networks, so it would be worthwhile to upgrade to as soon as the new release is out.

SongBook Mac has been updated today and the new version 3.0.0 beta 7 has the fix for this in place.

 

SongBook Mac Beta 6

July 6th, 2010 0

We’ve just uploaded a new beta version of SongBook Mac 3. It has improvements to the media server mainly, but there are some overall speed improvements and small changes that should be welcome updates. You’ll notice that the iTunes scan is now way faster, and there is a message in the status bar so you can see what is happening as the scan progresses. We’ve also added some improvements to the artwork views. If you noticed that your computer was quite busy with SongBook running, we’ve also worked on this and the CPU utilisation is still way down. And one small thing, we’ve added a column so you can see the format of tracks in the album listings.

 

 

 

Cara 7 update released, good news for SongBook users

June 22nd, 2010 2

Linn have just released a firmware update called Cara 7. This is an important one for SongBook as it has a change that makes the network eventing much more reliable. If you look at the release notes you may think that this is not a very exciting release, but if you use SongBook it is well worth the update.

We worked with Linn on making this change as we saw a lot of problems occurring due to network latency in the wireless network and specifically with the iPhone. We wrote a test application to record the latency of network messages and recorded the results over a relatively standard but busy network. The results were very interesting and showed that a longer timeout for messages was required. This will help the reliability of all control points that use network eventing (not all of them) so will be useful to most users.

For those interested in the details, the issue is to do with how UPNP sends network events. Events are things such as a track change, or play or pause being pressed, or the volume changing. In general SongBook needs to know about these things, so it tells the DS that it wants to know about these things through a process called subscription. SongBook subscribes to certain type of event messages on the DS. This is all standard UPNP by the way, theres nothing particular to Linn or SongBook here.

Now with the subscription in place every time something interesting happens the DS sends a HTTP message to SongBook to let it know. Normally this is fine and everything updates as it should. But if the message is delayed for any reason the DS detects this and cancels the subscription. SongBook has no idea that it missed an event message, or that it’s subscription has been cancelled and just thinks nothing is happening. Before Cara 7 the timeout was set to 100 milliseconds, reasonable on a normal network, but not so good on many networks out there. We regularly saw round trip times in our testing of much more than this, on a busy network maybe 5% of messages would take longer than this time, and that would mean a lot of cancelled subscriptions.

In Cara 7 this timeout has been increased (to 1 second I am told, but I have not confirmed this). In our testing of Cara 7 this has meant a complete elimination of dropped subscriptions. I can’t speak for all networks out there, but I think if you were to still see dropped subscriptions then there is something very wrong with your network and it requires some fixing up.

We deliberately try and make our test network a bit unreliable. It’s been very useful for catching bugs like this so while it’s tempting to fix it we do plan on leaving it as it is. All the flaws in our network are related to wireless, if you have a wired network with a decent switch then there is no chance of these kinds of issues arising. It’s worth making sure your wireless network is as fast as possible too. It’s not always possible to have a 802.11n only network as many devices such as iPhones and iPod touch’s still require 802.11b or g, but the day will soon come when everything is 802.11n enabled.

This also explains why some users were finding that SongBook worked more reliably when the beaconing interval on the wireless access point was decreased. Actually I’m not sure if they decreased it or increased it. If you decrease the beaconing interval then devices will associate with the network faster, and that will make waking from sleep on an iPhone work faster. If you increase the beaconing interval you reduce the network overhead and make the actual data transmission faster, which could also help out. Either way it did seem to have some effect on decreasing the latency in the network and would have reduced the number of cancelled subscriptions. The good news is that this sort of low-level network setup should not be required any more, which is how it should be.

iOS 4 and iPhone 4

June 22nd, 2010 0

We’ve concluded our testing of SongBook with Apples new iOS 4 operating system and on iPhone 4. SongBook is fully compatible with iOS 4, so you should be able to upgrade to the new OS release without any issues with SongBook. Multitasking works quite well, there is a small delay when you switch back to SongBook as it reconnects to network devices and updates the display, but it is quicker than starting up.

However there are some issues with the new iPhone 4, the current release is not compatible with this new device due to the larger screen size. We’re working to get a release out soon as these issues should be quite easy to fix up. Sometimes it takes some time to find the root cause of a layout issue as it’s not at all obvious.

Update 1: We have completed the changes for iPhone 4, but we’re going to wait until the current release is approved before submitting to Apple. This will delay the iPhone 4 compatibility by maybe a couple of days, but it will mean that the important bug fixes in release 3.0.3 will be out as soon as possible, hopefully the next couple of days.

 

SongBook DS 3.0.3

June 18th, 2010 9

We’ve just submitted an update to SongBook DS to Apple. This version is a mix of fixes and new features. Most importantly we have fixes for crashes with Linn UpnpAV support, Linn CD players and a few obscure crashes that we found through our new crash reporter system. The new crash reporter has been a huge success in revealing bugs, relying on people to extract crash reports and send them in was not really good enough to get a full picture of what was really happening. The crash reporter makes that process almost automatic, which means we see many more reports than we normally would. I know it’s not ideal to pop up a window with all sorts of obscure debug information for users to see, but we had to balance this with the privacy aspects of only sending information to our servers with the users permission. Not all developers take that responsibility seriously, but we think it is important.

We also fixed a few smaller issues with album art display and showing the bitrate and codec information.

There’s a few new features on the iPad version too. In this case a pictures probably the easiest way to show you whats new:

 

 

?

 

 

There’s some other small improvements too such as a mini album art view in the Zones view next to the ticker displaying the current track in each room. That’s on the iPhone version too.

As usual we have an indeterminate delay until Apple approves this version, but it should be ready in a few days.

SongBook DS Crashing on Startup

June 17th, 2010 0

If you’re having trouble with SongBook DS 3.0.2 crashing on startup, it’s due to the input source that is set on your DS. If you have the UpnpAV source, or possibly a CD source set, then SongBook will crash. The workaround for now is to disable the UpnpAV source in Konfig. For most users the UPNP source is of no use anyway, and it does cause confusion for quite a few users, so it’s best to disable it anyway. If you have a linked Linn CD player it should be sufficient to make sure that this is not the selected source when starting SongBook. We didn’t test with the UpnpAv source enabled as the new Linn firmware disables it by default. So that’s yet another test to add to our ever increasing list of release tests.

We’ve fixed this issue and an update is on it’s way to Apple so we should have this issue resolved in the next few days. We’ve taken the opportunity to fix a few other issues and add some more interface improvements, especially on the iPad version.

 

 

 

SongBook DS 3.0.2 Available

June 16th, 2010 3

An update to SongBook DS has been approved by Apple, the current version is now 3.0.2. This update addresses crashes with Sonos devices and Linn CD players so will be an important update if you are getting crashes at startup.

There are also a few small improvements such as adding volume up/down buttons on the iPad and showing the active zone name on the zone button.

We’re working on a further update to add some more user interface features to the iPad version (the much requested ‘Now Playing’ screen amongst other things). We wanted to make sure that this bug fix release was out before submitting any other updates as you go to the back of the queue each time you upload a new version.

For those keeping track this review cycle took quite a while. We hope that this was just due to a temporary backlog in the approval queue, but in the end the delay was not too bad. It does seem like an eternity though when you have a version out there that is not working for some users. With the release of 3.0.2 we hope we have all the issues sorted out with the new network discovery system and that everything is reliable from now on.

Software Updates

June 10th, 2010 2

We’ve released updates for SongBook DS 3 in the last few days. The iOS versions (iPhone, iPod, iPad) are waiting for approval for Apple. We got a super fast approval last time but it’s not happening this time. Maybe all the testers are busy at WWDC? Anyway the approval is taking a while this time, which is frustrating as there are some crashing bugs in the current release that we all would like to be gone. Hopefully the update will be out in the next few days and all the crashes will be sorted out. We really have made some major improvements in SongBook 3 over 2, there’s just a few issues out there that we didn’t catch, but in the long term this version will be much faster and much more reliable than earlier versions.

We’ve been testing with large playlists and large data sets and this version of SongBook handles them much better and faster than earlier releases. Some of the feedback from users has been very useful for this. For example we just found an issue with loading the playlist that seems to affect some users. We were loading the entire playlist in one network round trip, which worked fine for us, but for some users it seemed to cause a problem. We changed the code to load it in smaller steps so hopefully that works better for users that have a problem. We’ve also reduced the memory usage and sped up the loading operation.

SongBook Mac has a new version, beta 4. It’s also working much better but we are still getting some reports of missing tracks in the iTunes listings so we need to do a bit more work there.

SongBook HD, the version for DigiFi devices, has been very popular. It’s due for an update soon that should make it even better. In the next release we plan on adding volume control for devices that support it, vTuner support and playlist saving. We went a little off track here with the volume control. The Naim HDX doesn’t have an internal volume control, and we thought that was the same for other devices, but it turns out it is not the case, if you have a Hush DigiFi for example, you should be able to control the volume from SongBook. We’ll get that update out as soon as we can.

We’re also hard at work on better UPNP support. We’ve had mixed results getting manufacturer support for this. Some have been very helpful (Naim being one), and some just won’t even return our calls (I won’t mention names here). While we’re on the subject of Naim, we have heard that there will be a software update for the Uniti that will make SongBook work much better with it, so we’re holding off on getting a new release out until we’ve got more information on this update.

Needless to say we’ve been very busy the last few weeks. We’ve got a couple of other projects on the go as well, one is a joint venture with a US company, and the other is a new product for us (not entirely new, but an extension of existing software). You should see the update for SongBook DS shortly, SongBook HD soon after that, and SongBook Mac should become an official release some time soon, depending on the feedback.