When Bluetooth Audio Latency Matters

[Update: I’ve written another article where I put AirPods through the same test. It’s here.]

There’s been a lot of talk of wireless earphones lately, mostly due to the removal of the headphone port on the iPhone 7. I love wireless earphones, and for the most part I think their pros outweigh the cons significantly. However, they have one particular problem that really needs to be fixed.

Continue reading “When Bluetooth Audio Latency Matters”

Hyperbolizer

Hyperbolizer is my new app for iOS 10. It’s a silly, fun idea. It has a standalone app, but the main focus is its iMessage app, which allows you to type a message, and generate a banner image from it. You can then press the Hyperbolize! button and have the app create a more… hyperbolic version of your message. Think lots of !!, ?? and totes amazeballs phrases. It also saves your ‘Hyperbs’ as stickers for later use.

It’s now live along with iOS 10! Check it out on the App Store, or at http://hyperbolizer.com.

It was a really fun experiment in trying out some text processing in Swift. I hadn’t really done any before, Tapt required very little of that sort of work. I’m pretty happy with the results so far! I’m intending to do a few posts outlining some interesting things I’ve learned from it. Stay tuned.

Darkly Bright

Earlier this summer I was appointed as the first Ulster Youth Choir Composer-In-Residence. As my first task, I was commissioned to compose a piece for their summer concert, As Dreams Are Made On, which was centred around Shakespearean text and themes. I chose to set Shakespeare’s sonnet number 43. I named the piece Darkly Bright, both because I really love that phrase, and because I feel it has personal relevance to the harmonic language of the piece. Above is a video of the piece’s premiere, in Down Cathedral on 30 July. Continue reading “Darkly Bright”

Tapt – a new iOS game

Since January I’ve been learning Swift to let me create an app which I had an idea for late last year. It’s called Tapt – it’s a rhythm-based music game. It’s very simple, you’re given the name of a song, and you have to tap its rhythm. You hear a note from the song each time you tap, so the aim is basically to play the song. It’s a pretty good way of practising rhythms too! I’ll be updating it regularly with some more features, and more importantly more packs of songs to play.

You can get it on the App Store (Android version coming soon!) by searching for Tapt, or by clicking the link below. Give it a try, and share it if you like it!

Download Tapt on the App Store by clicking here!

Colour – a free iOS Game

I’m currently developing a music game for iOS (and my first app, ever). It’ll be out soon I hope, but I’m stuck waiting for what feels like months on some tax stuff from the US before I can start selling paid apps… fun. In the meantime, I wrote a quick, free game over the course of about 24 hours a few weeks back. Basically, all you have to do is watch the circle on the screen, and tap it when its colour matches the background.

You can download it here: Colour on the App Store

It’s been a useful insight into process of submitting an app to iTunes; especially app-review and the stuff that comes with that. I’d love to hear any feedback on what you think of it (my twitter is probably the best place to do that, but you can find my email on the about page here too). I’ve a big update coming for Colour in the next week or two, that’ll flesh it out a bit more than the 24 hours allowed. All this while I continue to wait in tax purgatory…

The Pi Zero Simpsons Shuffler

The Pi Zero Simpsons Shuffler1 is simple – you press the yellow button, and it plays a random episode of the Simpsons.2 I’d wanted to make it since hearing Will Smith talk about the idea on the Tested podcast years ago, so here it is.

It’s based on a Raspberry Pi Zero, so it’s pretty cheap to make. Breaking down the cost, the Pi Zero costs £4, it uses a 32GB micro SD card which costs about £9, a Mini HDMI cable cost about £3, and it also uses few pence worth of electronic components and other bits and pieces. Naturally, I chose a bright yellow button; it’s just a simple momentary switch which pulls down pin 11 to ground (there are plenty of great tutorials for this around the web, so I won’t bother repeating them).3 So, the total cost is about £17 (plus the cost of buying and ripping your own DVDs of the Simpsons, of course).

Here’s a quick shot of a ‘prototype’ using a Pi Model A, before soldering it all together on the Zero.

On the software side, it uses a simple python script. It waits for a button press, then selects a random file in a given folder, and plays the file with omxplayer. If the button is pressed while an episode is already playing, it stops it and starts a new episode. I’ve uploaded the scripts here. If you try it out, make sure that the only files in the video directory are video files, since it doesn’t check that they’re videos before attempting to play them. I’m using the Raspbian Jessie Lite image, it already contains all the software you need.

Do let me know if you enjoyed the project, or especially if you give it a go yourself! Finally, here’s a short video of it in action:

 

Update: Big improvements in Pencil latency

A few days ago I posted a video comparing note taking apps on the iPad Pro 9.7-inch. Since then, there have been updates to OneNote and Notability which improve things tremendously. I’ve made another video comparing them again, using pretty much the same protocol as before.1 Notability has improved hugely, and OneNote is only a tiny bit slower. While it seems small, this is a huge improvement and makes each of them much more pleasurable to use. Notability in particular feels just as responsive as Apple Notes, and has completely won me over as a notebook-replacement app.

Benchmarking and comparing video rendering times on the iPad Pro

I do a lot of video editing, mostly using Premiere Pro on my desktop or laptop, though I’ve been increasingly using my iPad/iPhone for small edits like sharing with friends or on social media, etc. As time goes on I’m beginning to wonder how feasible it is to do some more serious editing on iOS. Each of my iOS devices handles 4K video from my Panasonic GH4 or Phantom 3 quadcopter with ease. They play it perfectly, and hardly drop a frame even when scrubbing through videos. Rendering video projects is also impressively fast, and with that in mind I decided to run a few benchmarks.

I’m comparing quite a few devices, basically anything I own that will run Premiere or iMovie. The devices are:

