The biggest thing I've added since the last rollup is a notion of tempo. I play drums with my feet as usual, and I've written some simple heuristics (see ) for identifying the downbeats. Once you know where the downbeat falls and how often they are, this opens up a lot of possibilities:
The most common tool musicians use seems to be the FCB1010. Not only does it have twelve buttons it has two expression pedals. While this would be nice, it's too bulky for me: I already have many things under my feet so I would need to move my feet too far to press the buttons. So I built something instead:
This is my footboard v3 with its four velocity sensitive pads, but now with six multi-color switches within easy reach of my toes. It's velcroed on to the main section and connects via USB:
This is not at all a complete list, but I think it shows the range of what people have tried.
One axis of variation here is how much of the playing is live. At one end you're dancing to an entirely premixed track, while at the other all the sounds are triggered in the moment by the musicians:
window.postMessage(), but the a
MessageChannelhas the advantage of being clearer, only requiring validating origins on setup, and handling delegation better. Reading this 2016 post, however, I was worried that it might have enough overhead that
postMessagemade more sense in performance-sensitive contexts. Benchmark time!
I made a test page which alternates
between loading trycontra.com/test/messageChannelResponse.html
I'm using two different domains so that I can test cross-origin
performance. First it loads
messageChannelResponse in an
iframe, waits for it to
load, and then times how long it
takes to pass in a
MessagePort and receive a response on
it. Then it does the same basic operation
postMessageResponse with plain
This is a worst-case for
MessageChannel, since I stand up
the while channel only to use it a single time.
|Code||Apartment Price Map|