Hookpad is a tool for quickly prototyping musical progressions using intervals as building blocks:
- Relatively quick to get started / come up with something that sounds okay, once you understand the interface.
- Unclear who the target user is. Someone with little to no musical background would have a difficult time understanding the features, while someone who understands musical intervals wouldn’t use a clunky online tool to prototype. Is there a middle ground?
- Many of the features are heavily tied to musical notation. E.g. time signature, inversions, emb?
- Interface is clumsy and bloated: the click to add + drag to increase the note length is not intuitive.
Changes I Would Consider Implementing
Simplify the interface: limit the number of features available to augment the musical progression. I would remove things like chord inversions, and time signature — or at least attempt to make them more generic features.
Make the entire interface drag + drop: this is a more natural / common interaction on the web, and eliminates the musical notation assumption of building in order or writing a rest.
For a midterm, I prototyped a sequencer called “stock music”. Here is the premise:
- Patterns in nature are abundant, allowing us to model and represent them via scientific, abstract, or creative means.
- What patterns can we observe man made structures / institutions, for example the financial markets?*
- Could we hear those patterns?
*Typically a question reserved for economists, bankers, traders, etc.
Create a sequencer whose steps represent the latest price & trading information for given stocks / indices.
Here is what the first prototype looks like:
This one lets you change the height of the bars to change the frequency of the step.
I struggled a bit this week to challenge myself. I’m continually tempted to just build a fully functioning, robust sequencer that works in the browser. But I’m not sure this would be a fruitful exercise for a couple reason:
- Sequencers are a valuable framework to explore computer music, but I’m not convinced they’re the route I want to explore with code of music.
- Physical sequencers are great interfaces, but with the web you run into a lot of design challenges / issues because of space and lack of physical affordance. If I’m going to do something on the web, it should take advantage of something more interesting (e.g. sockets, 3D, etc.)
Spent the last week using traceroute to try to get an understanding of where my Internet traffic is routed through when I browse the web.
The following sites were pinged from various locations across NYC (my apartment in Williamsburg, ITP, Crown Heights, a couple coffee shops, a bar …):
It was a pretty simple bash script to get the job done:
traceroute google.com >> traceroutedump.txt
grep '\(.+\)' ./traceroutedump.txt -E -o > ips.txt
This gave me a list of the ips, of then I parsed and handled in python for a few operations:
- getting rid of the parentheses surrounding each IP
- using a rest API to return the location of that IP
- creating a network graph of all the cities those IPs originate in (or just IPs if no city could be found) .
The graph resulted in something like this:
My takeaway here is that final destinations are often obfuscated from understanding exactly where the traffic is going — making long hops over routers who will not return the address before reaching the final destination.
Made an 8 step sequencer based of Yotam Mann’s Tone.js Transport example.
The sequencer also makes use of a basic music theory library I made last semester, randomly generating 8 steps in the G major scale.
Sequencer here, code here.
This week in telephony, I made a simple app that lets you hear three different laughs, or choose to record your own as a voicemail and send it to me.
Unfortunately, two of the laughs are a bit annoying in my opinion. But the idea is there.
Extensions code is here.
Voicemail config is here.
First code of music class, gave this sequencer a spin:
Pretty poorly designed:
- Unclear what the numbers above each step do / how they affect pitch
- Parameters are all at the top, grouped together.
Adarsh and I made an attempt at redesigning it. Here were two pieces of sage advice we received from oblique strategies:
- Listen to the quiet parts
- Which parts can be grouped?