Naming things is hard. It’s what every programmer knows, and it’s why this post has a terrible title. Anyway…

I put up a PR today that touched 94 files. I apologized to my fellow devs who had to do a code review. While people were reviewing that monster, I was writing end-to-end tests. I guess it all equals out in the end.


I don’t know about you, but weekends tend to just be two days out of seven that I don’t go to the office. Now, that’s not to say that I’m working on “work,” as in the things that I get paid to do, but I’m certainly not not working.

This weekend it’s all about trying to get the bathroom my kids use back up into working order. Notice I’m not saying finished. The goal for the end of today is to get the floor in, so I can put the toilet back in.

What do you have going on this weekend? What’s your goal?

What’s the best thing that could happen this weekend?

Happy New Year

Welcome to 2019, everybody!

I think there’s something to the concept of “momentum” in life. There was a lot, both good and bad, about 2018, but what is definite is that it had some weird energy on the way out. One of my goals for 2019, in addition to writing more here, is to reset the energy and get that momentum heading back in a positive direction. I certainly bombed out on my fitness regimen the last two weeks of the year, so I definitely have to get back to work on that.

Speaking of work, things have been great for me on that front, and I see no reason for that not to continue. I definitely had a stressful end to the year, trying to push a major rewrite of an old section of code in our app, but I didn’t get it wrapped up before vacation, so it’s going to be full steam ahead on getting that task wrapped up before moving into our first release of 2019.

So, with a little luck and good grace, there will be lots more to come. I know the focus of the writing here will take on subjects that were not foreseen when I started this site, but I hope will have some value for somebody at some point. Thanks for reading.


Hello, dear reader! It’s been a minute since I last posted here, and life continues on at its usual breakneck pace. I just wanted to put a little happiness and gratitude out into the world, and say happy holidays! More to come soon…

The Dev World

Ah, crap. I can't believe it's been more than a year since I posted here.

So, a RECAP!

When last I left you, dear reader, I was deeply embroiled in coding bootcamp at The Iron Yard Indianapolis. The good news: I successfully completed the course there, and on September 11th, began a 3-month on-the-job-training stint with Greenlight Guru, a local cloud software (SaaS - or Software as a Service) company. Huzzah! Successful career transition underway!

I completed my internship (in name only) at Greenlight, and was brought on as a full-fledged Full Stack - Front End Developer on their dev team. Huzzah! Career transition successful! It's been quite an trip so far. GG uses Ember as their front-end framework, which is quite a bit different from the React projects I had been building at the Iron Yard. But, since they're both built on top of Javascript, it just took a bit of time to become accustomed to the conventions and behavior of writing Ember applications, and now I feel like a productive, contributing member of the development team.

It was also around this time when I was contacted by my friends from Indiana Repertory Theater (remember way back when I was a sound engineer?), with the news that they had secured the funding and rights to edit and broadcast Finding Home: Indiana At 200 on the local public station WFYI. Since I had done the FOH mixing and recording, I would handle the editing and mixing of the audio to the final broadcast video. Hey, cool! The show was broadcast in December on WFYI.

Oh, did I also mention that IRT also hired me to sound design their production of The Originalist? An interesting play about Supreme Court Justice Scalia, and directed by the always wonderful James Still, it was a nice deviation back into the theater world.

Time passes, life proceeds at the usual break-neck speed.

Then, I get word that WFYI has submitted Finding Home to the regional EMMY awards for several categories, including Sound. Then, I get word that Finding Home won a Lower Great Lakes Chapter Regional EMMY Award for Sound!



A real-live Emmy award!

Yeah, so that happened!

So, as I said, life continues on unabated, the kids are starting school in a week and 1/2, Mary is quitting her job as a social worker to start an in-home daycare, and I'm still coding Ember at Greenlight, and developing a full-stack side-project for the old college buddies in React, NodeJS, Apollo/GraphQL, just to keep my skillz in various technologies as up-to-date as possible.

How's things with you?

"Hello, World!" Week 7, belly up

Okay, I've been neglecting my posting duties for a while here, so let's do a little recap. Since the last time I posted after week 4, I spent a weekend with my kids at my folks' place in MI, spent a weekend working in Bloomington, IN with good friend Jonathan Snipes, and of course, last weekend was the time to celebrate the Fourth of July. In the meantime, I've been adding repos to my GitHub like a madman.

