A tiny log of haps and thoughts on the web. A journal. A feed.


I went and saw some AI & feedback music at Café Oto on Sunday. The performances were great and it was wonderful to meet some new people. During a brief Q&A discussion afterward, the word “agency” was used quite a bit to describe the ability of some feature of the performers’ setups to have an effect on the outcome of the performance. In Feedback Cell, the distribution of feedback through the matrix of performers was the agential element; in Anna Xambó it was the neural net that co-curated sounds from Freesound during the performance; in Green & Tremblay’s duo it was an untrained AI which they performed with / against. In other critical composition & musical work, agency is ascribe to properties of material, especially instrumental. Scott McLaughlin, for instance, figures material indeterminacy through particular approaches to things like multiphonics as reflecting a degree of agency performed by (or relinquished to) the physicality of the instrument.

The use of “agency” seems to me like an honorific that carries shades of anthropocentrism. Something is singled out as agential if it has a notable effect on a process of interest, in which a human is generally involved (and usually has more agency), particularly if the effect is surprising or less predictable. Environments, however, always have agency. Sara Ahmed, N. Katherine Hayles, Annahid Kassabian, Karen Barad, and Donna Haraway have all written about different ways that environments and others in proximity shape our activities, thinking, and identities (in music-specific situations, see recent texts by Mariusz Kozak, Jonathon de Souza, Andrea Schiavio, and Annie Goh, among many others). If environments always co-compose processes, “agency” must signal something else, a particular set of properties of the effect aside from the familiar ways in which material participates in human realities. I suspect that those properties are ones that seem more human because they are similar to the interventions made by the musicians (in this case).

Naturally, I want to imagine the inverse: instead of drawing borders around parts of the environment which strike me as agential because they are more like me or more directly affect what I’m concerned with, I wonder how I diffuse my own borders and behave as an aspect of the environment, which of my features and behaviours are affordances or interruptions in processes which matter to others (human and otherwise).


I seem to be doing a lot with this box lately. I’m giving a talk about it on Sunday for Piksel Festival (more info here). I’ve been posting more sound dust to debris lately because it’s #noisevember, and this week I’m working on finer tone control with feedback on the Haptic Box.


I’m performing with the Haptic Box tomorrow at the University of Leeds, alongside sets by Cathy van Eck, and Scott McLaughlin and Kate Ledger. The event will apparently be livestreamed on YouTube here.


We are happily in autumn weather here in Leeds, though I am in the form of purgatory called “writing up.” Trying to keep a balance is challenging and artistic practice of any kind seems so far away, but a deadline for solo violin has given me reason to be making some sketches. Acoustic instruments are so gratifying.


It feels like fall here in Leeds even though it’s not yet September. The Guardian are calling it a “false autumn”.


Had a fun performance with composer Mia Windsor on Thursday. Video documentation available soon – I’ll link to it from debris. First outing with the synth so I guess I’m a synthesist now (not a synthetist as I’d thought).

Performing with Mia Windsor

Flying back to Canada next week for a few weeks. I’m really excited to be with family and friends but can’t shake the climate guilt.

Heat-related events aren’t the only effects of climate collapse, but I’ve been meaning to tally the various iconic rivers that have been drying up this summer:


Here’s a breakdown of the Eurorack synthesizer patch that led to this conglomeration of sound. I would like to further break down this breakdown into more generic terms but my forearms are starting to hurt from doing too much typing lately. I don’t generally like to mention each module by name as it just feels a bit object-fetishist in a capitalist kind of way, but it’s useful in situations like this where a) there’s someone else working in the same format who is interested and b) it will help me recreate the patch. (Also, it was fun to write it like the intro to a play.) As always, feel free to get in touch with comments or questions.

Dramatis Personae

The house of 3U:

RIPPLES, an oscillating filter
STEREO DIPOLE, a pair of dual filters, generally oscillating
FLD6, a wavefolder
FALISTRI (FALI), a dual envelope generator AND some other utilities
COLD MAC (CM), many-faced
TANGLE QUARTET, a quad mixing VCA
SPORT MODULATOR 2 (SM), a dual slew processor and sample-hold
OCHD, eight unrelated triangle LFOs
COMPARE 2 (CMP), a dual window comparator
CROW, acting as an ASR with internal feedback throughout

The house of 1U:

IN and OUT
QUADRATT, four mixing attenuators
DIFF-RECT, a difference rectifier
NOISE TOOLS, acting as a simple clock throughout
FLIP, a dual Bernoulli gate

Their Many Relationships




To make that PWM wave more complicated,





That drawing tablet zones thing from the other day is great. I’m going to eventually replace this post and that one with a bigger write up. Time is a thing.


Here’s some basic math that might be useful in a certain context. The story is I’m trying to make my drawing tablet a more useful sound controller interface. The easiest thing to do is to map the X and Y directly to parameters, but that’s not very intuitive to interact with. This math allows me to define zones as points with a radius and spits out a linear measure for how close the pen / touch is to that zone (1 is exactly on it, 0 is at the radius or further). A benefit to this approach is that it allows for defining an arbitrary number of zones with arbitrary sizes and overlaps, which maps well to navigating a physical space – or at least I think it will, I’m not actually done plugging it in to the sound yet.

event: x y
zone: zx zy zr

dx = abs(x - zx)
dy = abs(y - zy)
dr = sqrt(dx^2 + dy^2)
zone_intensity = 1 - min(1, dr / zr)


I’m giving a short online presentation on some recent thinking & work tomorrow at 09:00 UTC. Feel free to drop in. The text is online as well, though I really did intend for it to be taken in in time.

I’m thinking of starting a separate journal like this one for the sound experiments I occasionally post to sonomu.club. I think I want to keep them separate from this one.

I’m going to have make a meta page about this site. Something I just added today was support for the Aileron font, but only if it’s installed on your system.


In my possibly-masochistic drive to use nvim for prose as well as code, I’ve been searching for a terminal emulator that supports variable-width characters. I finally stumbled on mlterm, a terminal aimed for use with non-western scripts. It works decently well for nvim + variable-width sans-serif font + prose, with expected caveats around anything that uses whitespace characters for positioning (no splits, nothing right-aligned, etc). After cleaning up the markdown aucmd in my nvim config to display nearly nothing other than the text (and that one c from showcmd I had forgotten), it looks like this:


It’s pretty good for notes, but there are a number of outstanding issues:

To get a sense for how this affects readability, here’s the same note in mlterm, kitty, and finally LibreOffice Writer:


All that to say: if you’re working on an nvim-powered prose editor, please don’t stop (and please don’t use electron!).


Last night as the heat was breaking, I sat out in my flat’s back garden (what North Americans call a back yard, except in this case it’s a small patch of grass and a gravel pit between our shared row-house and the back alley) and browsed the boomkat catalog, finding some great music by dakim and Sams Gendel and Wilkes.

Today I started reading Maria Vishmidt’s Speculation as a Mode of Production. I probably won’t finish because it’s very dense, but it was useful to get the gears turning on relationships between artistic and financial speculation. Even from the short amount of reading I just did, I can tell that her point is incredibly nuanced and informed, which I certainly don’t have the brain for today, as I’m still pretty fried from the previous two days’ heat.


Learning about now pages, also found some some neat tools for formatting it as an Atom feed. Gonna try it on.

Starting to use Fraidy Cat as a feed collector, which has been missing from my life for a while. Having left most of the major social medias I’ve been missing a ton of events and goings-on, so hopefully I’ll be able to use this to recoup some of that intonation.

Had a good time at Zero Parameters Festival this past weekend. Heard some cool performances, met some great people, even got a free zine. There were performers using Max, Supercollider, TidalCycles, and even Forester.

Just remembered wttr.in. What a neat thing. I get to see how hot it’s going to be here tomorrow in the terminal now! (Though it doesn’t deal with light shell themes very well.)

┌──────────────────────────────┬───────────────────────┤  Tue 19 Jul ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
│     \   /     Sunny          │     \   /     Sunny          │     \   /     Sunny          │     \   /     Sunny          │
│      .-.      +31(29) °C     │      .-.      41 °C          │      .-.      +33(32) °C     │      .-.      26 °C          │
│   ― (   ) ―   ↖ 12-13 km/h   │   ― (   ) ―   ↑ 21-24 km/h   │   ― (   ) ―   → 16-19 km/h   │   ― (   ) ―   → 13-22 km/h   │
│      `-’      10 km          │      `-’      10 km          │      `-’      10 km          │      `-’      10 km          │
│     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │
Random code snippet: insert the ISO 8601 date in vim with :r !date -I.