- Desktop 'Hackintosh', Core i7 2600, 16GB RAM and (an ancient) AMD 5770 GPU
- MacBook Pro, Core i7 4850HQ, 16GB RAM, Nvidia GeForce GT750M
- Surface Pro 3, i3 4020Y, 4GB RAM, 64GB storage
- iPhone 6S Plus, 2GB RAM, 64GB storage
- iPad Pro 9.7-inch, 2GB RAM, 32GB storage

Each device is running the latest version of its OS.

Details

I made a simple video project using two 4K videos, shot on the Panasonic GH4 at 24fps at ~80mbit/s. I imported the videos straight from the SD card on each device (using the Apple SD Card to Lightning Adapter for the iPad/iPhone).1 I created as similar a project as I could on each device/program, using iMovie on the iOS devices and Macs, then Premiere on the Macs and the Surface. The bitrate for rendering on each device was set to ~23.5mbit/s, exporting at 4K/UHD. I tried to use the fastest possible settings on each device; in iMovie on the Macs, I chose the ‘fastest’ option; in Premiere I chose ‘VBR, 1 pass’ and left ‘maximum render quality’ unticked. Additionally, for Premiere I rendered twice on each device – first using the GPU/OpenCl/CUDA and again using the CPU.

I also made sure to close all other open programs on each device, and leave some time between repeat tests to account for any thermal changes.

Results

The results are pretty interesting, and once again the iOS devices impress me. Here they are from fastest to slowest:

- 00:38.15 - MacBook, iMovie
- 01:24.47 - iPad, iMovie
- 01:29.46 - iPhone, iMovie
- 04:11.41 - Desktop, GPU, Premiere
- 04:40.05 - Desktop, CPU, Premiere
- 04:44:48 - MacBook, CPU, Premiere
- 04:56.95 - MacBook, GPU, Premiere
- 05:43.34 - Desktop, iMovie
- 13:00.59 - Surface, CPU, Premiere
- 13:03.54 - Surface, GPU, Premiere

Conclusions

The MacBook with iMovie clearly beats the rest. However, while the iOS devices are a bit slower, they beat the other combinations by a wide margin. My assumption here is that there’s a hardware h.264 encoder of some kind, that’s getting used by iMovie on the iOS devices and the MacBook. The Hackintosh is at a disadvantage in that respect, and it seems like Premiere doesn’t make use of it on the MacBook either. While this test focuses on render times, I feel that the results are largely in line with my experience of the performance of each app in general usage. Scrolling through clips, trimming and doing other basic edits feels much smoother on the iPad than in Premiere.

Looking at the rendered files, I don’t see much appreciable difference in quality between them. It would be nice to have the option to output at a higher bitrate on the iPad, but the video output by each device still looked pretty good.

While the MacBook is comparable to my ageing desktop in speed using Premiere, its fans run at full speed the entire time. The desktop feels better-suited to longer workloads as a result – to avoid both thermal throttling, and excessive wear and tear from the (quite intense) temperatures the MacBook reaches. The iPad did heat up a little, though considering the differences in TDP between the chips, it’s never going to get as hot as the i7s.2 It would be interesting to test it over a longer time period to see if it does have to throttle eventually.

Coming back to the iOS devices though, I really would like to see Final Cut Pro or a fuller version of Premiere become available for them. It’s surprisingly un-cumbersome making edits with a touchscreen (helped even more by the Pencil), so it would be great to have the ability to do some of the more advanced things that one would expect in Premiere.3 I’m aware there are lots of other video editing apps for iOS, and I’ll maybe do a follow-up post comparing speed/features between them.

Here’s a quick comparison shot of the three versions. I’ve also uploaded a screenshot from the iPad render, the Desktop+Premiere+CPU render, and the MacBook+iMovie render. If anyone is interested in the actual video, here’s the one rendered by the iPad.

comparison

—————

IAA Drone Registry Security Error

Today I got an email from the Irish Aviation Authority, letting me know that an error on their drone registry site gave registered users access to everyone else’s details. While the error has since been fixed, they said that the accessible data “included names, addresses, email addresses and phone numbers.” Not good. The email specifies that the IAA became aware of the error in Sunday night, though doesn’t say for how long this has been the case. So presumably it’s possible this has been the case since the system was established months ago. The email does say that there was no leak of financial information, although that’s not a massive reassurance.

Pretty much any drone that meets the criteria to require being registered is going to be worth a few hundred euros, and many if not most will be valued in the thousands. That means that the names and addresses that were accessible are pretty much a map to houses containing expensive gear. I really don’t like the idea of that, and their warning that “If you (or anyone you know) has inadvertently downloaded this file, please be aware that you are obliged to destroy the material in accordance with the Data Protection Act 1988” doesn’t really put me at ease. 

For the record, I completely agree with drone registration.1 However if any other website I use had an issue like this I’d likely unregister, or at least remove any personal details I don’t want vulnerable in future. Since it’s mandated in this case, though, I’m stuck leaving them as-is. With that in mind, I find it pretty inexcusable to let an error like that slip through.

Comparing Pencil latency between apps on the iPad Pro 9.7

I made a quick video to compare some writing/drawing apps on the iPad Pro. I used the built-in Notes app, OneNote (which has been my note-taking app of choice to date) and Notability. I measured how long it took for the ink to catch up to where the Pencil tip was at a given point, while drawing lines at the same speed. I guess unsurprisingly, Apple’s Notes app had the shortest lag at 33ms.1 Notability was slowest for me, at 112ms, and OneNote was in the middle at 87ms. While I’m starting to like Notability enough to use it as my primary notes app, I can definitely perceive its increased latency compared to Notes. It’s responsive enough not to be a problem, but it just doesn’t feel quite as nice as Notes. Hopefully more apps will achieve lower latencies as they get updated.