Welcome to my web garden! I'm an artist programmer and researcher, based at the southwest corner of Lake Ontario (Cootes Paradise, near Hamilton, about 60 km south of Toronto). I work as a Professor in McMaster University's Department of Communication Studies and Media Arts, where I coordinate the Networked Imagination Laboratory (NIL), and teach in our undergraduate and graduate programs.

Here are some of my interests: improvisation, audio, generative art/music/design, live coding, game design and studies, network music, computing and networking as an artistic medium, artist programmers and artist programming, free and open source software, open culture, laptop orchestras and audiovisual ensembles, DIY, sound studies, software studies, alternative grading, functional programming, programming language design, computational play, real-time strategy (RTS) games, media arts in relation to fascism/anti-fascism, game sound, sound synthesis, web audio, graphics programming, nostalgic computation, gardening, hiking, chess, snowboarding and snowboarding games, backcountry camping, maps, seed-saving, web/digital gardening, etc

Here are some quick links to the projects I think people are perhaps most likely to be looking for:

And here are some links to other materials I am collecting as this web garden takes shape:

Below this paragraph are some more detailed entries for various projects I've been involved with over the past 15 years or so. This material was part of the portfolio I submitted when I went up for promotion to Full Professor not too long ago, and I plan to move it around, move it elsewhere, as I develop this website more as a digital garden and less of an academic portfolio.

Projects

LocoMotion (live coding language for dance, choreography, 3D avatars):

Created in collaboration with Kate Sicchio and a team of research assistants (full credits at github repository) at Virginia Commonwealth University and McMaster University

Punctual (audiovisual live coding language):

Punctual is a live coding language that aims to use similar abstractions for both visual results (fragment shaders) and audible results (audio synthesis), while also providing emphatic notations for transitions between new and old programs.

estuary (browser-based collaborative live coding platform):

Created as the primary outcome of two SSHRC grants, and the focus of ongoing development, Estuary is a zero-installation, web-based collaborative platform for audiovisual live coding, with a dual emphasis on supporting multiple live coding programming languages (in increasingly modular ways) and on enabling networked ensembles (whether across the same room, or around the world).

Cybernetic Orchestra (open laptop orchestra):

The Cybernetic Orchestra is the open, improvising, live coding laptop orchestra at McMaster University, formed in early 2010 and still active in 2023! New members of any level of experience are invited to join at pretty much any time, on an ongoing basis. The group has released five albums, collaborated with musicians from around the area and around the world, and performed at all kinds of festivals and conferences.

MEDIAART 3L03: Game Design

I proposed the course MEDIAART 3L03 as a new course in the Media Arts program, for 2014, and have taught it 4 times since then. In the second half of the semester, the class forms into a single team to work on a collective game together.

very long cat (tabla and live coding duo):

Shawn Mativetsky (tabla) and I formed this duo in early 2015, to explore network music possibilities (improvising together while staying in Montréal and Hamilton respectively) and the possibilities of combining live coding with specific instrumental performance traditions. The name comes from a quote, misattributed to Einstein, once included in the UNIX 'fortune' program, and suggested to us somehow (I forget how) by Alex McLean, regarding the nature of the radio: "You see, wire telegraph is a kind of a very, very long cat. You pull his tail in New York and his head is meowing in Los Angeles. Do you understand this? And radio operates exactly the same way: you send signals here, they receive them there. The only difference is that there is no cat."

daem0n (guitar/live coding performance piece with autonomous agent):

In the piece Daem0n, I play guitar along with an autonomous agent that live codes the rest of the music, and sometimes I tweak the code it generates as well. I first created Daem0n in mid 2014, ahead of a series of performances in a mini "algorave" tour in the UK, and then continued to sporadically come back to the piece thereafter, making big changes to how it works and sounds (in the first version everything happened within SuperCollider, while in the last performed version SuperCollider was used for machine listening, TidalCycles was used for live coding, and code generation and display was done with JavaScript in the browser). Inspired by the example of George E. Lewis and Voyager, I plan to cultivate the piece over the long term as an improvising partner in a relatively specific musical context/idiom.

…para ser libres… (8-channel networked sound installation):

Collaboration with Alexandra Cárdenas.

  • code repository at github.com (browse)

extramuros and shared buffer (collaborative browser-based live coding editor and ensemble):

  • extramuros code repository and installation/use instructions at github.com (browse)
  • performance at International Conference on Live Coding 2015, Leeds, UK with Alexandra Cárdenas, Ian Jarvis, Alex McLean, Eldad Tsabary (watch)
  • paper at International Conference on Live Coding 2015, Leeds, UK with Alexandra Cárdenas, Ian Jarvis, Alex McLean, Eldad Tsabary (read)
  • pikselfest 14, Bergen, Norway with Alexandra Cárdenas, Alex McLean and Eldad Tsabary (watch)
  • TransX, Toronto, 23 May 2014 with Alex McLean and Eldad Tsabary (watch)

EspGrid (synchronization software for laptop ensembles):

  • website with downloads and installation instructions (browse)
  • engineering brief, 133rd Convention of the Audio Engineering Society, San Francisco (read)
  • code repository at github.com (browse)

miscellaneous solo live coding performances 2013-:

  • Improvisation on the wall of power at HAVN, Hamilton, 21 May 2016 (watch)
  • Algorave set at the Vector Game Art festival, Toronto, 22 Feb 2014(watch)
  • Algorave set with armada de lindo at first Canadian algorave, Hamilton artcrawl, 9 Aug 2013(watch)(listen)

miscellaneous software projects 2004-:

  • Inner Ear: web-based ear-training software project led by Eldad Tsabary. (github repository)
  • apert: node.js-based platform for audio-visual performance on distributed networks (for example: the mobile phones of the members of an audience at a live coding performance).(github repository)
  • Analogy: live electronic music, with sound transformations expressed in Csound. Released 2006 and currently unmaintained.(code repository)
  • Allegory: expressing combinations of sound transformations in Haskell. Released 2004 and currently unmaintained.(code repository)