Crammit

Because hey, Jammit screwed us...

iOS Joy

So many issues!

I have now pretty much wrapped up the second version (1.1) of the iOS app, and I'm about to submit it to Apple. It is a MAJOR rewrite! The need to play back movies created in Crammit now is all but moot, as the new version downloads and plays back ANY ,jcf file… for free.

For those interested in the challenges involved, they were manifold. First, I had to build a robust downloader in iOS that could operate on a separate thread from the thread used to interact with the interface. This means that you can start a download , and let it chug away in the background.

Second, I had to construct an "unpacking" sequence for freshly downloaded files that also works on a background thread. First, the files gets unzipped. Then, the audio files are identified and decompressed to their original 16 bit stereo 44.1 glory. Then, those audio files are woven into a quicktime wrapper to enable synced playback, and then original audio files are then discarded.

The score files were originally going to be concatenated into one file, but the performance was unpredictable, as longer songs would not load into the scrolling view that displayed them! This was solved by dividing up the image into "tiles", and adding them one after another into the scroll view.

I then discovered that the overview waveform suffered a similar problem, so that too have to be tiled and sequentially added. Now, even epic songs like "Close To The Edge" can be full displayed.

Also, there were issues with the newer API for scanning the iPads photo roll. System 9.3.5 crashed, so conditional code had to be written to perform the search if an older system was detected.


This version has many, many new bits and several key optimizations! Now if I can get this through Apple….