Piano Tops

Buckminster Fuller begins his Operating Manual for Spaceship Earth:

I am enthusiastic over humanity’s extraordinary and sometimes very timely ingenuity. If you are in a shipwreck and all the boats are gone, a piano top buoyant enough to keep you afloat that comes along makes a fortuitous life preserver. But this is not to say that the best way to design a life preserver is in the form of a piano top. I think that we are clinging to a great many piano tops in accepting yesterday’s fortuitous contrivings as constituting the only means for solving a given problem.

One modern day piano top is the keyboard I’m using to type this blog post. The QWERTY layout was designed to avoid printer jams on typewriters. It may not be the most efficient layout, but we cling to it. When I see tools like Apple QuickType, handwriting-to-text and speech-to-text, I wonder how these new tools for transcribing text might impact the expression of our ideas.

A recent study found that handwriting promotes deeper understanding than typing (link). The scientists’ theory is that the ease of typing leads to a more notes but shallower processing.

When i want to save a thought or idea, what is the best way? Sometimes I’ll reach for whatever’s around, like somebody in a shipwreck grasping for a piano top. I used to send emails to myself with hashtags that IFTTT would automatically load into the appropriate Google Sheet. Lately I’ve been taking notes on my phone, using Evernote where I can record audio or type with a skeuomorphic keyboard, and if I had an ipad I could even try to convert my handwriting to searchable, digital text.

At what point do I benefit from a tool, and at one point should I just be using my internal memory / brain? When i save ideas in un-centralized locations, it feels like I’m scattering little pieces of my mind. But these things I am doing—creating that IFTTT script and my own weird hashtag system—is, much like the piano top, an imperfectly designed solution to a problem (my imperfect memory) that I am solving with yesterday’s fortuitous contrivances.

One way or another, there are always going to be piano tops. People are always going to use things that were designed for one purpose in ways that the designer did not intend. And I can’t think of a tool without any predecessor—if I thought a little harder I might be able to divide tools into some basic categories. Hacked solutions like the piano top are an important precursor for tools because they demonstrate that there is a need. In a world without piano tops, we would not have any of the tools we have today.

FMA Social Data

FMA-Genre-User_bipartiteI applied some of the many techniques that we covered in Gilad Lotan’s Social Data Analysis class to the Free Music Archive, a curated resource for free legal mp3 downloads. I directed the FMA before coming to ITP, so I already had some hunches about what I might find. But I had primarily dealt with its database through a CMS, and I was excited to explore using new tools. My goal was to uncover data that could help users discover music, connect users with similar taste, chart trends and make sense of the FMA’s user community.

Using custom MySQL queries, I worked with timestamped tables for Track Favorites, Track Downloads and Track Listens, as well as tables for Genres, Friendships (between users), Users, and Tracks.

My first hunch was that only a very small percentage of users sign up for accounts, since you don’t need to register in order to download. I found that of 58,012,839 total track downloads, only 401,380 ( 0.69 %) were associated with a logged in user ID. I decided to limit my Track Downloads data to logged in users, because a table of 58 million was hard to work with.

My second hunch was that, of the registered users, a much smaller group of them is the most influential, active, and inter-connected, and it might be useful to highlight the recommendations of these more active users. I found found that 37,140 registered users have downloaded a track, 21,664 users have favorited a track, but only 1,303 have created a playlist. For each of these metrics, there are a few very active users, and a long tail of users who are less active. For example, here’s what the graph looks like mapping user ID to number of favorites:

User ID to # of Favorites

I wanted to get a better sense of the user community of the FMA with a network graph. I created a graph using NetworkX in Python, where every user who has favorited a track gets a node, and edges are drawn between users who have common favorites, as well as users who friend each other. I plotted the graph using different layout algorithms in Gephi. At first, I found it difficult to isolate modularity and find communities within the FMA userbase beyond one central group and a bunch of relatively quieter outsiders.



