Older blog entries for dto (starting at number 89)

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]

Now playing: Vangelis "Blade Runner"

I've upgraded to RedHat 8 with Bluecurve. Except for remaining GTK1.2/2.0 weirdness, this is the first time I've seen Linux look and act truly unified. Not that it's trouble-free; I seem to have an inordinate amount of trouble getting PhpWiki installed and running on the new distro. So in the meantime I'm back to using plain text files for my daily planning.

I'm short on cash so I upgraded my computer by cannibalizing other hardware. Although I'm still down here at 450Mhz, I now have about 392MB of memory; a larger monitor (great for coding); a better graphics card; a zip drive; a working CD-ROM; and of course, better software. I've been using Evolution, Mozilla, X-Chat, Terminal, Gimp, Nautilus, and lots more; I think it moves faster than the jittery, sluggish Windows XP my brother's machine has (and that's on a 1.4 GHZ chip!)

Now is the time to complete a beta/pre-1.0 version of Octal, with all major features implemented. Coding on the Objective-C version has begun. For the time being I'm having an issue with my CVS/SSH access at Subversions but with any luck it'll be resolved by tomorrow.

Well. My two older brothers are both engaged to be married (visit www.jackandolivia.com and ticklemyblog.blogspot.com). I'm anxiously awaiting admissions decisions from the graduate CS departments of several UMass campuses. On the verge of (yes!) actual employment! Things are looking up.

I'm trying to break out into freelancing... might as well parlay my database-enabled web development and graphic design experience into something. I took over the domain name of my former employer, QwsiNet. I'm based in the Boston, Massachusetts area, in case anyone is reading :-)

I've got a new Logitech wireless keyboard, and I must say it's a real boost being able to type while sitting back in the chair with my feet up. Typing feels easier. I also have begun to realize that for one reason or another, I over-rely on the fingers of the right hand to type quickly. My left hand is not nearly as capable at fast sequencing of key presses. Got to work on that.

I had an epiphany with GNU Octal. I had been banging my head against the wall trying to solve a bunch of unrelated problems, and nailed them all with a single pattern. Coming Soon to the web; got to create a test implementation first, then I'll write it up in official GoF Pattern Form.

What a difference a year makes. Wow.

My encounter with crime!

At 3:45 this morning I snapped awake to a phone call from the UMass police, saying I needed to come down to the parking lot because my car had been broken into. I parked facing the riverwalk in the corner, and apparently some sketchy folks have been trying to steal stereos out of cars along that area (it makes for an easy getaway). The police car came and stopped them from doing further damage, since they ran away and weren't captured.

One of my rear-door windows is smashed, and the stereo was destroyed in their attempt to crowbar it out. (Apparently they didn't realize it was a detachable-face stereo, and tried to remove it wholesale.) So now I've got a plastic Newbury Comics bag taped over the window. Luckily it's on the side without all the parking stickers I need :-).

I will really miss my CD player until it's replaced. The whole incident has made me realize how much I love my little red Saturn :-/ ...

Project status!! Here is a reply I sent to an inquisitive Octal watcher, who wanted to know if the recent quietness of the project meant it wasn't being worked on anymore. I explained:

Basically the delay is a result of 2 things:

1. Starting graduate school in C.S. and moving to a different city 2. Design revisions + freakouts :-)

The project is not in any danger of being abandoned, and is still very much at the forefront of my mind.

I mention this in the log at one point: I'd begun to get very frustrated with doing certain things in C that would be trivial in a language like Objective-C (part of the GCC suite) and spent a good deal of time investigating the decision to begin coding parts of the system in that dialect. (I dislike C++ and don't think it's a good idea to base new work on it.) I wanted to make sure that nobody would notice my using Objective-C, i.e. no build problems on GNU systems, no re-entrancy problems with the runtime libs, and that sort of thing. At this point it looks 100% safe to use for GNU systems, and I really look forward to cleaning up the code.

In addition, the OCTAL api has had some new (minor) changes inspired by the latest incarnations of some of the other audio plugin API's on linux, as well as standards like DLS.

The two main parts to finish are the sequencer and the GUI. By all means the GUI is the lion's share of the work, even the partial GUI is larger than the core audio engine in code size.