red is bad

red is bad

So, here I am, one week from wrapping up the "Back-End Fundamentals" portion, with 3 weeks of Node.js, databases (SQL and MongoDB) and various packages and frameworks under my belt. Looking forward to moving into React, and getting back to Front-End Dev.

"Hello, World!": Week 4 kaput!

So today in my coding bootcamp adventure, we started into "Back-End Fundamentals" of web development. The new format for the Web Development course at the Iron Yard is meant to give all graduates a shot at both front- and back-end development, both to give us a chance to evaluate what we want to focus on with the last month of our training, and also to send us out into the job market with at least a foundation in both areas, regardless of our chosen specialty. We're gone headfirst into Node.js, which allows us to continue working in JavaScript and honing our understanding of that language.

I must say that, for now at least, I'm still intending on focusing on front-end dev. We'll see how this section on Node.js goes, but the projects we did for the first four weeks of class were fun to tackle, and making things look like mock-ups is a fun puzzle for me. Again, we'll see, but the thought of learning React and REACT Native sounds exciting. More to come!

"Hello, World!": week 3

So, it's hump day of my third week of code school bootcamp, and ma synapses are burnin'. Week 3 day 3 corresponds to our third day of JavaScript, and this class is rapidly burning through the pre-learning that I've managed to accumulate through years of poking my nose into books, tutorials, free "crash courses" and digging through source code for snippets I could "borrow" for my own projects.

I do catch some flack in school for being ahead of the curve compared to a lot of people in the class, but I know it's coming from the stress everybody is under, trying to make sense of all this information that's being hurled our way. I know I would feel the same way were I in their shoes. And, it won't be long until I'm in territory just as new to me as it is to them. After all, we'll be starting Ruby in a week and 1/2.

In the meantime, I try to help out as much as I can, explaining logic and syntax for things I have a good handle on. Often, I find myself talking my way into a better or more efficient way of coding a particular solution than the one that I had already written in my own code.


Okay, time for a nightcap.

"Hello, World!": week 2

Writing now from near the end of week 2 of my Iron Yard coding boot camp, and I'm kinda feeling like this dude:

TFW you've been coding for 9 days straight...

TFW you've been coding for 9 days straight...

My sister asked me how class was going, and I replied "My brain is getting fuller every day!", and that's kinda how it feels.  We've been speeding through HTML, CSS, command-line usage, flexbox, and HTML forms, and we've only had 9 classes! In the next 2 weeks we'll be getting into javascript, and after that it'll be on to back-end developing with Ruby.

More to come...

New Project: "Hello, World!"

Welcome back, folks. Today I'm starting a new project, which is upgrading my self. Today was my first day at The Iron Yard, a code school here in Indianapolis. The Iron Yard has campuses around the country, but in Indy I'm enrolled in the Web Development Career Path course, where, in 12 weeks, I hope to come out the other end with the skills to land a job in web development. 

Now, I know what some of you are thinking: Jason, you have a website! I'm reading it right now! Why the hell do you need a class?!?

Well, to be honest, right now Squarespace is doing the heavy lifting for this site. I type things in boxes and click this and that, and poof! these pages appear. Nobody is going to hire me to design their website in Squarespace. Not for any kind of meaningful salary, anyway. So, here I am! Picking up a new hustle.

Today was all about brushing up on some fundamentals, getting comfy with Terminal and the command line, and getting to know my fellow students. Everyone is really on board, helping each other out, and I get the feeling we'll all have each other's backs for the next three months and on.

More news as news develops! Thanks for stopping by.

Music for a Tuesday

So I've got a little bit of downtime between the end of my contract at IRT and the start of the next chapter in my life (more on that soon...), so here I present, on a Tuesday, a song I recorded on Monday, in the style of The Sundays:

If you don't know the original version, you should go listen to it. It's a beautiful song. I've been practicing acoustic guitar finger picking for a while now, in an attempt to get better, and this is one of the songs I practice. One day, I was having a case of FAT FINGERS while practicing, and so I decided to switch up the style of the song, so it could be strummed. Anyway, I kinda liked it, so yesterday morning I whipped up this track in Logic Pro X. I mastered it this morning, and here it is. Enjoy.