My hunch is that users can provide a great pathway to music discovery. But most users don’t participate in the social aspect of the site by friending their fellow users, and it’s hard to find users since there is no user search functionality. So I made a recommendation method that suggests users based on favorites, listens and downloads. I used Manhattan Distance and Nearest Neighbor Algorithm so that users’ tastes do not need to overlap directly. I don’t have great visuals to show for this, and I’d need to keep working on it before it could offer really good recommendations for tracks and/or users, but I think it would be a useful thing to bring to the site. It could recommend both tracks and users based.

Nearest Neighbor user recommendations

Next, I wanted to see how tracks achieve popularity on the site. Is there a correlation between favorites and downloads? I compared time series data for favorites and downloads (by registered users only) for the 10 most favorited and 10 most downloaded tracks. Click to expand these:


Brian Clifton suggested I use Rolling Mean to get a smoother plot of the data:


I was surprised to find relatively steady trends here—some tracks are consistently popular. On the other hand, some seem to take a while before becoming popular. Others are downloaded frequently, but not favorited, like the Christmas song—why is that? During class presentations, it was suggested that I dig deeper into this Time Series data to find if the users who favorite are also the users who download.

Looking at the time series data for all favorites, I found that there were big spikes in favorite-ings on certain days:

Screen Shot 2014-12-03 at 7.41.19 PM

I wanted to see if these days meant that a specific track had debuted on the site—perhaps on the front page—or if a user suddenly became very active in exploring and favoriting. I found that, in many cases, days with many favoritings like May 22 2014 were when a new user registered for the site and started to favorite a bunch of tracks.

When certain users favorite a track, does that lead it to become popular? I tried to calculate the influence of certain users based on when they favorited tracks that would go on to become popular. My first approach involved calculating the “deltaTime” in seconds between when they favorited the track and when it was first published, and factoring in the amount of total favorites. Later I found a more useful method of assigning influence to a user would be to weight every user who favorited a track after the user’s favoriting occurred. I used the time series data for the 1000 most popular tracks, and calculated the influence of every user who had favorited those tracks.

I further differentiated each user by giving each user a dictionary of genres, and this way every user could have a global influence, as well as a genre-specific influence.

This resulted in a very different graph of users than my initial graph, and it highlights different users who I had never come across before.



I would like to continue exploring methods to spotlight users who are influential within particular genres, so that when FMA visitors browse by genre, they could be recommended users to follow. The “browse by genre” results could also spotlight tracks that are popular among the most influential users / tastemakers within that genre.

Finally, I made a bipartite version of this graph, with edges between users and genres based on how many tracks they have favorited within that genre.

Screen Shot 2014-12-04 at 8.30.15 AM


Screen Shot 2014-12-04 at 8.10.54 AMLots more to dig into, but never enough time.

MyoBlaster: Sonifying the Genetic Code of In Vitro Meat

Loading DNA Sequence

MyoBlaster generates music from the cDNA sequence of myoblasts.

Myoblasts are undifferentiated cells primed to generate Myosin, a type of protein that is specific to muscle cells.

Meat is mostly muscle. So myoblasts play a major role in the creation of all meat.

It is possible to extract myoblasts from a living animal, and place them in a context where it will continue generating muscle cells outside of the body. That context might require a serum defined by the International Serum Industry Association. It’ll come with a guarantee of traceability inspired by the farm-to-table movement.

Scientists, artists and entrepreneurs alike are experimenting with this technology. Out of the field of regenerative tissue came the potential for generating meat in vitro. The idea is inspiring, but more research and funding will be necessary before it can be put to the test at high end grocery stores.

A new process for Engineering Comestible Meat was patented last year by the company who is closest to bringing Cultured Meat to market. The patent describes processes for 3d bioprinting and weaving in fat, blood vessels, and connective tissues to more closely simulate the look, taste and mouthfeel of real meat. The patent states: “In various embodiments, the multicellular bodies, layers comprising multicellular bodies, and engineered meat products comprise non- human cells derived from, by way of non-limiting examples, mammals, birds, reptiles, fish, crustaceans, mo Husks, cephalopods, insects, non-arthropod invertebrates, and combinations thereof.” I have included some, but not all, of these potential non-human cell sources in the Myoblaster application.

