For the past two years, I was working as a UI Software Engineer at Apple and was contractually prevented from doing anything more than bug fixes (not to mention having no free time).

As of two weeks ago, I am back in the startup scene! While I won’t be able to work on iSub full time, I am resuming active development.

This includes: Swift port and code cleanup, iPhone 6/6+ screen support, and some UI modernizing. Then I’ll prioritize other features based on my availability, the first of which is drastically Improve the playlist experience. For example by allowing you to add any song from any list to an existing playlist (what a thought!).

Update: Both versions have been approved and are available for download from the App Store.

Update: The update for the full version has been approved. The Lite version is still in review and should be approved soon.

The iSub 3.1 update has finally been submitted to the App Store for review this weekend. Please keep in mind that it can take anywhere from 5-10 days for the update to be approved for sale.

Here’s the official list of changes:

– Full support for iPhone 5
– Full support for iOS 6
– Full support for Subsonic 4.7
– Video streaming! Now you can stream videos from your Subsonic server (requires Subsonic 4.7 or higher)
– Rewritten audio engine to fix various playback issues that have been reported
– Fix for song cache disappearing when you device fills up when not using iSub
– Now more accessible for people with impaired vision! Better support for Voice Over, which will continue to be improved going forward.
– Too many other small fixes to list

iSub plans for the future

Now that this update is done, that means that the iSub 4 work can begin! As I’ve mentioned in previous posts, iSub 4 is a complete re-imagining of the iSub experience, and will be a huge step forward from the iSub we all know and (hopefully) love.

Some of you may be asking how that update will ever be released if it took so long to finish a simple bug fix update.

Well first, this update, though not packed with new features, was actually a large undertaking. Almost simultaneously, major updates to Subsonic, the iPhone, and the iOS operating system were released that all required attention, in addition to the tasks scheduled for this release.

In addition, I’m currently the sole developer working on iSub, and unlike in previous years, I no longer get to focus all of my time on iSub. However, starting in January, I’ll have the part time help of two awesome developers I’ve been working with on and off for the past year on other projects. Between the three of us, we’ll be doing one full time person’s worth of hours, but we get the benefit of being 3 separate brains. That means we get to brainstorm solutions to issues much faster than I could do alone, and we get to proof each others work.

What that means is that iSub development is going to get a blast forward starting in January, that should help get the iSub 4 update to you guys faster than I ever could have alone. Also, in addition, we’ll be working on some other cool stuff that I can’t talk about yet.

Thanks again to everyone for the support and kind words as I keep working to make iSub the best media player for iOS!

I know you guys have been wondering about the status of the iSub 3.1 update, so I wanted to make a quick blog post.

There were some streaming issues related to the Subsonic 4.7 update that held back progress a bit, but those issues have finally been resolved.

The main thing holding back the release right now is fixing all of the issues caused by the iPhone 5 screen support. It’s mostly done, but there are still some quirks, especially with rotation in the player. And speaking of the player, here’s a screenshot for you:

Basically all of the other screens in iSub are lists of some kind or another, so they just extend to fill the screen. In the player, those of you lucky enough to have an iPhone 5 get all the controls front and center without having to hide and show them with yet another button.

Get in touch!

I’m trying to keep these short and sweet going forward so I’m more likely to actually have time to write them regularly, so if you have any questions please ask away in the comments, @isubapp on twitter, /isubapp on facebook, or via email at support [at] isubapp.com.

(Re)introduction

The last update to the iSub blog ended with “Then the next blog post should be an announcement of the submission to the App Store!”.

That was 6 months ago. But that’s not to say I haven’t been busy.

Of course, the iSub 3.0.5 update was, in fact, released shortly after that post. Then 3.0.6, 7, 8, and 9. Though they did get a mention on Twitter and Facebook.

Well this is the grand return of the iSub blog, as well as regular Twitter and Facebook postings.

