The Data Floweth: Finishing Up Campus Tunes

It’s been a great semester at CirrusMio, and before I get back into the swing of things for this spring term, here is the work I’ve done– summed up:

  • Identified a sample project for data collection (study of college music listening choices, ex. how do UK and Transy differ? What is WKU’s top artist?)
  • Researched and utilized API for Spotify, and ultimately implemented Lastfm API.
  • Organized, branded, and presented ‘Campus Tunes’ study.
  • Sent out Google Forms-based survey that outputs response to spreadsheet.
  • Continuously marketed study on social media sites.
  • Contacted several dozen professors and staff from across Kentucky, in both Music and Computer Science fields with information and link to survey, asking them to pass it along to their students.
    • Multiple professors did send study to all of their students.
  • Gathered usernames and colleges of each respondent and thrown into CSV file
  • Wrote Python script to:
    • manipulate up to 10,000 results per user
    • post to Moonbase’s Amazon Web Services URL
    • print results to terminal
    • post/print results based on user’s input (Whether to print tracks or artists, # of results to use)
  • Created huge Spotify playlists with user’s top tracks and shared them using Ivy

The Github repo for Python code:

Next Steps: CirrusMio is working on a script in conjunction with the Moonbase platform to run analysis on the Campus Tunes data, so no overarching results just yet, but soon.

It’s been fantastic to work with professional developers in a company with great culture, CirrusMio has rocked! Observing Agile development in action while learning about it in my Software Engineering course has been a invaluable experience, the mix of hands-on, in the field work and exploration of theories and best practices in the classroom has taught me a great amount.

Now that I’ve completed three upper-level Computer Science courses in one semester, I feel much more confident and knowledgeable about the field and my abilities, and have a more tempered direction for the years ahead of me. With more projects and code under my belt, I want to explore further into UI/UX and Front End Development, as well as Project Management. Onward!




The Study: Big Data Meets College Music

What is UK’s top artist? How do EKU and Transy differ in musical tastes?
I’m running a music study to discover the distinctive music choices of each college in Kentucky called Campus Tunes. (as a student working for Lexington-based software company CirrusMio as an internship and class credit with Transylvania University via Dr. Moorman)
Campus Tunes Brandmark Campus Tunes HowTo Campus Tunes Lastfm explainer Campus Tunes Mission

I Want To Help! Here’s the study:

I’m using’s API in connection with Spotify, Apple Music, Google Music, etc. toget JSON data, and I look forward to any interesting cultural and campus conclusions that I’ll be able to make after I run it through a database platform for analysis. There’s potential here to look into some unique patterns in colleges in a way that hasn’t been done before, and if I keep accumulating users I will be able to precisely track the top artists, tracks, and trends for Transy, UK, and any other university that I gives me a large enough sample size.
Luckily I’ve had some success with getting people onboard, but I’m still definitely in need of more data over the course of the next month, especially to get each university on the musical map. I can’t wait to see what I uncover!

Getting Everyone & Their Dog on Marketing A Study

There’s always a better way!

For a while I was pretty stubbornly stuck on using the Spotify API, and just that, for the Campus Tunes college listening study. The one problem of course was that it didn’t actually do what I wanted it to do, as there is currently no way to access a user’s top track plays through the API. However,’s entire platform is to get top track plays and manipulate that data via Scrobble, and what do you know, the API is even easier to use than Spotify’s API. To collect a sample set of users from a number of Kentucky colleges and study their listening habits, the only additional step will be for students to go into their Spotify settings and ‘Scrobble to’ in order to collect data.


The awesome parts:

  • + Top track/artist/album plays are a key and public feature, so no authorization is even needed. Yay!
  • + All that I have to request from the API is each username
  • + recently revelealed a huge update and new look
  • + Simple http requests within a well-defined API are easy to use
  • – The new update has momentarily locked down getting an API key, luckily users have shared their keys online
  • – Now I have to bring an outside feature into play in hopes that people will make a account and integrate it with their current music platform, yuck!

Example usage and response:

// API Calls

// Get artists top tracks

// Get city’s top artists

//Example response (for the request above)
/// Relevant data: name, playcount, artist, url, rank (contains name and artist)
//// also possibly: mbid, image (medium)


{“name”:”One Week”,”duration”:”FIXME”,”playcount”:”85″,”mbid”:”7922e7f2-e585-4b22-b6b3-23121a0beba6″,”url”:””,”streamable”:{“#text”:”0″,”fulltrack”:”0″},”artist”:{“name”:”Barenaked Ladies”,”mbid”:”86e736b4-93e2-40ff-9e1c-fb7c63fef5f6″,”url”:””},”image”:[{“#text”:””,”size”:”small”},{“#text”:””,”size”:”medium”},{“#text”:””,”size”:”large”},{“#text”:”×300/45e9615fca124e83a606938e2b3bc95e.png”,”size”:”extralarge”}],”@attr”:{“rank”:”1″}},

Marketing The Study

All aboard! The next step will be to share the study’s information and Google Form on social media to collect user’s usernames and listening patterns. Over the next month I’ll be writing a script for Campus Tunes and using sensors/other data collection tools to test out Moonbase as I await a sufficient amount of response from my Google Form. I’m going to design some graphics and a logo to market out as the look of the survey with the digital marketing experience that I’ve built up. I had concerns that I’d have to completely pivot my project after Spotify’s API fell through, but things are looking up now as long as I can get enough attention from my push on social media and other avenues to get this out!

Gimme Some Data! Developing Campus Tunes

It’s time to narrow in a little bit further, as I begin to design the outline and processes of my Spotify-based college music study. For the most part it’s laid out in front of me, and I will be working to specify the data that I need and advertise the study to Kentucky’s colleges next. I can’t wait to get some data and find out what the top artists are for Transylvania, and why Centre only listens to Kidz Bop!

Here is what I have figured out so far:

The Process

Campus Tunes

I need top track plays for each user, and that’s not straightforward with Spotify

As there is no outright enpoint to call for this, the only way to do capture top track plays with Spotify would be to get recently added songs in each user playlist as well as their starred tracks as an indicator of what they’re listening to. It works, but it might not be the best study. Recent developments by the music-streaming company include integrated methods to get top track plays, but those have yet to be released. For now, I am looking into’s API as a work around, because it is a connected service of Spotify and already takes in user play history through Scrobble. If this works out, it’ll probably be the way that I collect data, but may be a bit more troublesome than a single API, one-time authorization method that doesn’t depend on the user also having a account and meddling with both platforms. More research ahead… yay!

I’m excited to see the study come together, and hope that I can pull together some really interesting conclusions about campus culture with colleges in the Commonwealth as a subject. Down the road I could definitely see this Moonbase sample project turning into a full web or mobile app in the form of a Yik Yak for local music interests and discussion, and I’m looking forward to whatever is ahead.

Campus Tunes: Studying College Listening with Spotify

In the third week of my internship, I have identified a direction to guide me forward in developing a sample project for the cloud storage platform Moonbase: Campus Tunes, a Spotify-based application.

With Campus Tunes, I plan to discover the unique tastes of universities across the Bluegrass state through trends and distinctive listening characteristics. This research project delves into the intersections of music, culture, and big data by examining the influences of location, campus environment , and other factors. User playlists and any top-streamed track data from users/specific locations will be necessary to utilize data from a sample of students from at least two Kentucky institutions. As I develop further into the project, I may look into differences in Ivy League schools, state versus private institutions, and other distinctions. This application serves as a component of course credit from Transylvania University and work as an intern at CirrusMio.

A quick rundown of what I plan to do: 

    • Utilize Spotify Web API and authentication protocols to access information for local song plays, by playlist, streaming, or top hits for samples of KY college students
    • Collect and organize student listener’s information into a manipulatable format for analysis using Moonbase
    • Examine trending artists, unique music choices, and other analytics for each institution
    • Conduct and publish research on listening behaviors of users, and provide explanation about how location, culture, and community may interconnect

What’s out there: A look at other apps and research that has been conducted using location and Spotify streaming

Distinctive Artists: Unique artists indicative of each state, computed by delta in top 100 artists of each state in comparison to other states. Scaling this idea for colleges is part of what I plan to do with Campus Tunes. Kentucky’s most distinctive artist is Fall Out Boy– who called that one?

Musical Map: Cities: I’m blown away by this interactive map, it’s in the same vein as my current application and serves as an even more detailed version of “Distinctive Artists”, The coolest part of this study is that you can explore it, as Spotify created 100 song playlists for nearly 1,000 cities worldwide that present local preferences. Check out the most unique plays for Lexington and Louisvillefeaturing Kentucky-based bands like Sundy Best, My Morning Jacket, and Moon Taxi, as well as artists that resonate with folks in the Commonwealth, like the Avett Brothers.

Serendipity: Tracks when two users click play on the same song at the same time, worldwide. Some of the background processes may be of use to me, and it uses a very impressive interface and take on big data. 

Others: A whole list of Spotify-based online apps, courtesy of Reddit

Spotify Tools:

Once I get approval from Spotify to get keys for user authentication permission, I will venture further into the developement of Campus Tunes over the next 2+ months with CirrusMio. This project combines my love of internet services like Spotify and my interest in the culture of college campuses to make for an exciting study that I look forward to progressing into!

Geared Up For Launch: Starting at Cirrus Mio

Voice check: clear.

Flightplan: mapped.

Boosters: engaged.

Seatbelt: buckled. Liftoff in T-minus 3..2..1…

Featured image

My other car is the Discovery

This first week as an intern at CirrusMio has felt like a hyper-relaxed astronaut debriefing, getting a feel for the tools that I need to succeed in my anticipated exploration of Moonbase. It might not be an actual trip to the lunar body, but I’m just as excited for the coming weeks of learning and discovering at CirrusMio. My figurative spacesuit is strapped on tight, and I’m ready to go.

My ultra-intense training outline has included a run through the centrifuge, and these:

  • Git
  • Github flow
  • Jekyll
  • Markdown
  •  Github Pages
  • Atom Editor

Let me run through each of these, so that you too are locked and loaded to launch into working with Moonbase. 


The open source platform for developing software projects of any size, personal or enterprise, which is utilized for version control. Especially when operating with a large team with countless approaches to any one problem, Git saves projects from ending up as mangled, confusing, spaghetti code, by carefully merging individual work back together into the aggregate project so that it may be deployed cleanly.

Github flow

Github is a social network that uses the Git version control system. It serves not only a programming portfolio, but an entire way of producing projects. Here’s a paraphrased rundown of Github’s full guide:

The overall progress of a project is set on a ‘master branch’, like the strong and linear trunk of a great tree. What lies on this path is indicative of the operation of the final product. From here we have:

  1. Branching: A path or environment set aside from the the master branch to try out new ideas and work invidually. Branching is ideal for fixes and features, and the branch names should reflect that. If your branch  helps you discover a unique solution, you can merge branch back with the master branch.
  2. Commits: Any change made to a file (add, edit, delete). Each commit takes a snapshot of your current progress on a feature, so that you can return to that version at any point. Not only are commits important to the developer, but also any other users to track each state of your progress. It is vital to write clear messages to communicate what is going on with each commit, saving you or any collaborators down the road.
  3. Pull: Initiates discussion about your commits. Sending out a Pull Request asks the recipient for advice and review of your work, so that it may be pieced back into the master branch. Pull requests preserve a record of the historical changes to your code, allowing all to see your thought process and how the decision was made.
  4. Discuss & Review: Pull requests come back with suggestions and fixes on your branch, so a conversation is started. Make your edits and keep in contact.
  5. Deploy: After numerous Pull Requests and a final review, your branch can be deployed back to the master branch.
  6. Merge: The master branch is finally made to incorporate your changes. Congratulations!

Github Pages

A great service for testing out websites, offering plenty of attractive and responsive templates as well as free hosting for one site. Build webpages from the ground up, or begin with a flashy template with Github Pages. There are a number of ways to get a free hosting platform, I’ve used Google Drive’s hosting ability, but it’s awesome that you get a whole site with your own domain at no cost with Github Pages, even if it is for just once site.


“A simple, blog-aware, static site generator”.

Jekyll takes a bunch of raw text files in a number of file formats found in  a template directory and converts them into HTML via Markdown, and then renders an operational website. Jekyll is actually the engine behind Github Pages, so popping your rendered page into that service will allow you to host your site for free!

To use Jekyll, you will need Mac OS X or Linux to run it, but a work around does exist for Windows. I have not been able to work the Windows alternatively currently, due to issues with Ruby’s file association.


A plain text formatting syntax, and a software tool for converting plain text to HTML. Markdown serves as a component of Jekyll.

Atom Editor

Atom is an open source text editor, which is both user friendly and Github-based. I currently use Sublime Text for code editing, but I took a quick glance at Atom with the help of some online debates:

Strengths: Package development, Github ecosystem, site previews with Markdown

Weaknesses: Emmet editor plugin, not quite as polished as Sublime Text

For the most part Atom vs Sublime is just a matter of personal preference, Coke or Pepsi, Metallica or Megadeth, ‘jif’ or ‘gif’. I’m still leaning towards Sublime, partly because I kind of love the Cobalt color scheme, but also due to faster operation and a bigger user community backing it. I can foresee Atom getting the upper hand if Sublime 3 is a bust and/or open sourcing adds to the web’s favor of the editor, but for now I’d rather stay a member of the Sublime fan club. The notifications to purchase the full version of Sublime haven’t driven me crazy just yet!

In the next steps for preparing to board Moonbase, I’m brushing up on Ruby to be able to develop with the On Rails backend, and can’t wait for the learning, mentoring and challenging projects ahead of me!