I found gene sequences at ensembl.org, a project of the European Bioinformatics Institute.

I decided to sonify the cDNA. The cDNA is complementary DNA. It takes all of the things that DNA does, and boils it down to just the instructions for making a piece of protein. The instructions, or Genetic Code, are a sequence composed entirely of just four nucleotides: adenine (A), cytosine (C), guanine (G) and thymine (T). The sequence is divided into subsets of three nucleotides, or “codons,” each of which codes for one amino acid. There are 23 possible amino acids, and complex proteins—like myosin muscle/meat—can be boiled down to a sequence of amino acids which can be boiled down to a sequence of just four letters.


Last year, the supreme court ruled the human genes cannot be patented. But the ruling also explicitly states that cDNA, and the process for isolating naturally occurring genes, can be patented. CDNA is also used to generate protein-based medicine. Will it soon be used to generate meat?

In the meantime, you can play with these sequences on the Myoblaster.

Coming soon: More genes! Combine different types of meat! Comparing synthetic vs naturally occurring DNA!

Continue reading

Code Poetry Slam

So, yeah, a freakin ‘HUGO nominee recommeded ME for ArmadilloCon – yeah, good thing I accepted that invitation.

accepted that
thing I accepted dees
good thing I rodeheaver
yeah, good thing err(1)
– yeah, good wang
ArmadilloCon – yeah, king
ArmadilloCon –
for ArmadilloCon
ME for
nominee recommeded ME ville
‘HUGO nominee recommeded leh
‘HUGO nominee
a freakin ‘HUGO emmerson
a freakin
yeah so
dead men 's dust
vulgar salutation
long lewd lither loiterer
moral elevation ensues
float of a fishing-line
conical tops of mountains
barrel of small arms.
barrel of the wheel.
barrier of ice. ice
olive oil. _yellow basilicon_
battening the hatches. securing
battens of the hatches.
beam of the anchor. synonymous
land 's end bore
before or abaft the beam.
bend on the tack.
berthing of the head.
beset in ice. surrounded

Cruelty bien.
cruelty, and murder. And what
crush cloth and bones as the jaws of the hyæna crush
crushing out
cruel man is ever courageous. The popular theory, that inhumanity is
crucified at the foot of the
laden with spoils.
cruelty could add. Two of Rome’s
crushing out
cruelty and despotism that
carrots to the English governor, whose men were dying of scurvy, have
the men of Elliot’s garrison were suffering severely from scurvy,
carrots to the English governor, whose men were dying of scurvy, have
mentioned: a point which
men likely to be hostile commanders, would obviously
from the pagan laws of war which every page of the history of Christian
4,734 Christian inscriptions of the same period, only 27 were
Christian; if he wants to run away with a girl, he becomes a Christian;
cruelty, however, taken in connection with
carrots to the English governor, whose men were dying of scurvy, have
Cruelty bien.


A true purpose
A social world
A senior officer 's signature

A fore-and-aft sail, setting with a boom and gaff, in
  ships, synonymous with the spencers of brigs and schooners, and the
  spanker or driver of ships.

The true purpose
The social world
The senior officer 's signature

In size, as a ship's boat, smaller than
  the barge, and, like it, carvel-built.
true purpose
debutante wears
The senior officer 's signature

true one--arising from lateral pressure and the effect of sea when
purpose of firing signals,
  as the officer who commands her is particularly ordered to carry no
  cargo, ammunition, or implements of war.

Why are we perverse and ask for something
ask for something fu dining-room service.
and ask for fudging
perverse and ask reyer
we perverse and hunk
are we perverse duguid?
are we britz
are indri
Why moondreamer?
Why did I invite myself to this dinner
Why are you so
A true purpose
social world
A senior officer 's signature

Daily Practice: In Vitro Meat Tunes (UPDATED)

Laid Off




Assimilate Swine