A common thing to happen in a play is to have a telephone that rings. There are many ways to ring telephones onstage, but in the current show that I'm running, our telephone, a standard desk telephone with bells inside of it, must ring through a wireless speaker. So, that means playing a sound of a telephone ringing through the speaker. Easy, right? But what if they pick up the phone in the middle of the ring? You can't just stop the sound cue, because in a telephone the clapper would stop hitting the bells, but the bells would naturally ring out. So, you split the sound into two parts, the ringing, and the ring-out. So, you play the ringing, then when the actor picks up the phone, you play the ring out. But now you have to carefully listen to the phone ringing, and NOT play the ring-out if the actor has picked up the phone in between rings! ACK. That sounds like stressful work to me, the intrepid sound operator.

Computers to the rescue!

I wrote a little AppleScript for QLab 3 which listens to the phone ringing for me, and determines if the phone is mid-ring or between rings!  If you've read this far, I'm going to assume you've had to deal with this before, so I'm going to post the script here.

tell application id "com.figure53.qlab.3" to tell front workspace
  set cueTime to action elapsed of cue "1" -- change "1" to target your repeating full ring cue
  if (cueTime mod 6.0) < 1.9 then -- 6.0 is the length of a full ring, and 1.9 is just before the ring-out: edit as necessary
    start cue "2.1" -- in this case, cue "2.1" is a quick (0.1s) fade out of the full ring
    start cue "2.2" -- "2.2" is a cue with only the ring-out portion
    start cue "2.3" -- cue 2.3 is a devamp cue, to stop the full ring cue when it completes
  end if
end tell

So, the entire sequence in the QLab Cue List would look like:

sample QLab Cue List (click for full-size)

I'll have more from the theatre realm soon, so stay tuned!


Just a quick note to apologize, both for a lack of fresh content here, but also a preemptive "sorry!" for creating a musical ear worm. I'm not prepared at this moment to unleash it upon the general public, but I will soon. So, sorry! And, you've been warned.

Another chance to hear my work!

Hi folks! Coming up in September, people in the Ann Arbor area can grab tickets to see Liberty's Secret at the Michigan Theater! I really wish I could be in town to attend this screening.

A candidate you can laugh at without crying for America •&nbsp; photo by  Tripp Green  courtesy of Liberty's Secret

A candidate you can laugh at without crying for America • photo by Tripp Green courtesy of Liberty's Secret

For those that don't know or haven't been following, Liberty's Secret is a film written, directed, and composed by U of M School of Music, Theatre and Dance professor Andy Kirshner, who I met while I was getting my BFA. Andy and I have collaborated several times, and when he approached me to help him with the post-production sound on his film, I of course agreed! I worked on the sound edit while still in Los Angeles, and shortly after moving to Indianapolis, traveled up to Ann Arbor to mix the film in the Performing Arts Technology department's excellent facilities.  It also gave me a chance to work with fellow UM grad Dave Fienup, all-around nice guy (and Detroit-area sound guy, for all your sound production and post-production needs)! Dave provided foley for Liberty's Secret, and did a bang-up job.

If anyone is able to attend this screening on my behalf, please give my regards to cast and crew, and let me know how it sounded!

Chances to hear my work!

Hello again! I just wanted to let folks know about a project I worked on shortly before leaving Los Angeles, that I kind of lost track of - y'know, with all the packing and moving and everything - but I have noticed is making the rounds of festivals, showing up on screens around the country/world. It's called Harold and Lillian: A Hollywood Love Story:

Although the couple was responsible for some of Hollywood’s most iconic examples of visual storytelling, their contributions remain largely uncredited. Through an engaging mix of love letters, film clips and candid conversations with Harold and Lillian, Danny DeVito, Mel Brooks, Francis Coppola and others, this heartfelt documentary chronicles their remarkable relationship and two extraordinary careers spanning six decades of movie-making history.

Coming up, it's appearing at the River Run International Film Festival in North Carolina, at the Buenos Aires International Festival of Independent Film Village Recoleta Room, and back in Hollywood at the end of April, as part of the TCM Classic Film Festival: all the dates are here.

