Introducing the HawKeys utility

Last year I started learning Hawaiian in an effort to improve my understanding of the music that I love. I found that I wasn’t satisfied with the available tools for typing the ʻokina and kahakōs used in the Hawaiian language.

At first I wrote a little AutoHotKey script to make it easier, and it works, but AutoHotKey is kind of a heavy tool for so simple a use case.

This year I set about writing a simple Windows app that gave the same result: global hotkeys to quickly type ʻokinas and kahakōs. It mean learning some old-school Windows coding around creating hot keys and simulating the keyboard, but the result is a simple .NET 2.0 WinForms app called HawKeys. It works great, and even better, HawKeys is my first app published on the Microsoft Store!

So if you’re on Windows 10, get HawKeys on the Microsoft Store. Otherwise. if you’re on Windows XP SP3 or greater, go to Latest HawKeys Release, download the zip file and run HawKeys.exe.

You can follow the development at HawKeys on GitHub.



Transposing chord progressions with Python

As part of my ukulele practice, I’ve begun creating a small song and exercise book for my own reference. Whenever I start learning a new song, I add the lyrics and chords to my songbook. In the same vein, whenever I find an interesting chord progression, I create a page for it, and list the progression in every key.

For example, I wanted to add a page for the Hawaiian Vamp, or turnaround, which in C is D7 // G7 // C ////. The problem is it’s tedious work, and the tools online, at best, only let you transpose into one new key at a time. So I wrote a Python script to do bulk transpositions:

#!/usr/bin/env python