iSub is developed, supported, and marketed by one person: me. So while I’m focusing on code and support (and most importantly listening to great music), sometimes the marketing part gets put off.

Video streaming!

As you may have seen on the social network feeds, there are a couple of big updates in the works.

First and foremost, video streaming! Thanks to the latest Subsonic update, it’s now possible to stream videos to iOS devices. That means that yes, the very next update to iSub, version 3.1, will include video streaming.

Due to some technical reasons, video caching will not be possible yet, but that will be coming in the future. However, due to the way this special streaming format works, it will likely never be possible to cache while streaming like we can do for music. But manual caching will be possible.

The iPhone 5 and goodbye to iOS 4

A lot of people have asked about iPhone 5 support. The next iSub update will also include full support for iPhone 5’s taller screen.

Unfortunately, to do this means dropping support for anything lower than iOS 4.3 as Apple has seen fit to not allow both iOS 4.2 and iPhone 5 support simultaneously. I’m aware that this means cutting support for all older iOS devices that cannot be upgraded past 4.2.1, and for that I apologize.

Just to give a quick look at the stats, as of the last week these are the iOS versions by percentage that iSub users are on:

As you can see, almost half of you are using iOS 6 already! And more than half of you are using iOS 5. So this won’t affect most of you.

Since targeting iOS 5 has major advantages, and the number of people still using iSub on 4.3 is very small, iSub will be dropping support for iOS 4 altogether rather than targeting the minimum of 4.3.

This means, if you have an iOS 4 device and you will not be updating or can not update to iOS 5 or above, make sure to back up iSub using iTunes. That is the only way you’ll be able to reinstall it if you need to restore your phone in the future as you won’t be able to install it from the App Store.

Big plans for this year

I’ll finish off by quickly mentioning the plans for iSub as we approach 2013. Assuming the world doesn’t end, there’s a huge iSub update in the works for the holidays. Free for all existing users of course.

iSub 4 will be the biggest update to iSub ever. The iSub 3.x updates mostly focused on internal things: namely a new audio engine with gapless playback and parametric equalizer, a major reengineering to allow iSub to continue to grow in the future, and now video streaming.

Well now it’s coming time to use all those nice new internals to power a much better user experience! iSub 4 is all about the interface and experience.

Every inch of the app has been careful rethought to organize all of the existing features plus a bunch of new ones into a cohesive whole. I’ll have more to show on that as progress is made over the coming months, so enough on that for now.

Wrap up

2012 is turning out to be the biggest year for iSub ever. First gapless playback and parametric equalizer, now video playback, and soon a huge rethinking of the whole iSub experience. I’m extremely excited that everything I’ve been working on and building up to this year will finally be coming to fruition!

I’ll have a lot more frequent updates to the blog going forward, so make sure to keep an eye out for new blog posts using either Twitter, Facebook, or the blog RSS feed.

So it’s been almost exactly a month since the last blog post. At that time I had proclaimed that the release candidate was almost ready (with an exclamation point no less!). Unfortunately (or fortunately depending on how you look at it), some last minute critical issues came to light that needed to be handled. Then, as the wonderful iSub beta testers started running a fine toothed comb through all of iSub’s features, more and more little interface issues and small bugs were kicked up.

Since the last post I fixed 94 issues according to the iSub beta Trac system. It wasn’t until the latest beta a couple days ago that, in the succinct words of one of the beta testers, we hit the “‘Yaaaaaaaaaaaay’ build.”

Now there’s just a handful of tickets to close in the Trac before release time, mostly final regression testing tasks to make sure that we didn’t miss anything, that it works well with the new iOS 5.1 update that was released today, and that it’s retina ready for the new iPad.

Since everything is essentially final now, I have some new screenshots to share!

You guys saw some shots of the new iPhone interface last time, including the new player — which has actually changed a bit since then, but more on that in a minute — but the iPad interface also got a big facelift to better utilize the available screen real estate.

For instance, the player is now always visible, instead of hidden away in a tab.

