I'm typing this from my brother's house, babysitting for his two insane dogs. I've got a chihuahua named "Ocho" on my lap--she's hiding from Otto the spastic Italian greyhound. What a perfect opportunity to update my advodiary.
School. Still waiting to hear back from those graduate CS programs I applied to--I don't expect to know for another month or so. Sucks having to wait just to see where I'll be in September; will I be living in Amherst, or Boston, or what? Whatever happens, I can't stand living in the towering shadow of Worcester, Massachusetts anymore. Where we had 20+ inches of snow the other day in the space of a few hours.
Code. So I've been doing a little research to finalize the application protocol for Octal. Or rather, I've been reading other people's research papers via CiteSeer. There's an interesting research project called W/Aura [paper] whose underlying message-passing-style object model I really like. The salient point seems to be that objects do not obtain information (i.e. propertly values) from another object by invoking synchronous "get" methods; instead they receive the information asynchronously, possibly in response to a request, possibly not. Not only does this neatly sidestep the RPC ontology quagmire, it also looks like a natural model for low-latency server design---asynchronous interaction means you never have to block.
Berkeley CNMAT's OSC doesn't overtly aspire to the status of an object model, but the general idea is implicit in what I gather of OSC's semantics. What OSC does bring to the table is an abstract, hierarchical namespace with slash-separated paths; it supports dynamic discovery and update of "addresses" within the namespace. I would like to support OSC, as I see no reason for the continued existence of the limiting Atari-5200-era wire protocol known as MIDI--other than for plugging a keyboard into your computer.
I've decided on the general flavour of what I had been calling the "wavetable." I wanted the general functionality but didn't want to restrict the model to just storing loop points and fine-tune. I'd been interested from the start in allowing musicians to define more complex arrangements of samples while still supporting mainstream features such as velocity cross-switching in a straightforward way. An interesting idea from the world of speech synthesis seems to fit my desire: [paper]
