Monday 22 April 2024

What else I did with an old iPad : Hifi remote control

Rationale

I chose to setup my 2012 iPad mini 1st generation as a dedicated Hifi remote control.  The hifi comprises a main  Denon amplifier/tuner togther with some Pure Jongo and Sonos options.
Although Denon, Pure and Sonos all provide iPad apps, none of them are compatible with the iPad mini1.  This is not a serious problem as the apps don't make it quick or easy to select and play albums so I have developed my own web app which allows me to control Denon and the others pretty much exactly as I want.

I can, of course use a PC, Android or iPad with the web app; this was one reason to develop it in the first place.  However I found that other people are unlikely to bother going to a URL on their devices to choose music.  Everyone finds it much easier just to pick up the iPad mini which is always setup for music playing.

Ease-of-use

I bought an iPad mini cover which allows us to turn the iPad on/off by opening/closing the cover and bypasses the lock screen, making the remote control effectively always on - like a remote should be.


I can also set guided access so that the web app is always displayed and avoid the possibility of exiting the browser or changing the page. 

Old software considerations

As my browser is restricted to Safari v9, which comes with iOS9, there are a few html and javascript commands which cannot be used as they weren't implemented by Apple until later versions.
Typically, when developing the web app I found it worked on PC (Chrome) or iPad (Safari 16) but not the iPad mini so I had to find an alternative solution which wasn't a difficult task.

When choosing an artist / album to play I highlight the item by changing its class from "songlist" to "active".  JS now includes a replace() method to change a class associated with an element.  However on SafariV9 you must use remove() and add() methods instead.

My track list folders often include album art .jpg files which are displayed as tracks unless I omit them.  There is now a include() method to determine whether a substring exists within a string.  However, for Safari9 I need to use the indexOf() method instead which isn't so neat.

Conclusion

I do have a tendency to be more interested in the technicalities of a solution rather than usability.  The two old iPad projects are both simple, but tend to be used more than other, cleverer ideas.



No comments:

Post a Comment