""" <>

Copyright 2013 Jon Thysell <>

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

import sys
import string

_flats = ["Ab", "A", "Bb", "B", "C", "Db", "D", "Eb", "E", "F", "Gb", "G"]
_sharps = ["G#", "A", "A#", "B", "C", "C#", "D", "D#", "E", "F", "F#", "G"]
_preferFlats = True

def transposeChords(chords, index):
    """Transpose the given chords by the given index"""
    global _flats, _sharps, _preferFlats
    newChords = []
    notes = _flats if _preferFlats else _sharps

    for chord in chords:
        noteParts = (chord[:1], chord[1:])
        if (chord.find("b") == 1 or chord.find("#") == 1):
            noteParts = (chord[:2], chord[2:])

        oldNoteIndex = -1
        if (noteParts[0] in _flats):
            oldNoteIndex = _flats.index(noteParts[0])
        elif (noteParts[0] in _sharps):
            oldNoteIndex = _sharps.index(noteParts[0])

        if (oldNoteIndex == -1): # Not a note
            newNote = notes[(oldNoteIndex + index) % len(notes)]
            newChords.append("".join([newNote, noteParts[1]]))

    return newChords

def main(args):
    """Take a progression of chords and print them out transposed."""
    if (len(args) == 0):
        print " [list of chords seperated by spaces]"
        print "ex:"
        print " C C7 F Fm C G7 C"
        for i in range(0, len(_flats)):
            newChords = transposeChords(args, i)
            print " ".join(newChords)

if __name__ == "__main__":

To run this you’ll need Python installed. Just save the text to a file named, and launch it from a command line with:


followed by a progression of chords you want transposed. For the Hawaiian Vamp above, I ran the following:

python C: D7 // G7 // C ////

and the script outputted:

C: D7 // G7 // C ////
Db: Eb7 // Ab7 // Db ////
D: E7 // A7 // D ////
Eb: F7 // Bb7 // Eb ////
E: Gb7 // B7 // E ////
F: G7 // C7 // F ////
Gb: Ab7 // Db7 // Gb ////
G: A7 // D7 // G ////
Ab: Bb7 // Eb7 // Ab ////
A: B7 // E7 // A ////
Bb: C7 // F7 // Bb ////
B: Db7 // Gb7 // B ////

Which, with a quick verification against this post on the Hawaiian Vamp, looks correct! The script does come with following notes:

  • It doesn’t care about the starting key, since the goal was to output in all twelve keys.
  • It just blindly replaces the note portion of each chord and keeps whatever modifiers come after.
  • Tip: If you want to know what key each line is in, just begin your progression with the starting key like I did in the example above.
  • If the beginning of a item isn’t a note (capital letter, with or without a # or b), the entire item is kept in the transposition unchanged (like the strumming bars above).
  • By default the script uses flats over sharps (my preference), though you can change that with the _preferFlats flag.

The goal was a quick and dirty script; I only spent about 30 minutes on it, and like all good code, it’ll now make my life just a little bit easier going forward.

Do you find this script useful? Have suggestions or improvements? Say so in the comments!


Rekindling a lost four-string love, Part IV

My Ukuleles From Smallest to Largest

I bought three new ukuleles when I took Anne to Hawai’i, bringing my collection up to five. (If you haven’t yet, read those stories in Parts I, II, and III.) So what happened after Hawai’i?

It wasn’t hard to maintain the enthusiasm I’d built up over the vacation. I’d bought a bunch of new strings, and went straight into restringing my old instruments. Then the first order of business was choosing a “primary” ukulele, one I intended to use most of the time. That, along with stretching all the new strings, kept me busy early on, trying to get my strumming back into shape, as I played around with the books I’d bought, along with my old material from the Royal Hawaiian Ukulele Band.

The best book I picked up was Barry Maz’s The Complete What Ukulele Players Want To Know. So much useful information, but the biggest help was the chapter on finger exercises. See, my fingers were killing me, especially on the smaller soprano ukuleles, and with weak fingers came bad picking, bad chording- just a bad sound all over. But as I stuck with my Kala tenor, and did the exercises, after two or three weeks I started seeing real improvements in my ability to work the fretboard without killing my hands.

The next break came when I found a tutor in my local area, Dave from Pacific Music. I still hadn’t found a book that I liked, and knew I needed some structure and accountability if I was going to make this thing work. Dave’s been a great resource, helping me get my sight-reading into shape, as well as exposing me to a ton of easy to play songs, (and yes, skipping Mary). He got me using Lil Rev’s Hal Leonard Ukulele Method Book 1, which together with Jumpin Jim’s The Daily Ukulele, I have both a path to follow and a lot of material to keep me interested.

As I got better though, I still felt like the tenor was a bit too much for my hands, and I found myself accepting the pain of playing a soprano, just because the sound and size felt truer to me. I want to play ukulele, not mini-guitar. I started seriously looking at getting the medium-sized concert uke, but I just couldn’t find the variety offline here on the mainland. That is, until I got to visit a music shop in California, while visiting family. There I tested a Kala concert, and I was sold on the size almost immediately. It was the best of both worlds for me; only I wasn’t looking to get yet another Kala. I figured I’d want something cheaper, so that if I didn’t like the size after all (every uke feels great in the store when you want a new one), I wouldn’t feel bad about spending the money.

Makala Concert MK-C Ukulele
My first concert ukuele, the Makala MK-C

I waited and looked online, and after much consideration and advice from others looking at beginner concert ukes, ordered a Makala MK-C from HMS, with Aquila strings (Yes, I recognize that Makalas are made by Kala).

Turns out size really did matter.

It was big enough that I could hold it upright and not worry about it tipping over while I moved up and down the fretboard. It was small enough that I could play it standing up without needing a strap. I had enough room for my fingers without having to overstretch my hands. I could keep my arms in a more neutral position at my sides; not elbows scrunched in like on the sopranos.

It immediately became my primary instrument. I played it for a couple months, on through the holidays, having a blast the entire time. Since it was among my cheapest ukes, I wasn’t afraid of it. I could wail on it, really get into it, without having to baby it. That made me bolder on all of my instruments, so I had more fun playing those too.

But it wasn’t long before the itch for another ukulele came back. I’d found my size, but I didn’t plan on playing the Makala for the rest of my life.

I’d been given a taste of Hawai’i-made ukes, now I just needed a justification for getting one.

See, I’d told myself that I wouldn’t buy a really expensive uke until I was good enough to feel like I’d earned the right to play it. I didn’t want to drop some major cash, only to let the hobby fizzle out again, and leave me with even more expensive decorations. I hemmed and I hawed for weeks, before finally giving in.

Playing ukes makes me happy. It’s a great stress reliever. My New Year’s resolution was to reduce stress, and I’ve already got a busy year ahead of me. So I started shopping again.

I knew what I wanted. I wanted a K-Brand, solid Koa from Hawai’i. I wanted a concert-sized. And I wanted it to look traditional, like an ukulele, not a guitar, not completely blinged out. I went back and forth on several models before finally landing on a KoAloha KCM-00. I ordered it from HMS and obsessively watched the tracking number.

KoAloha Concert KCM-00 Ukulele
My perfect ukulele, a KoAloha Concert KCM-00

It’s solid Hawaiian Koa. Stylistically it’s plain, but beautiful in its plainness. I love the look of raw wood, and thankfully the gloss coat isn’t obnoxious.

It’s my first and only uke with friction tuners. I’d steered away from them before, but I wasn’t intimidated anymore, and I wanted something light and easy to handle. I was happy I did, trust me, this uke floats like a feather-weight boxer. The orange buttons are nice too.

It’s proudly traditional and someday it’ll probably become a family heirloom.

I don’t need a pickup, but I figured, if I ever did want one, now was the time to get it installed, so I got a MiSi Acoustic Trio. It’s quite amazing- no ugly controls, no tough-to-replace battery. It runs off of an easy to charge capacitor, and it’s so light you’d never know it was in there.

Oh right, the sound! I can’t describe it. It’s simply amazing.

It’s been my primary uke ever since it arrived. Don’t get me wrong, I still take out all of my ukes at least once or twice a month, to test how much better I’ve gotten at playing.

And I am getting better. I bought some basic recording equipment and ever since the Makala I’ve started posting videos on YouTube of my progress. I’m enjoying building up both my repertoire, and my techniques. I’ve got more books, am subscribed to all the best ukulele blogs, still go to classes with Dave, and even got a chance to attend a couple of Lil’ Rev’s workshops.

I practice almost every day, sometimes with a set structure, sometimes just experimenting with stuff I’ve read online. I love every minute of it.

I’ve gotten over those first major humps, and though there’s still a long road ahead of me, I’m really enjoying the trip.

Okay enough writing, time to get back strumming!


P.S. There’s no Part V post planned, but rest assured I’m sticking with it this time.

P.P.S. I even learned The Inner Light!

Rekindling a lost four-string love, Part III

My Ukuleles From Smallest to Largest

Honestly, when I sat down to write about my history with the ukulele, I wasn’t imaging a series. It’s just that I hate huge blocks of text. I like my stories bite-sized. So if you haven’t yet, I highly recommend reading Part I and Part II first before continuing on.

Let me set the stage: it’s 2012 (yes, finally, for real this time). Girlfriend Anne and I have moved in together. My ukuleles are in the closet in their cases. We’ve planned a vacation to Hawai’i for the Fall, between our birthdays. Ten nights on Oahu, my first real vacation since college, her first time in the islands.

Right at the beginning of the trip, we go the Aloha Stadium Swap Meet. I mean it mostly as an exercise to pick up a few trinkets, and to ground Anne in the “real pricing” of things in Hawai’i, keep us from wasting money in the touristy shops if we doesn’t have to.

Pacific Ukulele Tenor ESU-T14B Ukulele
The uke that that sets my heart strumming, a zebra wood Pacific Ukulele ESU-T14B

While I’m walking around, I see a stand with ukuleles. So I stroll over, curious to see what I remember. I see an uke on display with a sale sign. It’s a slim-body, zebra wood tenor. I pick it up, and it doesn’t sound half-bad. It’s easy to hold, easier even than the more expensive Kala I have back at home in my closet.

I fiddle with it, and it starts coming back to me. The only song I’d really dedicated myself to leaning in college, a finger-picking intro for September in the Rain. I have no references with me but my own memory. So I start picking. I keep making mistakes, but every time I start over I get a little bit farther, and my grin gets a little bit brighter.

I ask Anne if I should get it. We’re living together after all. If me practicing is going to bother her, than I might as well put this back on the rack and keep on walking.

For the millionth time I’m reminded why I love this woman. She tells me to go for it. She’s been listening to me play, and despite all the mistakes and backtracking, despite all the evidence that I have a long way to go, she tells me she’d love to have that atmosphere around that apartment.

So I buy it, even getting a cheaper price and a free tuner because their credit card scanner breaks down during my transaction, and I have to go run to an ATM to get cash.

I take the uke back to the hotel, meaning to take it along with us a we travel around the island. I strum a little in the hotel room, but otherwise the bug is only nibbling. It’s a nervous new energy- am I going to really pick this up again? Am I going to stick with it this time?

During the week I pick up a some books from a local music store, and a bunch of CDs of ukulele music for us to listen to in the rental car. And I plunk around with that intro to September in the Rain during those the slow moments on the beach.

The next weekend we’re back at the Swap Meet. Now that we’ve been around the island a bit, Anne’s ready to buy some gifts and stuff for the apartment. I mention that I’d always wanted a pineapple shaped ukulele, and that if we happen to see one, I might pick one up.

Melokia Soprano Pineapple Ukulele
I knew I needed a pineapple uke, and this solid acacia Melokia was just too gorgeous to pass up

This time I find a different ukulele stall, one with some seriously gorgeous instruments. I can see right away the bump in quality over the stall I visited last time, and the owner confirms it when he starts teaching me how to shop for ukuleles. I find out that the zebra wood I bought a week ago is a laminate, and though it’s still a fine instrument, the wood layers will probably split and make it sound awful in thirty years. But the way I see it, it was the right price, the right sound, and it got me back in the game.

Anyways, as I’m talking to him, I spot a pretty little pineapple uke hanging on his wall, and he lets me take it for a spin.

It’s solid acacia, trimmed in mother of pearl, and has gold tuners. The sound is sweet and mellow, and I know I simply have to have it. After I’ve made my purchase, he takes down a $3000 Kanile’a, and lets me play that for a second. My brain almost melts at how awesome it sounds, even in my beginner hands. Out of my price range, but he gives me a brochure, which I slaver over for the rest of the day.

So fast forward to the final few days of our trip, and so we’re heading up to North Shore to watch the surfers. On the way, I see a sign for an ukulele store, and I convince Anne to pull over for lunch at the taco place next door. Then of course, we pop in to see the ukes.

It’s an ukulele-lover’s dream shop! Walls and walls of beautiful ukes. And ss I get to talking to the guy working the counter, and I see a few HMS logos, I start putting two and two together and see that hey, I’ve stumbled upon the Hawaiian Music Supply’s home store! These are the guys my grandmother bought my first uke from, back when they were selling ukes out of the back of a van.

Kala Travel Soprano KA-SSTU Ukulele
The last uke I bought in Hawaii, a Kala Travel Soprano KA-SSTU

I try out a bunch of ukes, and Anne just kind of nods and smiles as I regurgitate everything I’ve learned about ukes from reading online on my phone during our downtimes in the hotel. I finally decide I need just one more ukulele, this time a Kala Travel Soprano. I’ve only been gawking at them all week on my phone.

I get the action lowered so I can play it easier, and in a bit of logistics, have them pack and ship me the zebra tenor I bought at the beginning of the week, so Anne and I only have the two smallest ukuleles to get on the plane.

We spend that very afternoon on the beach, watching the surf come in, and now with my two newest ukes, I teach her the beginning of the intro I’ve been practicing all week.

On our way back home we get caught in the whole Alaska Airlines’ network crash, and so we’re stuck in the terminal for hours. But there I am, happy as a flea (on a pile of dogs, you see) strumming away on my new ukuleles.

The bug’s bit me hard this time.

But wait, the story’s just getting started. Do I stick with it post-vacation? Stay tuned and find out!

Update (06-APR-2013): Continue reading with Part IV!


Rekindling a lost four-string love, Part II

My Ukuleles From Smallest to Largest

I first picked up an ukulele in the summer of 2002, but in ten years I hadn’t gotten beyond a half-dozen chords and one melody. By the time I’d moved to Washington State, my two ukes had become nothing more than decorations, empty hints that I was a musician (like guys who “accidentally” carry guitar picks in their loose change). If you haven’t yet, go read that story in Rekindling a lost four-string love, Part I.

Now, before I pick up my ukulele story in 2012, I first need backtrack a little to 2009, with my brief experience with another, inexpensive, “people’s instrument”. I’m talking about the tin whistle.

See, I like small, portable, entertainment. My favorite board games fit in a jacket pocket. I have packs of playing cards everywhere, in my bags, in drawers, even in my car. Now that I think of it, even back in college, when I was trying to learn the ukulele, I was also tried learning the harmonica. Harmonicas are legendary portable entertainment. The only problems were the breathing and all that tonguing. I could hardly keep my breath just being me, so playing wind instruments was just masochistic. Plus, I was trying to learn ukulele right? The harmonica quickly got lost in a drawer somewhere.

So, now it’s 2009, and I get the itch to learn an instrument again. I look at my ukes, but I think of my wrists, and I start shopping for alternatives. At the same time, I was also on a crazy personal mission to watch everything Star Trek, from beginning to end. Why you ask? Because I’ve been a self-claiming nerd for as long as I can remember, but when I really thought about it, I’d probably only seen a half-dozen episodes of The Next Generation as a child. So I set out to correct that.

Wait, what does this have to do with the tin whistle? Or learning the ukulele? Trekkies know the answer.

The Inner Light.

It’s one of the highest-rated Star Trek TNG episodes, and my absolute favorite. In it, Captain Picard, by virtue of a memory implant from an alien probe, experiences living an entire lifetime with a now extinct people. Most memorable is the titular song he learns to play on a little whistle. So now, sixty pounds lighter than I’d been in college, and with Captain Picard at my back, the idea of a wind instrument doesn’t terrify me anymore. I knew I’d found my new instrument.

Me and my Clarke Tin Whistle
Me and my Clarke Tin Whistle

I went online and bought myself a Clarke Tin Whistle, but much more importantly, I picked up The Clarke Tin Whistle Deluxe Edition by Bill Ochs. It was, by far, the best book on picking up a new instrument, any instrument, that I’d ever read. As I mentioned in Part I, I don’t have a musical background. And though I had a tall stack of ukulele books, most went straight into the grunt-work of learning an instrument, and just weren’t any fun. Frankly, I’d had enough of Mary and her damn little lamb.

But in Bill’s book, within a week, I had a half-dozen songs under my belt. Sure, Mary was in there, but so were others, longer, more interesting songs that sounded pretty even if I didn’t recognize them. Match that with the simplicity of playing the whistle itself, and I was having a blast. Presentation matters, especially for someone like me, with no musical background. And with the tin whistle, I had an extremely portable instrument that was fun to play, and with the book I felt like I was making real progress.

So why am I not writing about rekindling a lost six-hole love? Why did I put down that whistle?

Guilt mostly.

I felt like I should really be playing the uke. I mean I loved ukuleles. My grandmother had bought me one cause I said I was serious about learning it. I’d even bought an expensive one and dragged it around Africa with me. And so after a couple months, as I spent my time elsewhere, the little whistle went into the drawer along with the harmonica.

So why did it take another three years before I picked up the uke? Guess you’ll have to wait until Part III.

Update (02-APR-2013): Continue reading with Part III!


P.S. Though I set aside learning the whistle, I’d learned something else, something far more valuable. I’d learned that learning an instrument didn’t have to be all grunt work up front with all the fun at the end. That there was a logical progression to learning to play that didn’t need Mary and one chord over and over for hours. And in any area of study, it’s a powerful thing when you learn not just what you aim to learn, but the overall structure and progression for learning things of that category.

It just takes a good teacher. I learned my first programming language at age 8, but without any structure, any wisdom. I hadn’t internalized what it meant to program. It was through my high school computer science teacher that I got a grasp of how to learn a computer language. What to expect. What I needed to know to be able to use that language to solve the problems before me. That skill, learning how to learn a programming language, later became a cornerstone of my career as a software tester.

It’s the same thing with natural languages. When I learned French in high school, I didn’t really remember a thing later. Like most Americans, I had a scatter-shot of language education, especially grammar. Not that important if you’re a native speaker, as long as you’re surrounded by people who speak correctly, you’ll pick it up naturally. But for a foreign language, especially in my case, where immersion wasn’t possible or even encouraged, I was just parroting most of the time. I had no roadmap for turning my thoughts into words. But in college, I learned how to break a language down, to know what things I needed to learn, so that I could function in an immersive environment. By the time I was learning Swahili in Tanzania, I was driving my teacher crazy because I kept wanting to jump ahead of my classmates. I could see the bigger picture, and so knew ahead what I types of things I was going to need to know. But after ten weeks of training, when I was thrown in the deep end of completely on-my-own immersion, and I swam just fine.

Not to put too fine a point on it, but I ended up teaching computer science in Swahili. No way would I have been able to do that, if I didn’t understand how to learn programming, and how to learn a natural language. And computer science is hard enough to teach in your own language!