It's a neat little film, full of inside-Hollywood stories about a lot of films that you know. Check it out if you can!

Logic X Key Commands: ProTools Preset

Holy pants, folks! I don't know if this was always in Logic X, or if it has just recently reappeared, but this will save me so many ⌘-Z undo actions.

My brain's memory banks thanks you, Logic developers!

My brain's memory banks thanks you, Logic developers!

Especially, the difference between the default Logic X and ProTools zoom shortcuts: ⌘+← or → for Logic, ⌘+[ or ] for ProTools. I can tell you how many times I've mashed the ProTools shortcut 5 times while using Logic, thinking I was going to zoom out or in, only to trim a region or wreak some other untold havoc on my session.

New content!

Hey folks! Just wanted to draw your attention to a new space I've created on this site - called "MUSIC & DESIGN" - which is a place for me to share some of the things I've worked on. Squarespace, my elegant and gracious web creation and hosting platform, has a template for a "music album," so I'm trying it out as a format for sampling my work. Unfortunately, I haven't yet figured out how to display all the metadata that I've so lovingly typed into each track, but I'll keep you updated if/when I do. In the meantime, check it out!


Happy 2016, everybody!

I'm in tech for my next show at IRT, The mystery of Irma Vep - 1991's most produced play and longest-running show in Brazil! The show features some great organ music by composer/sound designer Lindsay Jones, so come on down and check it out if you're in the area. Recently, IRT's resident sound designer and I were talking about QLab, and he mentioned how it would be nice to have a simple way of exporting a cue sheet from QLab, to give to stage managers. I had been looking for a project, so I thought this sounded like an excellent test case for teaching myself some Applescript. And, lo and behold, it works!

Here's a link to the .scpt file, or you can copy/paste/compile your own:

-- Export a simple cue sheet from a QLab cue list
-- Jason Tuttle
-- This script will export the cue number and name of all selected cues to a comma-delimited (.csv) text file,
-- which can be imported to any common spreadsheet program (Excel, Numbers, OpenOffice, etc...)

tell application id "com.figure53.qlab.3" to tell front workspace

   set AppleScript's text item delimiters to ASCII character 44 --comma, change to 9 for tab-delim
   global oneCue

   set theFile to choose file name with prompt "Name the .csv file" default name "New Cue Sheet.csv"
   set referenceNumber to open for access theFile with write permission
   set header to {"Cue #", "Cue Name", "Notes" & return} as string
   write header to theFile starting at eof

   repeat with eachCue in (selected as list)
     try --if you want to expand the number of fields to export, do so here
       set thisqnumber to q number of eachCue
       set thisqname to q list name of eachCue
       set thisqnotes to notes of eachCue
       set oneCue to {thisqnumber, thisqname, thisqnotes} as string --you'd have to add extra fields here
      write (oneCue & return) as text to theFile starting at eof
      on error error_message number error_number --just in case something goes wrong...
      display dialog "Error" & error_number & ": " & error_message buttons {"OK"} default button 1
    end try

  end repeat

   close access referenceNumber --close access to the file we opened

   set AppleScript's text item delimiters to "" ---reset to nothing

end tell

So, there it is. It's pretty simple, but it works. If you download or use it, let me know. If you make improvements on it, let me know. If you have a feature request, let me know that, too, and I'll see if I can make it happen.

Happy scripting!

2015 Wrap-Up

Happy new 2016, folks!

2015 wrapped up pretty well around these parts. Towards the tail end, I got to head back to my alma mater, the University of Michigan, to do the final mix of Liberty's Secret with writer/director/composer/producer Andy Kirshner. It was a whirlwind 4-day mix in one of the fabulously equipped Electronic Music studios run by U of M's School of Music. It's a terrific movie, with fantastic performances and music. Keep an eye, and ear, out for it to appear later in 2016.

Next up on my plate is at my day job at Indiana Repertory Theater, and their upcoming production of The Mystery of Irma Vep. I'm looking forward to getting to meet and work with Lindsay Jones, perhaps one of the busiest sound designers working today.

More to come, so stay tuned!