Precision Keyboard Has Been Released

A screenshot of the application.
Screenshot.

Backstory

Let’s take a quick moment for an abridged history of Precision Keyboard.

A while back I was writing some articles on audio synthesis and decided to make an experimental Unity WebGL app to test to combine some of those concepts. This turned into the WebKeys demo. It was designed to be primarily for WebGL but also had considerations for being deployed to desktop and mobile devices. After getting deep into the project I finally discovered some technical limitations that shot the WebGL aspect dead in the water. The main issue being Unity’s audio API won’t allow streaming PCM generation. Whether this is Unity, FMOD or a WebGL limitation; either way no bueno – and that’s kind of important for an audio synthesizer. Like, that’s the core thing a digital audio synthesizer is expected to do!

About the time I discovered the WebGL version was a no-go, I was also finally building for Android and testing the application on my cellphone (Galaxy 8). It was working fairly well. So I decided to pivot to Android production. No iOS version. That would be nice, but it has an expensive barrier to entry if you’re not already an Apple user. It would require buying an iPhone/iPad and an Apple laptop – both are premium priced devices).

Where To Get The app

So after planning for 3 months development, 6 months later (see the discrepancy there?) I have an initial version released, click the badge to visit the store page for Precision Keyboard.

Get it on Google Play

Live Your Best Wallflower-App-Self!

The Precision Keyboard app is not a hit and not exactly blowing up – but partially FOR a lack of trying. As of this moment I have 1 active user and 4 lost users. I might just completely remove the ads because I’ll be lucky if I make 10 cents on it within 10 years. As a keyboard application, there’s not too many good moments where an ad can be shown. Not without resorting to some annoying dark pattern behavior. But that’s whatever. I’m not going to take marketing and monetization too seriously. That was never a goal. I’d hate to get lost in that when I have other ideas that have been waiting for a long time in the queue of things I wanted to try.

Taking A Breather

It’s gone through several rounds of testing, but if I’m being honest it’s not as crisp as it could be from a QA standpoint. But, all the big issues should be fixed. The comprehensive testing checklist is 22 pages long and takes multiple days to go through so I’m fatigued from repeating it ad nauseam. There’s always some imperfection that could use a little more tweaking. I also work my best when I understand what I’m dealing with and have had time during the course of at least several days to let things stew in diffuse thought. And since I’ve never done a lot of these things like publishing and all the post-development stuff, I figure I might as well just jump the gun and see how things initially play out for the experience.

At any rate, it’ll be nice to ramp down and take a break from it – if anything just to get some detachment to it so I can revisit it later with a fresh perspective. I can probably also use the experience as topics for future articles. There were definitely oodles of enhancements and entire major features that were omitted for the sake of sanity. Maybe I’ll reconsidered adding them in the future.

Here’s a tangent, why does Unity call it the WebGL platform? While those builds use WebGL (the web browser standards based of OpenGL) for 2D and 3D hardware accelerated graphics, there are other web browser standards, libraries and technologies that go into a Unity application to support it running in the browser. Seems like it should be just HTML5, or Web (because the 5 in HTML5 might get dated).

– Stay strong, code on. William Leu