Swipe card jukebox
Music, Technology

Building a swipe card jukebox using a Raspberry Pi

You know how everybody hates on recipe blogs that start posts with stories even though a) it’s good for copyright and b) stories can tell you a lot of things about humans and the why and how of their food, well if that’s you then you’re going to hate this tech recipe! Or you’ve already scrolled past this.

So. Last year, I saw this tweet:

I have never done any hardware tinkering, but I immediately wanted to make one of these for my kids. The oldest is pretty good with making requests from voice assistants, but the little one isn’t there yet and we have some other problems anyway: preferring edited or specific alternate versions, difficulty requesting things that aren’t in English, and often a lot of people in the house making a lot of noise, which leads to yelling and garbled results. (See what I did there, I defined the problems I was trying to solve for, it’s like I’m good at my job or something.)

Since I have a few Raspberry Pis I’ve acquired as conference speaker gifts, I wanted to try to use as many existing parts as possible. My first thought was that I would like to play audio through an unused Google Home Mini, but it doesn’t have aux-in and honestly I just could not decipher the documentation around Google Assistant+Actions and those type of generic names and entangled services make things highly unsearchable. I decided to go with regular audio output and figure I can keep iterating with software and/or hardware over time.

The original maker doesn’t seem to have ended up doing a write up of what he did, so I took a look at other similar things people have built. I found this blog post, which took me to their code on GitHub. Availability and pricing as well as a love for the more tactile experience told me I still wanted to use swipe cards rather than RFID, and I don’t really know Python and wanted to make something with as little configuration or dependency management as possible so I figured I was on my own code-wise. That said, that blog post gave me a general direction for approach and led me to Pi MusicBox, which also serves as the base for my player.

I finally ordered the materials off Amazon mid-December for my spouse to bring back from his trip to the US, and got to work because I only had a week to get it all done. Here’s my planner page I worked on to get a head start while I waited:

I love paper planners, this is a Happy Planner project sheet which I’m really enjoying, maybe I’ll write a post on how I use planners at some point and really become a Planner Person.

First up was testing the card reader and setting up the writer, which was not a smooth process. I had to find the writer software online, because who has a CD drive anymore? The driver took forever to finish installation for some reason, but once it got there it seemed to work. Except that the card reader wasn’t returning anything. I tried a regular old bank card (I used one for a defunct account just to be extra safe) and only got numbers, no name, even though having done my time in retail I knew my name should show up in the magstripe data. I tried writing data to a fresh card in all 3 tracks and would only get tracks 2 and 3 from the reader, or sometimes even just track 3. Seems like a malfunctioning card reader (I’ve also occasionally noticed ghost input now that the jukebox has been running for a few days). Update in 2020: I got a second card reader and it works correctly.

Because tracks 2 and 3 can only contain numbers, I decided that the best route to go would be to just encode numbers sequentially and grab that line from a list of Spotify URIs for playback. My first few tests got nowhere – successful write, but wouldn’t read. I tried finding a new card reader in person but to no avail. I tried test data again and… it worked? That’s when I realized that my test data had three numbers, so I tried putting 001 and voilà, that fixed it. After thinking through it a bit, I actually realized that this was the best route anyway – if a Spotify URI stops working, I can swap it out, and the usual ISO encoding for cards is all-caps anyway, and the URIs are case-sensitive.

I decided to put the number on all 3 tracks since the reader seemed to unpredictably read either one or both of tracks 2 and 3 and I might replace it later. This was pretty easy in the card writer software, which allows you to create cards from a file, which I generated using a quick and dirty Bash script. I also made a card with 999 as a special case for toggling playback – there is also a local web server you can access for various functionality including shutdown/reboot, but a basic toggle seemed useful for the kids.

The script itself is extremely small – it does a little Bash magic (parameter expansion!) to extract the first number it comes across, strips off any leading zeroes, and then gets the indicated line from a list of song URIs if it’s not a special case card and plays said song. I stressed about it for a long time but in the end, my first working run was less than 10 lines of code.

