“Enter TableauMan”: Creating Useful Data Visualizations with old school Guitar Tab and Metallica

Off to Never Never Land... I've always been a big guitar dork and the other day I had a weird idea. I thought what if I took some of the massive amount of text-based guitar tablature available on the net, and somehow programatically imported it into a normalized database structure. Could I do it quickly, and then, WHAT could I possibly DO with this data. Would anyone give a shit? Well, I do.

I decided to test it out - some python, a sample tab file (heh), and a few hours later I had... well, a table of oddly formatted song data ~5k rows deep. What the hell do I do with this? Let's throw it at Tableau, add a dash of 'creative usage', and viola you have...

Version 0.1 of the "Hackified TABleau Guitar Learning System"! Just kidding, kinda..

The thing is, I built my process so I *could* crank through more song files and visualize them in this same way - not to mention the chord-naming and note transcription that I had planned, but got hella tired before it was fully implemented, so it's left out for now.

Give it a try, I also integrated a video that is keyed to particular parts / phrases of the song, so you can select a song "part" (via the icons), the tab will skip there and the video will queue up to that particular part. You can also just scroll through as-is - it is the exact sequence for the song, including solo (I tested it extensively)

Could you use this to learn Sandman? HELL YES, if you don't mind scrolling and clicking...

Kinda cool, eh?

Do you enjoy Metallica-themed Data Visualizations? Check out MetallicAnalysis for ton more!

If you want the code of my "tab crunching" python script, check this post here.

  • http://twitter.com/aknock Alistair Knock

    There are lots of reasons why Tableau Server could do with an API to use with JavaScript (automatic minute-by-minute refreshes of views for one), but this is by far the best. Auto-scrolling tab visualisation alongside the video. Perfect for your lesser used Guitar Hero TV.

    • http://ryrobes.com/ Ryan Robitaille

      Thanks for the comment, Alistair!

      For sure. I’d settle for any kind of “realtime” data viz capability actually, it doesn’t make sense in lots of cases (analytics wise, as Tableau is positioned anyways) – but in some (biz) scenarios it’s almost essential. Maybe in version 8.0+?

      Like you said, even some type of javascript Callback would make it (more) hackable.

      Lately for realtime stuff I’ve been using some of the more ‘pure’ push/pull “websocket” type dashboards like Leftronic, Ducksboard, Geckoboard, etc. They fit that niche well – but are NO comparison to Tableau in every other way. Totally different product, but def complimentary.

  • Nicole Mendoza

    Hi Ryan, great Viz! Congratulations on getting picked as the Viz of the Day, as well! I’m a Tableau newbie– how do you get a website to load in a sheet?

    • http://ryrobes.com/ Ryan Robitaille

      Hey Nicole, thanks! You need to add the sheet to a dashboard first and then you add a web page object from the lower left corner. Once you have a web window in there, and URL actions that you fire off on the dashboard will automatically update that windows with the URL – which allows for some cool stuff. :)

  • http://twitter.com/BenSullins Ben Sullins

    In the interest of space why not just post the key and chord progression? You had to have almost hit the 100k limit here…

    • http://ryrobes.com/ Ryan Robitaille

      Hey Ben. Hah, very true. I wanted to stay 100% true to the tab file that I picked to “process” though. If I we’re writing this tab file I would have WAY less spaces due to the gap that Tableau displays (in this format / font anyways). I’ll def limit them with some SQL if I ‘crunch’ any more tab files. :)

      Sorry I missed the comment, for some reason I don’t get email notifications anymore.