Composers Little Helper


I have  ported over a selection of NES-Spectrale and NES-Tools as Max for Live devices. Most function as audio signal processors, but two of them process the FFTs of sounds, and one functions as a granular production instrument.

Read the Readme PDF file first, to get an idea of how the devices function in Ableton Live.

NOTE: Special care has been taken to make the devices below capable of multiple, independent instances in Live.

Download and unzip: NES-Max-for-Live Then install the devices in Ableton Live 10



Adapted by David Hirst from the patchers by Jean-François Charles.
V Beta-02: Updated 26 May 2019

Download and unzip: NES-Spectrale-Beta-02-2019

NOTE: Read the file “000-NES-Spectrale-Beta-02-2019-Readme.pdf” first to understand what the patches do, and how to run and control them.

Previous Version: NES-Spectrale-Beta-01



Timbre hacking the FFT.
Inspired by the work of Zack Settel & Cort Lippe (1994), Jean-François Charles (2008), and the GRM Spectral Transform and Evolution suites of audio processors, I have adapted the patches of Jean-François Charles (2011) into a set of FFT processing tools using Cycling 74’s Max environment, with Jitter matrices storing and processing the FFT.

NES-Spectrale-Beta-01 has been created for people who want to:

1. Open a sound file, or use live audio input, or both.

2. Record a portion of it in the frequency domain (FFT).

3. Process it in some way – in the frequency domain.

4. Render the result as audio, in the time domain.

5. Record the result.

Each NES-Spectrale tool is in its own folder. The NES-Spectrale suite is as follows:

NES-Distort-Del-Fbk: [New] Combines non-linear distortion, multiplication and addition to the FFT index, and adds delay and feedback, frequency bin by bin

NES-Interpolate-periodic-02-ST: [New] freezes two slices of sound, from the one sound file, and interpolates between their frequency content over the set interpolation period. Now handles stereo files

NES-Interpolate-periodic: freezes two slices of sound and interpolates between their frequency content over the set interpolation period

NES-Multi-FX-05: lets you select one of five jitter effects to apply to the FFT matrix

NES-Playtwo: has two independent play heads that can be adjusted to play across different frequency bands at different rates

NES-Playfour: has four independent play heads that can be adjusted to play across different frequency bands at different rates

NES-Transform-Mx: uses the jit.mxform2d object, which performs a 2-dimensional matrix transform on an input matrix. It can be used to perform scaling, rotation, skewing, and perspective operations on the FFT matrix.

System Requirements

NES-Spectrale requires Max 7, but it should run with the standard distribution (no custom externals required). It has only been tested on a Mac running Mac OS Sierra version 10.12.5

Attribution and Acknowledgements

Please read the file “000-NES-Spectrale-Readme.pdf” for all attributions, references and acknowledgements.



Download and unzip: NES-Tools-Beta-02NES-Tools

29 June 2017:

  • Added 02-NES-Plugin-Examples.maxpat to demonstrate how each NES-Tool effect can be its own Max object embedded in another patch.
  • Here the use instructions for 02-NES-Plugin-Examples.maxpat:

1. Turn on DAC

2. Open a sound file and play it

3. Select an effect using its radio button

4. Double click on the corresponding effect object to open its window and control its parameters

5. Adjust overall levels

6. Try another effect

7. Use one or more effects in your own patcher

About NES-Tools

NES-Tools has been created for people who want to:

  1. Open a recorded sound file.
  2. Process it in some way.
  3. Record the result, and then play it back to check it.

The above scheme is how each tool is laid out, from top to bottom of the screen.

Inspired by the GRM Tools suite of audio processors, I set out to create a set of processing tools using cycling 74’s Max environment. The idea was to just use only the standard objects that come with Max 7. As it turned out, many of the tools I wanted to create had already been implemented in one form or another in the standard distribution files and examples. What I have done is to adapt and add to the examples created by others, and assemble these tools into their own suite. That suite is as follows:

NES-Biquad~ Implements a two-pole two-zero filter (for 2 channels)

NES-Brassage~ Granulate a recorded sound

NES-CombFilter5~ Implements 5 Comb filters

NES-DelayTaps~ Up to 32 delay taps

NES-DopplerPan Simulate a Doppler effect

