Introduction to note~ for Max from Musikforschung Basel on Vimeo.

For musicians, this could be the Max external to end all Max externals. Max has long been a powerful, open-ended environment for creation. But sometimes you want a piano roll, or a score, or a timeline. Efforts to do that in the past have been sketchy at best.

note~ gives you all these things in a single add-on.

At its heart, it’s a classic MIDI sequencer. It records and plays back sequence, and lets you edit note values. That’s already fairly revolutionary to have in the Max environment. But then things get interesting: in addition to the graphical display, you can script input and output to and from the object, meaning you can create your own, custom sequencing tools. You get an interface you recognize, but with the power to control every action or drive anything with the sequence. (There’s a nice example involving video.) And that means combining this with the rest of the objects in Max gets fairly intense.

There are four objects:

  • note~, a standard scriptable (or mouse-driven) timeline for Max messages, each with regions that can open other event objects.
  • note.eventEditor, a piano roll-style editor – but with 32-bit floating-point accuracy, including for microtones.
  • note.score shows a conventional musical staff with functions like nested triplets and microtonal pitch description.
  • note.time translates note~’s relative beat-based timestamps to and from beats, bars, and seconds.

Now, you can think of this as a sequencer and go from there, but if you want to dive down the rabbit hole, chew on this description:

From a technical point of view note~ for Max can be considered as a multidimensional realtime database. Every region (i.e. sequence of events) in note~ represents a database. Every event represents another database itself and can hold floating point lists of arbitrary length plus text. In contrast to MIDI protocol note~ does not distinguish between note messages and control messages. Instead note~ introduces freely assignable event types to distinguish between data, each customizable with its own properties.Note~ also sends and receives a sync signal, hence it is possible to synchronize note~ to the Max transport and to Max for Live or synchronize note~ objects among themselves which makes it very easy to create polyrhythmic structures.

Three new, interactive, scriptable views for events in Max.

How to handle event descriptions in music software sounds to me an excellent article topic, or dissertation topic, or way to past the time on a sabbatical in some cave in the wilderness for a few years.

The project is a research endeavor of the Music University in Basel, Switzerland, first seen at the Max-themed event expo’74 last year in Brooklyn. (Thanks to Holger Stenschke from that team for giving us the heads-up.)

Now in public beta:
(Mac-only; perhaps a Windows build is in order?)

Want More Boggling?

Via comments (none other than Pete from Livid Instruments), here’s another excellent sequencer-in-Max alternative:

rs_delos by Roby Steinmetzer has something note~ doesn’t – breakpoints. Otherwise, it’s the same idea, though you get controller data alongside pitch information. The downside: no notation. It also looks a bit less scriptable, though I’d have to play with each.