I'm quite prepared to start off by giving patches to you. I've been coding for years and have a CS degree from Rice University (i.e. I know what I'm doing, more or less).

Excellent! Unfortunately this is an awkward time to start someone off on the main system, especially considering that what's currently in CVS is about to undergo some big restructuring. (I *looove* refactoring.) This is one of the reasons why I tend to steer people toward writing plugins---its interface is already defined, and doesn't require any of the paperwork involved in contributing significant code to a GNU project.

I've got design documents and such for the parts of the main system that aren't implemented fully yet (i.e. remainder of the GUI, and the sequencer) stored in a Wiki but they're in rather raw form mostly. I got involved with collaborative software design thru a wiki before, and frankly I found that a lot of Wiki pages got written instead of code :-).

There are two main priorities now:

1. For myself to finish that last 30% that needs finishing, and to document the code. That way people will have an idea of how things are organized and the architecture will be basically stable---things that will make it easier for folks to contribute on the core in the future.

2. For folks to write plugins and fool with them. Unfortunately the API is still under minor revisions, and some troubles with the C++ plugins have made me consider dropping the C++ wrapper (linking problems, and it's a hack anyway.) But the API is pretty close to final, and I feel that the documentation we've got for it is pretty good.

Shopping Report, Music Review, Bitchfest, and More

More shopping, more clothes and CD's. I'm entranced by Stereolab's Peng: the sequence of tracks 1-4 really gives me chills. Here and there the production reminds me of sounds Radiohead would use nearly a decade later on Kid A and Amnesiac. I found it hard to believe Peng was from 1992. And I love the weirdness of Mars Audiac Quintet.

I also picked up the latest full-length from Aphex Twin. Unfortunately, post-millennium, he has done exactly what Autechre did: gone from being one of the major innovating electronic artists of the 1990's to being a complete joke. There are precious few tracks worth listening to on this record, and none of them equal the melodic skill or production quality of his "middle period". Aggressive sample reuse gives the "ambient" tracks a very samey feel (vaguely oriental chimes in the vein of "Nannou", a B-Side from Windowlicker) and the orchestral piano pieces just fall flat.

The rest of the album is tired, mediocre drum-and-bass. The originality in drum arrangement, rhythmic composition, and sample creation that graced most previous efforts is gone here---the drum sounds are ripped from some old tracker's sample pack you might find on an obscure Scandinavian FTP site. And that shrill, dissonant "sample-rate conversion" effect is everywhere, hanging like a pall of smoke over the melodies---the obsession with certain facile, sonically homogenizing DSP effects that killed Autechre circa LP5 has finally snuffed out the last of 90's IDM's original megastars.

The awful truth for the elites who shunned melodists like Boards of Canada in favor of more "difficult" music: the glitch disease was terminal, the patient has died with the release of this album. Glitch-fetish and DSP-fuckery sapped attention from the first commandment of what we do---the idea that melody is music---and led the greatest electronic artists of a generation into the sorriest work of their careers. Bouncing-ball percussion is as worn-out as The Cher Vocal Effect.

Sitting in a dark, hollowed-out building somewhere under the Manhattan Bridge last year, at a show where Ariane and I had played a set earlier in the evening, watching kids actually try to dance along to Richard Devine, realizing that he'd been hovering over that PowerBook for more than an hour without producing anything resembling melody, chords, or steady rhythm----I knew, this can't seriously last. Well the iMac has crashed and all our Max patches are lost. Our Metasynth license expired, the Kyma's power supply burnt out, and glitch has imploded----in Helvetica Bold, leaving an angular plume of smoke, rendered in cubist fracture courtesy of The Designer's Republic (with a few symbols of Katakana thrown in for luck). The stench of burnt Atari or Decepticons logo t-shirts hangs over the wreck.

"Drukgs", like Autechre's awful "Confield", will probably have its staunch defenders among the elites. But don't be fooled--- don't waste your time with this flaccid and uninventive record.

How to hack + school at the same time?

My birthday was uneventful. Picked up some new CD's: Saint Etienne, Daft Punk, Boards of Canada, Stereolab, and finally got a copy of Brian Eno's Music for Airports.

I started myself a personal Wiki, to collect and organize all my notes, articles, essays, designs, ideas, and to-do lists. It's actually working quite well.

I've started back some work on Octal, though I still dither over whether to start including Objectove-C components. I feel that it would help speed up development as I spend a lot of time writing and debugging the kind of silly boilerplate that one needs when doing anything object-oriented in C.

Mostly, things are fine. I'm doing better in all my classes, feeling confident. I bet everyone gets off to a rough start in their first month at grad school.

The Sega Dreamcast is finally dead with the cancellation of what was to be its last game: Shenmue II. How awful. The system that was going out with a bang goes out, instead, with the sound of an old lady loosely flatulating into her Craftmatic adjustable bed.


80 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!