Adapted by David Hirst from the patchers by Jean-François Charles.
NOTE: Read the file “000-NES-Spectrale-Readme.pdf” first to understand what the patches do, and how to run and control them.
Download and unzip: 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-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.
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-02
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
NES-Tools has been created for people who want to:
- Open a recorded sound file.
- Process it in some way.
- 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.
- Open the relevant tool using its name from the list above.
- Open a sound file, and turn on the ezDAC. Adjust your audio system (start with the levels turned down).
- 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.
- Open a new sound file under the “Record” section. Press “Record” when you want to record sound to the new file.
- 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).
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).
29 June 2017
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 0.8.0.1b and cage 0.5.0.1b
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.