Adam Jansch : Multi-creative artist
Arduino libraries
AR1010 I2C library
AR1010lib logo

The AR1010 FM Receiver Breakout Board, by SparkFun Electronics, is a miniature FM radio receiver whose parameters can be controlled over an I2C (two-wire) or an SPI (three-wire) serial interface, thus making it ideal for connection to an Arduino.

As part of his 'radio suite' Adam Jansch chose to use the AR1010 radio board for two pieces: The Chaos Engine and Travelling. He thus decided to develop a free-standing library to access the AR1010's functionality when connected to ATmega328-equipped Arduinos.

This library uses the I2C serial protocol, accessed through the Arduino's analog in pins 4 & 5. It allows for custom initialisation, and the setting of tuning frequency, volume, hardmute and softmute values. Although the library probably isn't feature complete - Jansch only coded in the functionality he needed – it shouldn't be difficult to add in higher-level functions using the available programming guide* and some of the lower-level functions available in the library.

Download AR1010lib Arduino library 0.9 - tested on Arduino Duemilanove and Nano 3.0 (ATmega328).

*The programming guide for the Airoha AR1000 (version 0.81, RevF) is also suitable for the AR1010, and contains accurate register maps of the module's functionality.

Max/MSP patches
Expanding Delay - multichannel expanding/compressing delay
Exanding Delay Max patch

Originally an experiment into Brian Eno-esque generative form, the Expanding Delay is a multichannel delay processor where each channel’s delay time either increases or decreases over a preset period, each delay time being mathematically related to its neighbours.

The initial concept behind the Expanding Delay was to assign each delay to a speaker of its own in an 8-channel surround speaker setup, and subsequently feed material through the process to generate a spatially and temporally separated outcome, one which produces an indeterminate arrangement of the material. However, when utilized as the main processing for Vortex, with the delays set into compressing mode, Jansch chanced upon a previously unconsidered effect: surround 8-way phasing.

As the piece plays, sections of it sound separately through the speakers, appearing synchronised or not depending on where in the piece one is. However, towards the end, as the delay times reduce to around dozens of milliseconds, each speaker’s output is no longer individually perceivable; in fact the near synchronised delivery of the same output eight times phases massively, creating what can only be described as an ‘aircraft diving’ sound, not featured in the original file. This, coupled with the incoherent noise guitar and planned crescendo of the output, produces an ultimately mind-blowing finale to the piece.

Download Expanding Delay Max/MSP patches – requires Max/MSP version 4.6+, and the LObjects (patches not tested in Max 5).

MIDI Latcher - MIDI note latching system
MIDI Latcher Max patch

Conceptually very simple, MIDI Latcher provides MIDI note latching, meaning that depressing a key will switch that note on and depressing it again switches it off. Although this control paradigm isn’t usable in a regular keyboard performance scenario, it does allow for some particular effects to be uncovered. To aid a live performer MIDI Latcher is equipped with an on-screen keyboard that shows which notes are currently being held and an input to allow a pedal/button to switch off all currently held notes.

MIDI Latcher was fused with a live sampler and a interval-modulated synthesizer patch to form Snowstorm, for cello and live electronics.

Download MIDI Latcher Max/MSP patches – requires Max/MSP version 4.6+, and LObjects (patches not tested in Max 5).

Scrubbulator – performative audio loop scrubbing
Scrubbulator Max patch

One of the products of his time with HELO.pg, Scrubbulator is one of Adam Jansch’s key tools in laptop improvisation. It is a performative audio file processor, allowing digital scrubbing loop of a loaded audio file by clicking and dragging directly on the presented waveform – horizontal position changes start point, vertical position changes the loop length between 1ms and a user-settable value. It also features horizontal and vertical locking, and horizontal zooming.

The idea behind Scrubbulator came from Rogue Amoeba’s audio editing application Fission, which features a fixed length looping scrub for use in the editing process. When Jansch found this functionality to be extremely useful for laptop improvisation he went about building a more flexible implementation in Max.

Download Scrubbulator Max/MSP patches – built in Max/MSP version 5.1, requires LObjects.

Slow-down Sampler - live audio pitch and speed reducer
Slow-down Sampler Max patch

Slow-down Sampler continues Jansch’s investigations into generative form, this time by altering the pitch of incoming audio on-the-fly, therefore altering the tempo of that audio input and thus how the processed version(s) interact when layered with the original input. In this way it is not dissimilar in concept to Expanding Delay, in that it strives to replicate a source several times and place the copies in temporally unexpected ways, although Slow-down Sampler changes the pitch and temporal placement more obviously.

The way in which Slow-down Sampler achieves this live speed reduction is by recording a live audio feed into a buffer and triggering playback from that buffer almost instantly, so it acts almost like an audio through. However, along with triggering the sample to play the playback speed is altered, using an equation that allows for a pitch drop in semitones to be set (the pitch can only ever be set lower as it is temporally impossible to speed up the input, the necessary audio not having yet been recorded). Up to four slowed down voices can be played simultaneously, each having independent volume and pan controls, and a pitch detector display to tell a performer the current pitch of that voice.

Download Slow-down Sampler Max/MSP patches – requires Max/MSP version 4.6+, and fiddle˜ object (patches not tested in Max 5).

PHP scripts
Supercollider Highlighter
Supercollider Highlighter logo

Version 0.9.3

Supercollider Highlighter 0.9.3 – (8KB) PHP 5+ required

Supercollider Highlighter is a PHP script that applies syntax colour-coding to Supercollider code files for presentation on the web. It was designed for the Supercollider a day project and is based on code from Scott Hewitt’s ChucK Highlighter.

To use this script:
  1. Copy sc_highlighting.php and sc_highlighting.css to your directory.
  2. Call the sc_add_stylesheet() function to add the formatting stylesheet. Use a string as the argument to add a prepath.
  3. Call the sc_highlighter() function with the path to your Supercollider code file as the argument. Code will be placed within <pre> tags automatically. The included demo file shows this process.
Change log:
  • 0.9.3: Fixed improper colouring of keywords within other words.
  • 0.9.2: Colouring of |arg declarations| added.
  • 0.9.1: sc_add_stylesheet() function added.
  • 0.9.0: First release.
Supercollider
Supercollider a day
Supercollider a day logo

In September 2009 Alex McLean began Hackpact, a month-long coding project designed as an aid to live coding practice, and he encouraged others to join him by taking the pact. Adam Jansch was one of those people.

To keep focus on Hackpact during the month Jansch took the same approach as Scott Hewitt and his ChucK a Day project, creating Supercollider a day as a way of learning the Supercollider, and for every day of September 2009 Jansch wrote a new, or updated an existing, piece of Supercollider code, documenting his progress online.

The Supercollider a day web page can be found at http://www.adamjansch.co.uk/sc-a-day/. Out of the project Jansch created a number of simple Supercollider patches which he uses frequently for laptop improvisation, including the Input Field Disturber, the MouseFM synthesizer and the GrainFM synthesizer. He also coded Supercollider Highlighter, a PHP library for the syntax-colouring of Supercollider code displayed online.