I was recently invited by Nathaniel Mann, in has capacity as composer in residence at the Pitt Rivers Museum in Oxford, to implement interactive iPad presentations of some of their sound archives throughout the museum space during their ‘Inside Sound’ event. Inside Sound from OCM on Vimeo. The event is a uniquely atmospheric way for the public to engage in the extensive collections: exploring such a marvellous museum in darkness by the light of a torch would be pretty exciting even without any added sonic dimension. Filling the space with these fascinating ethnomusical artefacts makes for something awe-inspiring. It was a fantastic weekend, and I felt privileged to be involved.
Technically, the work was done using HTML5, with the application cache ensuring that all data was local to the devices, which were left on airplane mode. MIHTool was used both for it’s excellent debugging features, but also its handy no-nonsense fullscreen mode, which along with iOS’s “Guided Access” feature helped to ensure that users were kept safely constrained to the application and that the presentation was as clear and smooth as it would have been with a native app. For a one-off event like this with limited budget using borrowed machines and with iOS being what it is, it would not have been practical to develop a native app and deploy it to all six devices. As with most programming projects, it was not entirely without hiccups even though the specification was fairly simple. The main problem encountered was apparently to do with Apples’ subtle crippling of the HTML5 standard. According to an answer I received on StackOverflow months after the project was done, “Whenever you request a resource from the Application Cache which has the header of an audio file, Safari on iOS will return an empty result.”. Chalk one up for experience; if I find myself implementing something similar in future, now I’ll know (although that knowledge will likely become obsolete pretty quickly). In the end, rather than serving audio and doing dynamic visualisation, we used pre-rendered video which cached without problem… but of course having to prepare videos we didn’t anticipate needing in a small space of time had it’s problems, thankfully Nathaniel was very helpful in working on that.