Constructivist learning and Scratch

Brennan, K. (2013). Best of Both Worlds: Issues of Structure and Agency in Computational Creation, In and Out of School. Doctoral Dissertation, Massachusetts Institute of Technology.

I had the very good fortune to attend a fancy elementary school run on solid constructivist principles. In sixth grade I got to experience the “hard fun” of Sprite Logo. Similarly fortunate kids today are learning Logo’s great-grandchild, Scratch.

A Scratch block

Karen Brennan’s doctoral dissertation looks at the ways people teach and learn Scratch, and asks how the study of programming can help or hinder kids’ agency in their own learning. Agency, in this sense, refers to your ability to define and pursue learning goals, so you can play a part in your self-development, adaptation, and self-renewal. This is interesting to me, because every single argument Brennan makes about the teaching of programming applies equally well to the teaching of music.

Continue reading

Radial drum machine update

I’m planning to be done with my thesis by (gulp) December. My collaborator Chris and I got a basic prototype of the radial drum machine together over the summer using Max and Javascript. What we learned is that you don’t want to do an audio app in Max and Javascript, since it will be single-threaded and slower than molasses in January. Since then, we’ve been building the iOS version, which is going to include more features and be closer to the version I have in my head.

Continue reading

Making it easier to be musical

Alex Ruthmann, in a blog post discussing music-making with the educational multimedia programming environment Scratch, has this to say:

What’s NOT easy in Scratch for most kids is making meaningful music with a series of “play note”, “rest for”, and “play drum” blocks. These blocks provide access to music at the phoneme rather than morpheme levels of sound. Or, as Jeanne Bamberger puts it, at the smallest musical representations (individual notes, rests, and rhythms) rather than the simplest musical representations (motives, phrases, sequences) from the perspective of children’s musical cognition. To borrow a metaphor from chemistry, yet another comparison would be the atomic/elemental vs. molecular levels of music.

To work at the individual note, rest, and rhythms levels requires quite a lot of musical understanding and fluency. It can often be hard to “start at the very beginning.” One needs to understand and be able to dictate proportional rhythm, as well as to divine musical metadimensions by ear such as key, scale, and meter. Additionally, one needs to be fluent in chromatic divisions of the octave, and that in MIDI “middle C” = the note value 60. In computer science parlance, one could describe the musical blocks included with Scratch as “low level” requiring a lot of prior knowledge and understanding with which to work.

Continue reading

My thesis proposal

For those of you curious about what I’m up to in grad school, this is the big thing. Pardon the stilted language, but, you know, academia. See the slideshow!

Update: I now have a functioning prototype of my app. If you’d like to try it, get in touch.


The Drum Loop: a Self-Guided Tutorial System for Programming Dance Rhythms


Dance music production software has never been more accessible. However, even “beginner-oriented” programs like Apple’s Garageband presume significant musical knowledge. Would-be dance producers who have access to formal music education are ill served by Eurocentric teaching methods and curricula. By and large, those wishing to learn drum programming are largely left to their own devices. This is unfortunate, because learning how to create beats does not only benefit electronic dance musicians. The ability to actively create and alter rhythms and to match their visual notation with the resulting sounds in real time sharpens the rhythmic abilities of any musician.

Continue reading

Programming languages as musical instruments

Alan Blackwell and Nick Collins. The Programming Language as a Musical Instrument. In P. Romero, J. Good, E. Acosta Chaparro & S. Bryant (Eds). Proc. PPIG 17, pp. 120-130.

Any musician who wants to be competent with digital production tools has to take on qualities of a programmer. Music notation is itself a “programming language” for human musicians, complete with loops and subroutines. Electronic music collapses composition, performance and recording into the same act.

How do you differentiate a “live” electronic performance from playing back canned sequences? One way to make the presentation into an actual performance is to include improvisation, or at least the possibility of it. Morton Subotnick is a good example. He considers his compositions to consist of his synthesizer patches and sequences. His performances, on the other hand, are mostly improvisational, deploying his preset elements as he sees fit in the moment. This is similar to the methods of jazz musicians, spontaneously recombining and hybridizing pre-learned riffs and patterns.

Subotnick schools me in Buchla-lore

Continue reading

Drum machine programming

This post has been superseded by my giant collection of rhythm patterns, which you can see here.

I wrote a general post about what makes a hot beat hot. As a followup, here’s how to program some generic patterns and a few famous breakbeats. The basic unit of dance music is a sequence of sixteen eighth notes, two measures of four-four time. Drum machines like the Roland TR-808 represent the sixteen eighth notes as an ice cube tray with sixteen slots, with a row for each percussion sound. Software like Reason and Fruityloops have drum machine emulators that follow the look and feel of the 808. The loop cycles from slot number one across to the right. When it gets to slot sixteen it jumps back to one.

Here’s how you’d count the basic loop. Above is the standard music notation method of counting two bars of four-four time. Below is the drum machine representation, with the eighth notes numbered one through sixteen.

|  1  +  2  +  3  +  4  +  1  +  2  +  3  +  4  + |
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 |

Continue reading

Game controllers as musical instruments

This is a picture of my electronic funk-soul-R&B band doing a show. From left to right, it’s Nicole Bishop, me and Barbara Singer. We were the whole band for that show. I did all the beats, samples and keyboards from my computer using a video game controller.

Here’s a screenshot of the program that the game controller is connected to.

The outer space background is my desktop image and isn’t part of the program itself. But maybe it should be.

Continue reading

How to make a hot beat

Here’s a more specific post on programming various well-known beats.

The brain is a pattern recognition machine. We like repetition and symmetry. But we only like it up to a point. Once we’ve recognized and memorized the pattern, we get bored and stop paying attention. If the pattern changes or breaks, it grabs our attention again. If the pattern-breaking happens repetitively, itself forming a new pattern, we find it super gratifying. Continue reading

Songwriting and computer programming

Writing a song is a lot like writing a computer program. They both require clever management of loops and control flow.

The simplest sheet music reads as a straightforward top-to-bottom list of instructions. You start on measure one and read through to the end sequentially. That’s fine unless the music is very repetitive, which most popular music is. The loop is the basic compositional unit of nearly every song you could dance to. The problem is that writing loops out sequentially is very tedious.

Rather than writing the same passage over and over, you can save yourself a lot of laborious writing by using repeat markers. They’re like the GOTO instruction in BASIC. Here are the first four bars of “Chameleon” by Herbie Hancock. This four-bar phrase repeats hundreds of times over the course of the song. You wouldn’t want to write them all out. With repeat markers, you don’t have to. Repeat markers give sheet music the topology of a clock face. 
Continue reading