Dinosaur Flesh is Back (From Extinction)


Slaughterhouse 666


Symbolic Hamburger (Death is Above You)




Additional Song Title/Ideas
Pig Out

Real Artificial

Animal Equality

Organism Equality

New Cytology

Calf Symbol (offline / too raw)

Continue reading

Hookpad Analysis & Composition

Hookpad is a sketch pad for musical composition that focuses on two primary elements: Chords and Melody.

Screen Shot 2014-11-10 at 11.20.10 AM

Even with this focus, it’s an ambitious task, because there are many secondary elements that come into play for musical composition. Hookpad toes the line between providing important features, and constraints that help guide the user towards creative composition. There is an overarching music theory component because it’s a product of Hooktheory and as such it is a very useful educational tool. But sometimes this connection to traditional notation feels constraining—it limits the potential for exploration.

It was not immediately clear where to begin with Hookpad. Hookpad has two separate timelines, one for Chords and one for Melody, but these are both towards the bottom of the page. At the top, there is a bar of global settings for the song such as signature, key, and tempo. Below that, there are settings to set the duration of the next note of a melody, and a whole slew of settings for the chord. Finally, there are the Chord and Melody timelines. All of these areas are related and useful, but I think they can be overwhelming.

Many of the settings serve to enforce the user’s knowledge of music theory. But to a novice, or to someone with a passing knowledge, they can be distancing. I have taken theory, but I’m more used to recording myself playing an instrument, and/or using DAW’s like Ableton, Logic or Fruity Loops to sketch out my compositions.

So initially I saw Hookpad as an alternative to the MIDI Piano Roll that just happens to emphasize theory. My instinct was to explore my scales and improvise new compositions using the ASCII keyboard as if it were a MIDI instrument.

Hookpad has a slew of shortcuts mapped onto the keyboard that could be very powerful, but I find them distracting from a more intuitive form of composition—improvisation. In fact, the shortcuts load on their own separate page that requires navigation away from the current page. Through keymappings, we can toggle through the notes and chords within a scale by pressing the up and down arrows while placing the chord or melody timeline is selected. More importantly, the shortcut keymap allows the user to place different chords/melody on the timeline by pressing the numbers 0 thru 7. But chords/notes can only be triggered via ASCII some of the time.

The shortcuts allow you to set duration of your note placing tool. Initially i found this to be an awkward way to compose. While users can trigger chords and individual notes of a potential melody, when it is initially loaded, Hookpad affords no improvisatory mode.

The ability to change the key’s root and mode is fun, especially if you already have an idea of what modes like Mixolydian mean from some music theory training. It would be useful to hear the mode playback when it is selected. Or, one might think they could play the scale back with keymapped shortcuts.

So the first thing a user might do would be to choose a key and mode, and explore what it sounds like by pressing the keys 0-7. But in the default mode, by doing so they will be writing a composition onto the piano roll. Obviously this can be deleted. But it is an awkward introduction to the compositional process. It doesn’t allow any time to get to know the key/mode, or to play with rhythm because every note starts with a default rhythm. Changing the duration requires hitting a separate button before placing a note in its position on a sequencer or pressing a key 0-7. This is an awkward way to program a step sequencer, and counterintuitive to the way that musical instruments are played. Instruments control duration by triggering a sound and then, typically, stopping it—controlling its duration in time in real time.

Creating an improvisatory mode would make for a much more exciting compositional process. This way, I could use my ears to explore the rules of music theory and compose, allowing the underlying theory to reveal itself naturally.

Instead, there is Record mode. Record mode is misleading. It is limited for non-PLUS users.There are also problems with it. For example, on Chrome, every sample clips on the attack while I am recording. On playback, my “recording” doesn’t clip (thankfully). But that’s not the only difference I hear when listening back to my transcription… The rhythm of my chord progression is not as I remembered playing during my performance. It is both familiar (generic) and unfamiliar (as in, did I play this?). It has taken on a rhythmic emphasis that I did not intend. In between the attack/decay of my ASCII keyboard performance, it has imposed a new rhythm on the chord progression.