And you can now easily browse through an artist’s albums without hitting going back and forth over and over. (still have a little tweaking to do on the labels next to the album art)

Also, the final iPhone player interface is a little different than what was shown last time.

When the player is first opened, the new controls and info area is shown automatically.

Unless you’ve opened the controls manually, the extra buttons and info will hide automatically after a few seconds.

If you do open them, by tapping the gears button or the album art, and you leave the player, iSub will remember that you had them open and keep them open next time.

Same goes for the playlist display, which can be accessed by tapping the playlist button on the top right or by sliding to the left on the album art:

Some final words…

Once again I want to thank everyone for the patience and support! The great comments, tweets, and emails I get really help keep my spirits up!

I’m going to be chugging along for the rest of the week, finishing up those final tests and fixing anything else that turns up. Then the next blog post should be an announcement of the submission to the App Store!

Alright everybody, 3.0.5 is nearing completion so I have some pretty screenshots to share of some of the UI enhancements coming in this version, as well as some information on some additional features I didn’t mention last time.

First, I want to make it clear that these are still in flux, and based on feedback from you guys and the infamous iSub beta team, these will be very likely look a little different at release time.

Now with that said, on to the screenshots!

Finally added the album art and info previews when browsing folders that’s existed in the iPad version for a while now to the iPhone. Also, you can tap the album art thumbnail to see the art full screen.

But the biggest changes are in the player

First off, the interface has been shuffled around a bit to get the seek bar visible all the time. No longer will you have to flip the album art just to see the song progress!

Now that the song info panel is actually only used to display song file info, the shuffle, repeat, and bookmark buttons got moved to a new location.

Also, by popular request, the playlist panel is now the first panel shown when you flip the album art. This should really increase the usability of the player. No more unnecessary flipping and sliding to do the most frequently used actions.

Now on to the entirely new area, the graphical equalizer

There is full 2-axis EQ control including built in and custom presets, plus a gain boost slider for those low gain podcasts and other recordings that just can’t seem to get loud enough even on full volume.

There are also 4 different audio visualizers currently included so that you can visualize the EQ changes you’re making on the fly!

On top of that, there are a few additional features that made it in to the new release.

By default, only the first portion of the upcoming song is automatically pre-cached. That way you can get all the benefits of gapless playback and quick song start times without burning extra bandwidth if you end up skipping past the next song.

The code for sliding to reveal the cache and queue buttons has been completely rewritten to prevent accidental taps. This has been a real annoyance for a while, and should be completely eliminated going forward.

And on top of that, it’s now also possible to tap and hold to show the cache and queue buttons. So if you’re not a fan of sliding, there’s another option.

You can now enter the cache size you want in settings directly with the keyboard instead of relying on the slider to do it. On large capacity iOS devices that could be a real pain. Now you can just type 400mb or 1.4 gb, etc to set the maximum/minimum cache size.

The tab that displays songs currently playing on the server is actually useful now! You can cache or queue any songs displayed there by swiping or tap-n-hold. And selecting a song will load that entire album into the player.

For all newly created bookmarks, opening the bookmark will load the entire album folder into the playlist. That’s been an often requested feature. Please note, make sure to update to the latest Subsonic release so that it sends down the information needed for this to work.

Thanks to Crittercism, there’s now a support forum built right into the app! I always strive to give the best support possible, but many people don’t know that they can contact me for help. Hopefully, having a support forum available front and center will help more people get the best experience from iSub.
The Crittercism plugin even detects when crashes happen so that the next time iSub is open there will be a helpful link to the built in forum and to the iSub support email address so everyone can get immediate help with any issues.

The 3.0.5 update is getting very close to release candidate quality. There’s still some UI work to be done for the iPad version, and a few bugs to fix, but overall it’s coming together quite well. As per usual, I can’t give a solid ETA because I’m always wrong, but if all goes well, I’m hoping to submit this weekend or next week at the latest when it’s ready (man I need to stop breaking my no ETAs rule :P).