For labels, the initial inspiration indicated that they made a React app that pulled in the data to make printables, which is super cool! I, however, am a weirdo who despite being a programmer is still often faster knocking stuff out in Photoshop/Illustrator as opposed to writing a whole app. I also wanted to use artwork besides album covers for many of the cards so that my 2 year-old can differentiate between tracks from a Mother Goose Club or El Reino Infantil album and pick what she wants – this has already proven successful 🙂

I did not hand-make a fancy box, though I might end up 3D printing something eventually, but I did discover that some of the drawer organizers I use were a great size and are good enough for now. Here’s what I ended up with for Christmas morning:

I enjoy posting about the process of building or learning things, and I’ve had a lot of people asking me about this, so I think it makes sense to blog about the process and the result. So now that you know why I decided to build a jukebox and how I arrived at the choices I made, let’s get into the step-by-step.


  • Raspberry Pi (any model, 2+ recommended)
  • MicroSD card (1GB+)
  • Speakers
  • WiFi adapter if needed for the Pi
  • Magnetic stripe cards (mine)
  • Magnetic stripe card writer (mine)
  • Magnetic stripe card reader that emulates keyboard input (mine, the first one I had so you can avoid that one because of the issues)
  • Spotify Premium account (protip if you have kids: use a family account and set up individual accounts for devices so you don’t run into playback limitations and you keep your recommendations somewhat more sane, I name them things like Alexa so if you ever see a reference to an Alexa Sandí associated with me please know that is not my actual child and somebody has sold or stolen my data)
  • A computer that can flash SD cards, run the card writer driver and software (I’m on a 12″ MacBook), and if you want to use my templates, access Adobe Illustrator
  • USB keyboard and HDMI monitor for initial setup (I used my Magic Keyboard with a cable and a TV)
  • Whatever you need to print 2×3″ labels (I had them printed onto adhesive sheets at Office Depot and cut them to size myself)


  1. Set up Pi MusicBox. I found their documentation to be perfectly adequate, just note that when setting up Spotify you have to authorize and generate tokens that are copied into the config file.
  2. Boot up the Raspberry Pi with the card reader plugged in and log in. Test Spotify playback by running mpc add spotify:track:7GhIk7Il098yCjg4BQjzvb && mpc play
  3. Optional but recommended: fork my GitHub repo so you have your own copy and can keep your song list edits there. After forking, be sure to edit jukebox.sh to point to the songs.txt in your own repo.
  4. Run curl https://raw.githubusercontent.com/helen/swipe-jukebox/master/jukebox.sh > jukebox.sh (substitute in your own username if you’ve forked the repo above).
  5. Set root to auto-login on boot and /root/jukebox.sh to run after login so the setup can live headlessly going forward. These instructions work well, noting that the user for MusicBox is root, not pi.
  6. Run bash jukebox.sh; this will download the song list referenced in the script as songs.txt. Enter a number like 1 at the prompt that says Swipe: to ensure the script is working as expected. If you want to quit the script, hit ctrl-c.
  7. Edit songs.txt to your liking. I have found the easiest way to do this is to create a Spotify playlist and then select-all, right click, go to the Share menu item, select Copy Spotify URIs, and paste the result into the file. I also decided to paste the results into a Google Sheet along with the titles and artists extracted using a playlist converter tool so I have them conveniently numbered and saved separately.
  8. Encode the cards. I found the easiest way to do this was to write them from a file, which just loads up each record sequentially and writes it to the next card you swipe. There’s both a sample file that goes up to 250 in the repo, as well as the Bash script I used to generate that file in case you want to go higher or if you get interrupted and need to make a subset. I wrote the number for each card on the back and also tested every card in the reader after writing, which at this point should trigger the appropriate playback.
  9. Create the labels for the cards. I recommend you make them 2″ x 3″. There is an Illustrator template in the repo for those of you who are graphically-inclined. The intended artwork area is 1.5 inches square.
  10. Print the labels for the cards and stick them on – I tested each individual one again before putting the label on because I am extremely particular, but if you make a mistake it’s fine, you can change the order of the URIs in the songs.txt file (and your playlist, if using one).
  11. Shut down the Raspberry Pi – I find it easiest to do this by navigating to the web interface (typically at http://musicbox.local).
  12. Box everything up and plug it in again to test the whole experience. When it’s headless, you’ll want to wait a minute or two for the green light to stop blinking so much for everything to be ready to go.
  13. Enjoy!

If you build one, please let me know! I’d also love to hear any tips or tricks or issues you come across if you try following along with this – I’m a software developer, as far as I’ve ever experienced there are always going to be bugs 🙂


Making changes to a GitHub PR branch on a fork

A while back, GitHub added a setting for contributors to allow maintainers of a repo to push changes to a pull request branch of their fork. I've been doing a lot more work in GitHub recently and figured I'd document my Git process for handling pull requests where you just want to close up a couple small things in a given time frame and/or the originator isn't very responsive. IMO this makes it much easier to retain the commit history giving credit to the other person but still move existing PRs forward.

The essence of my process is to add their fork as a remote, switch to that branch, do stuff and commit, and then push to it. It's not really a whole lot, but I've found that very specific snippets come in very handy, even if they're short and straight-forward. I also don't like the instructions GitHub gives for making changes to a fork's branch. So, that gives us (using a real recent example):

If you use hub (I don't), I believe you can skip the first command as fetch will add the remote for you if it's not recognized. There's also the popular Git Extras, which has a pr command, but from what I've tested it doesn't use the actual remote branch the PR originates from even if you specify the remote, but rather the pulls/### branch GitHub makes for you. If you use (or decide to write) a Git helper that does the remote adding/fetching/checkout for you (e.g. git pr KZeni/patch-1 or even making it so that git pr ### could detect the remote fork and branch for that PR), let me know!


helen blog, now at helen.blog!

I have called my blog “helen blog” since the tail end of my Blogger days, and kept the name when I made the switch to WordPress (a very good switch for me, it turns out). It seems fitting that it finally gets to actually live at helen.blog, and I decided to do the right thing and move to HTTPS while I was at it.

.blog is available for “landrush” applications through Automattic, which runs the WordPress.com service. WordPress.com is great, and I keep my WordPress-specific thoughts over there for a number of reasons, but I like running WordPress for myself so I remain a user. It’s humbling, really. The trepidation of hitting the switch on a domain name change, navigating the HTTPS waters – even before getting to the WordPress part, running a site can be hard. And then there’s the WordPress part, which I’m always trying to make better.

I have to thank two tools in particular for making this a relatively easy move (for a developer). First is wp-cli, whose search-replace command saved my sanity. The other is Let’s Encrypt, which makes running my personal site over HTTPS practical. With those, I have to give a shout to this site’s host, SiteGround, which provides wp-cli by default and Let’s Encrypt through cPanel even for shared hosting, making all of this as painless as possible. They also have supported using PHP 7.0 since beta, which combined with this site running nightlies, makes me quite the tester of my own breakage 🙂


What’s in my laptop bag

I enjoy people’s “what’s in my bag” posts, but almost never see unapologetically feminine tech-oriented ones. So here’s mine! Not everything is in this bag all the time, but most of it is, whether I’m working out of a local coffee shop or flying internationally. There are some other things that make their way into my laptop bag from time to time, like my makeup bag or Bluetooth speaker or shoes (and there is space left for all of that), but those are deliberate decisions, not just a standard carry. With everything in the photo, it’s about 10 pounds.

Roughly going from left to right, top half then bottom half:

  1. Baggalini Alfa laptop tote. Apparently not actually available anymore, but I like almost everything about it and there are similar ones out there. Lots of pockets, holds a surprising amount of stuff (as you can see), short and long straps, fits under an airplane seat, brightly colored lining so I can see my things, structured bottom with feet, and can slide over the handle of a rolling suitcase. Sometimes the back zippers come open while walking (pulls that snap in place would be awesome) and they can rub against clothes, and I don’t particularly like nylon bags, but a leather or fake leather bag of this size would be unusably heavy.
  2. Bags within bags: a cheapo purse organizer and another little bag I got with some makeup samples. Most of the smaller things in the picture go in here, which I can throw into other bags if I need to or take out and put on a table. The smaller bag holds cables and goes inside the organizer.
  3. Uniqlo pocketable long hooded jacket. Weather is unpredictable and I rarely remember umbrellas; this thing is water-repellent and, because it’s long with an adjustable elastic waist, can go over my bag when worn cross-body. The lining of my laptop bag is actually a very similar magenta; it just doesn’t show up in the photo. I did not coordinate them on purpose.
  4. Small notebooks. These frequently come in handy for scribbling down thoughts or sketching ideas, and give the purse organizer more structure. 🙂
  5. Battery packs. The Jetpack one is particularly nice. I will probably get a battery pack that has USB-C at some point and replace the other one, but I like having more than one to account for having to charge them and dealing with multiple devices.
  6. Retractable USB cables with dual micro USB and Lightning ends. Being retractable keeps things neat, and the ability to connect both micro USB and Lightning devices means that I really just need the two even though there are way more than two devices in my bag that need charging.
  7. Portable power strip. USB ports that can provide up to 2.1A, 100V-240V pass-through (the only non-USB type A thing I charge is my laptop, and Apple chargers convert for you), long cable makes awkwardly placed outlets more usable, and stays neat. I am a big fan, and it’s more internationally friendly than the Belkin one a lot of people recommend (which I also have but never carry anymore).
  8. Anker dual USB wall charger. Folding plug, goes up to 2.4A from both ports (especially helpful if I’ve got my/my kid’s not-pictured iPad mini with me).
  9. Apple USB-C wall charger. Maybe someday I’ll jump to a single wall charger for both this and the above.
  10. Apple USB-C charge cable. Important to note that it doesn’t support data transfer.
  11. Karma Go WiFi hotspot. I can tether on my phone too but sometimes I don’t feel like running down its battery or turning it into a portable hand warmer.
  12. Powerbeats 2 wireless earbuds. You don’t have to turn off Bluetooth during take off or landing, so I listen to music from gate to gate without worrying about getting tangled or where exactly my phone is. I also wear these to work out and when walking around/transiting alone (but not too loud, because you still need to hear your surroundings).
  13. Bose earbuds. Bluetooth headphones don’t last forever, and these are easier to deal with for video calls through the computer; I don’t usually pair the Powerbeats with anything other than my phone.
  14. Dell USB-C adapter. Doesn’t have a pass-through for charging, but has both HDMI and VGA to cover whatever projectors I might come across as a speaker, as well as USB and Ethernet. It has a clever little folding cable and is exactly the same size as an Apple earbuds case.
  15. 16 GB USB flash drive. Sometimes sneakernet is still the best way.
  16. 10up hard enamel pin. I am (in)famously not much of a branded t-shirt wearer; pins are way more versatile (conference lanyards!) and I think ours look particularly sharp.
  17. Rose gold MacBook. What can I say, I am madly in love with my pink laptop.
  18. Laptop sleeve. While the bag has a padded laptop compartment, I like having a sleeve both for extra protection and so I can toss it into another bag if I need to. I often put my laptop on top of it instead of directly on tables, and this particular one can function as a little stand, which I haven’t used much yet but seems serviceable.
  19. Roost laptop stand and stand/keyboard/mouse case. I don’t bring this to coffee shops, but it comes with me on longer work trips and family visits. I typically don’t use the case inside this particular bag, but I wasn’t thinking about that when I pulled everything out and didn’t feel like re-doing the photo.
  20. Apple Magic Keyboard and Magic Trackpad 2. I think they are unreasonably expensive but I’m very happy with them anyway.
  21. Articulate clutch/wristlet and its cross-body strap. I backed this on Kickstarter a couple years ago and it is by far the best wallet I’ve ever had; this is actually my second one because I wanted this color, so I gave my original black one to my sister. I don’t even really care about the RFID blocking part they tout – it fits my phone and larger currency, the vertical card slots are awesome, and whatever material it’s made of is extremely sturdy and stays surprisingly clean. My husband has one of their wallets, which is also very nice. The long strap is handy when you’re going out somewhere that won’t have a good place to put the clutch down (e.g. conference after parties). It’s also very pretty. 💁🏻
  22. Credit card holder. I frequently carry just this around town, with car fob attached (keyless entry/start) and my phone. It fits in my back pocket, which is a little easier to deal with than a wristlet when handling a toddler.
  23. Business cards.
  24. Tissues.
  25. Some pens and a mechanical pencil that I wouldn’t be sad to lose. The Staedtler Triplus Ball is a staple (I’ve been a fan of their Triplus writing implements since college oh god I graduated 10 years ago), while the gel/fluid ink ones tend to change fairly often. Right now I am super into the Muji 0.38mm ones.
  26. AX Folding sunglasses. These were supposed to be for my husband but I ended up liking them too much and swiped them back. I also have a cheapo all-plastic pair somewhere; these have a metal bridge, which holds up better.
  27. Folding mirror (the square gray and orange patterned thing).
  28. Mints and gum.
  29. Slip-proof hair tie. My hair is VERY slippery, which I guess is a good quality, so these are the only hair ties that have ever worked for me without having to be tight enough to give you a headache (a very real problem). I do not carry spare ones on my wrists though; those black lines are tattoos. 🙂
  30. Collapsible hair brush. I just realized this one has a mirror inside, which is pretty fancy for something I got at a dollar store.
  31. Body lotion. I started carrying this for tattoo care but it’s generally useful. The Sweethome recently declared this Aveeno one the best lotion for most people. They also sell a bigger tube of it that’s carry-on friendly.
  32. Tweezerman Nail Rescue Kit. The cuticle nippers have saved me a lot of pain, and a nail file is a good thing to have on hand. The pusher/cleaner is more specialized but the flat end is actually pretty useful as a flat-head screwdriver, too. 💪
  33. Fresh Sugar tinted lip balm. The sheer pink of the Rosé one is subtle and universally complementary; just a swipe of this makes me feel more put together.
  34. Compact tampon (multiple). These are critical, and even if you don’t need one that week, you might save somebody else. Sometimes I wish men and other non-menstruating persons would carry one or two just to help with emergency distribution.
  35. Hand lotion. I like citrus scents, so this one is pink grapefruit.
  36. Band-Aids. I usually need them for my heels when I forget that a pair of shoes is still breaking in, so a least a couple of them are those extra sticky tough strip ones.
  37. EOS mint lip balm. Sometimes I don’t want color. Sometimes I’ll let somebody else use it (not just anybody, specific people).
  38. Lactaid. I can handle a little dairy, but like 90%+ of my East Asian peers, I am lactose intolerant. I still enjoy eating things that are heavy on the lactose and you never know where or what you might go eat with other people, so I carry a couple of tiny pills, no big deal. I think there’s even one tucked into the credit card holder.
  39. Kindle Paperwhite.
  40. Folding stand. I actually use this mostly for my Kindle so I can read a little while eating by myself (I should probably just get a case that does this), but it works for my phone, too.
  41. KIND bar. There are usually also other sturdy/portable snacks, like nuts. I am not pleasant when hangry, so this is for everybody’s well-being.
  42. Foldable water bottle. This one was a very welcome piece of swag at WordCamp Europe 2015.

2016 12″ MacBook + desk setup

I am not an early adopter, but after playing with a 12″ retina MacBook in person last summer, I knew I’d make the jump soon enough. Then the 2016 v2 (or maybe more like v1.5) updates came, and more USB-C peripherals, and that rose gold! Yes, it is very pink – possibly too pink. No, the person who tweeted that it was like having a Michael Kors laptop is not entirely wrong. Doesn’t matter: I am unashamedly into it, and also rather love the idea of having a pink laptop at tech events. 💁🏻👗👠

I agree with the praise I’ve heard: the weight, the screen, the speaker, the trackpad, the form factor; they’re all amazing. It accomplishes my major goals perfectly – a retina screen and even better portability with the (lack of) weight, smaller size, and quick disconnect from my home workstation. Performance-wise, it is essentially equivalent to the 2013 MacBook Air it’s replacing, but given that I had no problems doing my work with that machine, more power was not critical. I am also perfectly happy with the things most people seem to complain about: the keyboard (yes, it is shallow, and okay the arrow key setup still sucks) and the single USB-C port.

The single port is completely manageable, and not just through dongles (can we find a better word for these already?). There are a couple of USB-C monitors available as of the last few months, which can send power while receiving the display signal and handling I/O for on-board USB 3 ports. I went with a 2560 x 1440 27″ Acer, which is quite nice and happens to fit my not-black-hardware aesthetic. I am not running it at HiDPI (1280 x 720), for a few reasons: I have been using monitors at this resolution for several years and like my window setup, I am fairly far away from it most of the time, and it’s better for testing and QA – after all, plenty of people are not on HiDPI screens. It does not bother me next to the MacBook’s retina screen.

I am only using one of the two USB ports that are on the monitor, and that’s for my external hard drive. I have not tested the speed and don’t plan to, but it seems to be working just fine. The thing that looks like a hub in the photo of my desk is just a charger – I almost never do any data transfer over USB besides the external HD, but I do frequently need to charge things at my desk (I also have one of these on my nightstand). If you’re curious about the desk itself, I wrote a little about it here.

Finally, there are two things under the monitor: Apple earbuds and an identically-sized USB-C dongle. There are lots of these available with various ports, but this Dell one stood out to me for its clever little folding cable and having both VGA and HDMI, which is not very common amongst its peers and fully covers my usual use case for such a thing – giving presentations. The single USB port is all I need; when on the move, I prefer faster charging with a wall charger1 or battery pack with 2.1A output. Having Ethernet is really just a bonus, but chances are it will come in handy someday. I’ve only tested the HDMI and USB ports, both of which work well with the MacBook (didn’t get full resolution on this monitor with the HDMI, though). Sadly, it’s yet-another-piece-of-black-hardware and does not have a USB-C pass-through for charging (I’m highly unlikely to actually need that), but it’s solid and perfect for carrying around in my bag – it will not be on my desk almost ever.


  1. I have two different USB wall chargers I carry depending on what I’m doing, but the one that’s particularly useful is this power strip with one outlet and four USB ports. It has a long cable, which is super convenient for awkwardly-placed outlets in hotels and Airbnbs, and it handles the higher voltage you find in most of the rest of the world by just passing it through. All I might need for international travel is whichever small plug adapter for the strip itself, as items like Apple chargers and hair dryers also handle high voltage input.

I gave a deeply personal talk last weekend at WordCamp San Francisco on the intersection of my identities as musician and web developer. I’ve mostly given technical talks of a practical nature, but have been mulling over this topic for some time. As with anything, watching myself “perform” is difficult (could somebody please smack me the next time I say “right?” or laugh on stage?), but I am really happy with how this talk turned out. There are a lot of things that really came together well – an audio clip, a commissioned piece of animated art, and photos.

Check out the video embedded below, or you can also watch it on WordPress.tv.


Unintentional destruction

At WordCamp Europe, Matt Mullenweg got a question about the role of women in the WordPress community. Before he could answer, somebody shouted from the audience: “We love women!” I was gratified when Matt said “come onnnnn”, but disappointed that it was lost in the sea of applause for the preceding exclamation.

The comment from the peanut gallery was later addressed in Matt’s response: that we should think about the effects our words and actions may have on the comfort and security somebody may have with a community. This isn’t the first time in history that comment has been made – if anything, it’s one of the most-used responses when a male-dominated field has its maleness pointed out. There is very little chance that the commenter had any intention of being destructive – he probably thought it was hilarious (and I’m sure lots of people also thought it was) and accurate. In this instance, we also have the added layer of cultural and language differences among the audience.

Without realizing it, this guy did two things with those three words: made anybody whose sexual preference isn’t women feel excluded from “we”, and reminded women that their presence isn’t desired because of skill and merit, but to be potential mates for others. That doesn’t mean all people in those categories felt that way, but that is still the message it sends.

This is really unfortunate, and again, likely unintentional. When it’s unintentional, it can be hard to address. Accusations of being sensitive fly around (if being sensitive means understanding how actions actually have consequences, then you know what, hell yeah I am), and defensive reactions remind others that it isn’t their feelings that matter, only the intentions of the originator, leading to further hurt and less listening.

It’s so predictable, I can even hear it now: “Stop making that guy a villain! There is such a thing as platonic love!” But just as this person didn’t intend to harm, humans are typically unintentional with their feelings. I can try to logic things away all day: I’m established in the community, I’m a very confident person, I know lots of men who have my back, I’m not a single lady (as if that really matters – that’s how engrained the importance of being a mate is), I too love having more women around. But the logic doesn’t prevent me from suddenly feeling uncomfortable and not respected. I didn’t intend those feelings any more than that guy intended me to have them.

Let’s be better. As an open source community, I do believe that the WordPress one is generally friendlier, more welcoming, and more diverse than many others. But we can’t rest on that – we need to keep being the best people we can be, and that includes taking a moment to think about the effects your words and actions might have on the people who are exposed to them.


Every WordPress release is named after a jazz musician. I didn’t grow up listening to jazz and still don’t have much of an ear for it, despite significant exposure through college (I did terribly in required jazz classes, but I still went to concerts!). So when it came time to pick a musician for the release, I wasn’t quite sure where to go. As a pianist, I felt torn about my bias – Art Tatum came to mind almost immediately, but didn’t immediately feel right. I would also have loved for it to be Ella Fitzgerald for some hometown pride, but she’s already got a release named after her.

Then I remembered that there is a jazz musician whose work I know a little better and have loved: Benny Goodman. He’s known for quite a bit in the jazz world, as well as in pop culture – if you’re familiar with “Sing, Sing, Sing”, it’s probably this version:

In classical music, Benny Goodman is known for commissioning and premiering some of the most significant chamber and concerto works for clarinet in the 20th century, such as Bartók’s Contrasts and Aaron Copland’s Clarinet Concerto. Being married to a clarinetist, I am deeply familiar with these works and their lasting influence.

When I settled down to work with Michael Pick on the release video, we chatted about what the style and tone of the video should be like. You can see his genius in the end product – it’s absolutely everything I wanted, and more:

If you listen carefully to the background music, you’ll notice that it’s classical music with piano and clarinet; specifically, the third movement of the first Brahms Sonata for Clarinet and Piano, a piece that Benny Goodman never recorded, although he did record its sister sonata. What you might not know is who’s performing it, and I’m really pleased to reveal that it’s actually my husband and I playing!

Pick and I think it worked out beautifully with the visuals and the tone of the video, and I love that I was able to add just a little something extra to a release that I’ve been so proud to lead. I hope you all enjoy 🙂

Web, WordPress

Final Projects: Website Construction I [TH481A], Summer 2011

Had a really great two weeks with my summer session students this year. After 15 hours of instruction on everything from digital content for musicians to file and folder organization to HTML basics to a PHP/MySQL powered events calendar, here’s what they came up with:

All in all, I think they came out pretty damn well! When I think about the wide-eyed look these conservatory-trained musicians all gave me when I started going on about tags and servers on the first day of class to the new efficiency with which they are all editing in Textwrangler/Notepad++, saving, uploading with Filezilla, and viewing in the browser, I’m selfishly proud of myself and also very proud of these students, all of whom are my age or a little older (no extremes this year).

To the students: Congrats, everyone! I know you’ll all keep tweaking away at your websites and discovering more and better things to do with them. The course website will continue to function and your accounts will remain. I may miss things on the forums after this month unless I set up email notifications on new topics somehow, so stick to email if you have an urgent question. I wish every one of you could stay for the next two week session as well. For those who are continuing on, let’s just say that you will be subjected to my zealous love of WordPress and really be thrown into the deep end. Get ready 🙂


This past weekend, Adrian and I went down to NYC for a rehearsal of this new reed quintet project he has going on. A reed quintet consists of oboe, clarinet, saxophone, bassoon, and bass clarinet; basically, like a woodwind quintet but without the sad reedless instruments of flute and horn. It’s a pretty cool sound and they’ve got a really solid group together. I tagged along to hang with some other friends in the area and to take some preliminary photos as they gear up for a music festival retreat and coming gigs. I’ll also be doing their website in the near future… once they decide on a name. In any case, I just spent a good chunk of time tweaking up one of the photos, so here’s a public preview of an awesome up and coming group!

From left to right: Benito Meza, clarinet; Doug O’Connor, saxophone; Merideth Hite, oboe; Adrian Sandi, clarinet; Harrison Hollingsworth, bassoon

Reed Quintet

Music, Photos, Projects, Web

Project Reed Quintet