I’d like to think that there is some reason for imposing additional rhythmic details onto my recorded improvisation. Maybe the goal is that I should learn to obtain the rhythmic emphasis I originally intended (and have since forgotten, because I was improvising) by getting meticulous with how I might notate that rhythm. But Hookpad’s interface doesn’t make it easy to notate/program natural rhythms for the chord progression, even if I did remember. I’ll use strumming as an example (even though Hookpad’s guitar can’t actually make any sound—it is only used for showing you how to finger the chords that are played back on piano). If I make a single chord last a full bar, I’d expect one strum to last a whole note. But, it adds additional strums. For more detailed strumming patterns, it’s hard to drag/subdivide that chord into the exact rhythm I want because I can’t make it sustain, and I can’t remember the shortcut to copy or change the duration. I think hand notation might be easier—I’d just have to draw a familiar shape to represent what I want.

Hookpad implements rests in a way that makes a lot of sense given its roots in Hooktheory. It is impossible to get from one point to another without something in between, whether it is notes or rests, there must be some notation. However, for those who are used to the midi piano roll or step sequencers where blank space between notes are treated as rests, this may be confusing. Perhaps because of this, it is impossible to drag notes from one position to another. Instead, you have to get there with something, even if that something is a rest, rests can be the most important part of a composition, and in Hookpad, you really have to think about them. (Alternately, from my experience and what I saw in class, you can still ignore them and just make really intense music with no space)

Initially, the chord and melody rolls only go up to 7. There is no resolution of the octave. This is a frustration I have with many interfaces. It was not immediately obvious that more notes were available by hitting up/down while a note is selected to eventually traverse the octave threshold. But, at least it is possible. After extending the octave, the keymappings are still limited, and notes must be moved out of the octave by selecting them and pressing the up or down arrows. It would be much easier to drag. It would also be useful to be able to set the octave of a performance rather than have to raise/lower each note after by pressing the arrow keys. Though I wish it could change octave, I understand why as a music theory app, Hookpad does not allow us to change the range of the mappings of 0 (rest) to 7 (7th note in the scale).

I tried to create a composition:

I ran into some hurdles while composing. The biggest hurdle is that I have can only use record mode 2 or 3 times (unless I upgrade to PRO). Copying and pasting are really important (repetition is key!). Hookpad’s copy/paste implementation required making some decisions about what happens when you try to paste over a preexisting space—for now, it will simply not paste, rather than replace or displace the existing block. But I can’t drag to select chords, only melody. Similarly, can’t copy the melody as an entire block the way you can with chords. Both methods have affordances that would serve each other in any compositional process that incorporates repetition.

Hookpad can tie into YouTube and knows chords to many popular songs, which is definitely going to be appealing for many, though is not as fun for me as improvisation. However, with this database, it has developed a model of the Magic Chord. It can suggest a chord that you might want to play next, based on its analysis of lots of popular songs, and give an example of a song that used that transition with a link to hear it on YouTube. This is really cool in theory. However, use of the magic chord is limited without PRO mode, and I suspect that it is also something that would require a lot of calibration if users wanted to step outside of familiar modes/progressions and into more experimental territory.

Hookpad is a promising interface for composing within a set of constraints rooted in music theory, and exploring the rules of theory through creative exploration. It could be more welcoming to novices and more closely connected to the compositional process if it placed a greater emphasis on live improvisation/performance as the default mode, rather than blocking record mode as a premium feature.

Symbolic Hamburger

Here are two draft songs I’ve been working on for the collection of Meat Chips. One is sort of a pop song with vocals, and one is an instrumental that samples the sound of meat (chewing, frying, cutting, pounding, grinding).

I’m figuring out the voice of this collection.The music is about a new industry of synthetic meat. So it should be industrial (sound of technology/machinery) and synthetic (synthesized sounds). On the other hand, I’m interested in how the meat will be marketed, so maybe there is room for jingles.


Symbolic Hamburger (Death Is Above You)