I’ll have more information and screenshots posted as soon as the first official release candidate is christened. Until then, if you have any suggestions or comments, please post below, in the forum, or send me an email at support@isubapp.com

Thank you, thank you, thank you for all of your patience waiting for this update and for all of the fantastic emails I’ve received from iSub users!!

Unfortunately there is an incompatiblity between the Twitter library that iSub is using and iOS 5. It may cause Twitter posting to simply not work, or may cause a crash when it tries to post the message.

The issue has been fixed for the 3.0.5 update, but for now, if you’re having issues with it, please turn it off in settings.

More info on the new update coming soon. Still ironing out the final show-stopper issues with all the new code.

First things first, I’d like to wish everyone a happy holiday, whichever one you celebrate!

I apologize for the radio silence in the past month, I’ve been coding non-stop to get the next update as polished as possible before release. Now that the end is in sight, here’s the low down:

First, to avoid any confusion, this is a 3.0.5 update, not 3.1, but it contains many of the things that were on the slate for 3.1. There simply wasn’t enough time to get 3.1 completely finished in time, so it made sense to release all of the features that are finished rather than making everyone wait another couple months.

Really the only major features that did not make the cut for this release are the video support, the revamped playlist system, and the update to the look and feel. Those will be coming in 3.1 sometime early next year.

Here’s what did make the cut:

New audio engine based on BASS

Native support for MP3, AAC, AAC+, ALAC, OGG, and FLAC files

Gapless playback of all supported file formats

Parametric equalizer with full 2-axis control with as many EQ points as you want. Includes presets and you can create and save your own.

Song info and album art on lock screen and bluetooth receivers

Skipping within songs working for all supported file formats

Song progress bar and skipping more accurate

Skip forward/back 30 seconds buttons

HTTP Basic Auth supported

HTTPS on non-standard port supported

Major internal rewrite to make it a lot easier to fix bugs, add functionality, and port to OS X and other platforms in the future.

So even though it’s a point release, this is still a beefy update! And as soon as this gets out the door, I’ll be focusing 100% on adding iOS video streaming support to Subsonic to enable video streaming in iSub 3.1.

I don’t want to give any hard dates on when either update will be released because I seem to have a 0% accuracy rate on release predictions. What I can say is that all major features have been implemented, and the app is now in the final testing phase, mopping up all the final issues and finishing the skinning of the new interfaces.

Some pictures will be up in a post as soon as the skinning is complete, at the moment they are feature complete but still beta-y looking.

As I’ve been doing research into how to best implement the gapless playback and equalizer features into iSub 3.1, I came across a wonderful multi-platform audio library called libBASS.

It’s perfect!

Quick rundown of the awesome stuff this library can do:

Play MP3/AAC/ALAC/OGG/FLAC and more

Play formats like MP3 using the device’s hardware decoder for great battery life

Gapless playback!

Apply effects including a parametric EQ, reverb, echo, etc in real time

Get level data on the frequency bands for creating a visualizer or visual EQ display

Play multiple encoded audio streams simultaneously and mix them, like a DJ app!

Change pitch, speed, etc of playback

more cool stuff I’m not thinking of off the top of my head

So yeah.. I’ll be writing a new audio engine based on libBASS that will power iSub 3.1.

That’ll get us the gapless playback and EQ feature I’ve been promising for a while, plus allow playback of OGG and FLAC natively. Then later I’ll implement some kind of EQ visualizer, both on screen and potentially through a TV hookup, and some way to apply some of the affects to the music like reverb.

Possible even a DJ add-on coming next year… but more on that later.

I’m super psyched about all this, and I’ll be working on the new libBASS powered audio engine in the next couple weeks. Also working on adding HTTP Live Streaming video support to Subsonic in that same time frame so that we can stream videos as well as music!

Currently putting the finishing touches on the big bug fix update / internal rewrite that has been in the oven for a while, but more info on that in the next post…