I'm a composer, developer and filmmaker.

I've added a much-requested (and much-needed) feature to PodStand - you can now have it email out your profile details. Previously it relied on cookies, and users bookmarking the signup page. Probably unsurprisingly, this often led to confusion and people losing access to their profiles. The new system also allows existing users to send out their details (assuming they still have their cookie/bookmark) by going to this page. I should note that it's an optional feature; you can stick with the cookie/bookmark system, but if you enter your email it's not stored and you'll never hear another peep from the site.

About a year ago, I made my trusty electric piano wireless using a Raspberry Pi Zero and some nifty software. It worked pretty well, but wasn't quite perfect. I initially assumed input lag (something I'm pretty unforgiving about) would be the biggest issue, but for the most part this wasn't a problem. There were some annoying quirks, though:

  • occasional missed notes, or stuck notes
  • random disconnections, which seemed to get worse the longer it was powered on
  • a few times things just stopped working entirely, and I had to reinstall everything from scratch

That third issue happened again recently, so I figured I'd take it as an excuse to try out a different approach. Having picked up one of these recently, I thought something more Arduino-oriented might be a neater solution to the problem. Getting rid of the overhead of a full Linux OS, and usb device, would surely mean there's a lot less to go wrong?

So, the to-do list looks like this:

  1. Make the Arduino act as a network MIDI device.
  2. Set the Arduino up to receive information from a hardware MIDI port.
  3. Parse the signals from step 2, and send the corresponding info over the network.

Luckily, step one is pretty well served by the AppleMIDI library, and the networking libraries for esp8266-based devices. Having a look at some examples, it was pretty easy getting that part of the sketch done. I tested it out by having it send some random MIDI notes, and it worked (I'll post the complete Arduino code below).

Step two was a little harder, but nothing that wasn't already well-tread and documented. Consulting a few resources, I was able to mock up and test a MIDI-in port, which uses the SoftwareSerial Arduino library to receive the data. Once I'd checked it was working, I soldered the parts together to make a slightly neater package.

With those parts done, I needed to write a layer to take the signals from the MIDI port on my piano, and send out the correct information over the network. This was the fiddliest part, and took a bit of reading up on the MIDI spec to get working properly, but in the end it does the trick. Trick is the operative word here; my only requirements was that this worked for sending note on/off and pedal on/off data, and that's all my code will do. Any more intricate or esoteric MIDI signals, or even anything beyond the basics I just described, would require some reworking.

All in all, I was really happy with how this worked out. The Arduino makes for a snappy, latency-free MIDI relay, and seems to be a lot more stable than the Raspberry Pi-based setup of before. Another benefit is that it's ready to connect within about 5 seconds of powering on (less time than it takes me to plug in the power supply, then switch on the piano) - much faster than the boot time of the Pi. Finally, I'm hoping it should be less prone to corruption/breaking down over time, since I'm not now randomly pulling the plug on a Linux system I should really be shutting down properly.

If you're interested in making something like this yourself, here is the Arduino sketch, and the hardware is based on a NodeMCU V2 device, with the MIDI-in port based on the schematic at the site I linked above.

Finally, with the hardware and software working, I put everything in a box and attached it to the back of my keyboard like so, and so far so good.

Here's a little app I made, my first of 2019, inspired by my Karen Quinn's recent posting of images featuring quotations from her work. It's a simple little utility that lets you turn some text into an image, with lots of options for changing the layout, font, and more. Check it out on the App Store.

New project: a website that I think will be really useful for podcast discovery. It's very simple, you can create a profile, upload your podcast subscriptions, and browse other people's subscriptions. It's a cool way to see what others are listening to, and to find some new podcasts to listen to. You can also browse by podcast, and see everyone who listens to a particular show.

Check it out at https://podstand.co.

I've started a company! We're called N56 Software, and we're making apps and CMSs for events, festivals and venues. We're really excited to be working with Culture Night Belfast as our first partner, and will be launching soon. Have a look at our website for more info.

The referendum to repeal the 8th amendment to the Irish constitution is happening in a couple of days, and you should vote yes.

It’s vital that women in Ireland have freedom over their own bodies, and frankly I don’t think that there needs to be any further justification than that. If you feel some kind of religious or moral obligation to vote no, I urge you to do some balanced research, and at least consider reconsidering.

Repealing the 8th amendment is a necessary step towards better physical and mental healthcare for women; retaining it would mean continuing to cast off a very serious issue that isn’t going away, when we should instead be extending a helping hand towards those who need it.

Some calculations on what might be required for a VR/AR headset to provide a 'Retina display' experience.