NES-PitchMulti~ Pitch shifter with vibrato & feedback

NES-Reson~ Up to 32 simultaneous resonators

The file 01-NES-Tools-Overview.maxpat provides a quick way to try each tool. To avoid conflicts, make sure you close a patch before opening another one.


  1. Open the relevant tool using its name from the list above.
  2. Open a sound file, and turn on the ezDAC. Adjust your audio system (start with the levels turned down).
  3. Start playing around with the parameters and levels (Note: sometimes you need to update certain values to hear the changed sounds). Some of the tools have an X-Y controller to change two of the parameters simultaneously – experiment.
  4. Open a new sound file under the “Record” section. Press “Record” when you want to record sound to the new file.
  5. Press “Stop” when you want to finish recording. You can then Open and Play the file you’ve just recorded.

Extend and Experiment

All of the tools (except NES-Brassage~) implement their processing as a separate patcher, and can therefore become their own object in Max. You can create your own master patcher that could string a series of processes together in the one patcher. 02-NES-Plugin-Examples.maxpat provides one example of how this can be done (see above for use).

System Requirements

NES-Tools requires Max 7, but it should run with the standard distribution (no custom externals required). It has only been tested on a Mac running Mac OS Sierra version 10.12.5

Attribution and Acknowledgements

As noted above, NES-Tools is really just an assembly, adaptation and/or extension of existing Max patchers. Specifically:

NES-Biquad~ Based on biquad~.maxhelp

NES-Brassage~ Based on the Max example Granularized.maxpat and its associated sub-patchers

NES-CombFilter5~ Based on “Max CombFilterMulti” M4L plugin

NES-DelayTaps~ Based on “Max DelayTaps.amxd”, distributed with Max 7

NES-DopplerPan Uses Max’s M4L DopplerPan, which was Inspired by Les Stuck and Ben Nevile’s Doppler patch (Max examples)

NES-PitchMulti~ Based on “Pitch & Echo.amxd”, distributed with Max 7

NES-Reson~ This is a variation of the M4L Delay Taps patcher, where variable frequencies are substituted for variable delays.

NES-Player Is based on “Classic Player.amxd”, distributed with Max 7

NES-Record~ Is my own kludged together recorder/player.

01-NES-Tools-Overview Is adapted from Jean-François Charles list patcher he did for for Expo’74 in 2011 demonstrating his wonderful FFT-based work

Many thanks to these wonderful software developers for making their code and examples available. Any mistakes are entirely my own.

If you use any of the above code, please acknowledge the above source(s), and send me an email of how you’ve used the tools.

Limited Liability and Safe Use

NES-Tools is distributed free to the Max user community “as is”, and is not supported in any way.

Make sure you begin its use by having all your levels turned down, so you don’t break anything, like your speakers (or your ears). Always monitor at levels designed to preserve and protect your hearing (you only have one set of ears for life).

Have fun,

David Hirst

dhirst0 AT

29 June 2017

Previous Versions


Composers Little Helper

The Composer’s Little Helper (CLH) is a Max patcher that makes use of the “Bach” and “Cage” libraries to manipulate and mix musical notation that has been saved in a “shelf” as separate segments. CLH implements musical operations such as transposition, inversion, retrograde, plus a number of other “treatments” that use the high-level “Cage” library for real-time computer- aided composition.

This version is the version that was show-cased at the Australasian Computer Music Conference December 2018 in Perth. Get it here:

Composers Little Helper Max software

To run this software, you will need Max 7 or 8 :

Plus you will need the Bach and Cage packages from this site:

You will need to download the latest versions of bach and cage

Download and install these versions manually into your Max 7 (or 8) “Packages” folder, in your “Documents” folder. Do not use the Max Package Manager as it doesn’t contain these latest versions (at the date of writing).

Once you have installed these, run Max and Open “CLH-21-ACMC18-01.maxpat”

To understand how to use the software, read the paper “ACMC-Paper-Hirst-D-2018-09.PDF”

There are a number of .json and MIDI files to try out, or use your own.

This software is VERY experimental, so it is not supported in any way and you agree to use it knowing the author bears no responsibility for your fate.

Acknowledgements are in the ACMC paper.