Software Development [under construction]
James, S. (2017). Audio Spectral Histogram using 65536 size FFT with Frequency Bin sorting
James, S. (2017). Retrieve Images into Jitter using a Web Browser Interface for MaxMSP
James, S. (2017). 4D Audio Visualiser Abstraction for MaxMSP
![]()
This visualiser was used as a small part of my own research into Spectral and Timbre Spatialisation. Later implementations of this visualiser have favoured using the GPU for reasons of computational preservation, allowing the bulk of CPU processing to be dedicated to audio-based processes. Older implementations involved the writing of audio trajectories onto frames of video using jit.poke~, and were not as computationally efficient. This implementation utilises mxj~ with a portion of the software written in Java which is responsible for computing RGB color at the audio sample level, as the interface was designed to visualise audio signals in the frequency domain.
|
James, S. (2017). Audio Signal Discontinuity Filter for MaxMSP
(implemented using gen~) ![]()
This implementation is designed to remove discontinuities in an audio signal.
|
discontinuity filter gen~ code:
diff = delta(in1); out1 = plusequals(latch(diff, abs(diff) < 0.9), 0); |
James, S. (2016). Decibel Mixer for MaxMSP
This mixer was built with the growing need to reduce micro-management in live performances. Designed specifically for Decibel New Music ensemble, this mixer integrates with the Decibel Scoreplayer iPad application, contains a single global management system for audio and networking I/O, labelling, as well as allowing to dynamically load performance patches for a concert from a dropdown menu. Previously, a separate patcher was built for each concert, but this mixer remedies that need.
|
James, S. (2014). Audio-rate AEP Spatialiser for MaxMSP (16-channel)
(implemented using gen~) ![]()
This implementation was designed for the purposes of spatialising spectral bands independently. This implementation also uses the hoa.meter~ object from the HOA higher-order ambisonics library and ambimonitor from the ICST ambisonics library for MaxMSP. The reason I chose to use 3rd party objects here is I wanted to maintain the same nomenclature for determining speaker and source position in the soundfield. Furthermore, I wanted this development to be tested alongside the ICST models for comparative purposes, and for these additional developments to be as "interchangeable" as possible with some of these other existing tools available. The ICST implementation uses a specific setting for center attenuation (dB), attenuation outside of the center (dB), the ambisonic order, and center size (r) which result in a distance-based scaling function that controls the amplitude of weights according to the distance from the origin specified by the performer/diffusionist. This software implementation also determines these weights, according to distance, in a similar way.
|
James, S. (2014). Audio Signal Phase Unwrapper for MaxMSP
(implemented using gen~) ![]()
This implementation is designed to correct discontinuities in a signal after having been wrapped within the range {-pi, pi}. This implementation works best with periodic waveforms such as sine or triangle waves. Waveforms such as a phasor or a sawtooth wave will result in signal accumulators. This implementation does not correct for DC offset, however could be used in conjunction with a DC offset filter.
|
phase unwrapper gen~ code:
History previous(0); x = in1 - previous; bool1 = x < -PI; y = gate(bool1, 1, choices=1); bool2 = x > PI; z = gate(bool2, -1, choices=1); out1 = in1 + plusequals((y + z), 0) * 2 * PI; next = in1; previous = next; |
James, S. (2013). L-Systems Fractal MIDI Sequencer for Max4Live
![]()
|
James, S., Wyatt, A., & Vickery, L. (2012). The Complete John Cage Variations Project (original prototype developed in MaxMSP for Decibel New Music Ensemble).
The software is developed partially in Java in order to compute Variations I, II, III, & VI. The Java code for Variations I and II was programmed by Stuart James, and Variations III and VI by Aaron Wyatt. The score interface is based on the scrolling score mechanism that Lindsay Vickery originally developed in MaxMSP for Decibel New Music ensemble. However this implementation by Stuart James also makes use of score transitions and layers of transparency to cue different materials such as live motion video and generative scores. |
James, S. (2009). Phase-driven Dynamical Wave Terrain Synthesis Instrument for MaxMSP
![]()
|
James, S. (2003). Video Feedback for MaxMSP.
Max4Live Implementations
Audio Instrument
Wave Terrain Synthesizer
Polyphonic Granular Synth (with chroma and other granular properties)
Audio Effects
Fractal Harmonizer (takes live audio input, and harmonises polyphonically, and can be used to envelope/re-articule)
Linear Predictive Coding Synthesis
Glitch Effects
Signal Distortion Effects
Spectral Morphing Effect
Phrase Collector (collects musical instrument phrases or phrases of spoken word and reconstructs these)
Timbral Spatialiser (simplest implementation using basic amplitude panning of spectral bands)
Wave Terrain Synthesizer
Polyphonic Granular Synth (with chroma and other granular properties)
Audio Effects
Fractal Harmonizer (takes live audio input, and harmonises polyphonically, and can be used to envelope/re-articule)
Linear Predictive Coding Synthesis
Glitch Effects
Signal Distortion Effects
Spectral Morphing Effect
Phrase Collector (collects musical instrument phrases or phrases of spoken word and reconstructs these)
Timbral Spatialiser (simplest implementation using basic amplitude panning of spectral bands)
ppooll Implementations
Audio Instrument
Polyphonic Granular Synth (with chroma and other granular properties)
Polyphonic Granular Synth (with chroma and other granular properties)
Audio Effects
Fractal Harmonizer (takes live audio input, and harmonises polyphonically, and can be used to envelope/re-articule)
Glitch Effects
Signal Distortion Effects
Spectral Morphing Effect
Phrase Collector (collects musical instrument phrases or phrases of spoken word and reconstructs these)
Timbral Spatialiser (simplest implementation using basic amplitude panning of spectral bands)
Linear Predictive Coding Synthesis
Fractal Harmonizer (takes live audio input, and harmonises polyphonically, and can be used to envelope/re-articule)
Glitch Effects
Signal Distortion Effects
Spectral Morphing Effect
Phrase Collector (collects musical instrument phrases or phrases of spoken word and reconstructs these)
Timbral Spatialiser (simplest implementation using basic amplitude panning of spectral bands)
Linear Predictive Coding Synthesis
Applications
Utilities
Software Mixer/Diffuser (for Decibel Ensemble)
Software Mixer/Diffuser (for Decibel Ensemble)
Network Utility (for Decibel Ensemble)
The Hindsight Recorder - for the installation The Sounds of Decay (with Dr Cat Hope)
MaxMSP Patches
Score Readers
Joe Stawarz - Cells
Anthony Pateras - Trio
Digital Adaptations of Analog Processes
Alvin Lucier - Directions of Sounds from the Bridge (with Kynan Tan)
Alvin Lucier - I Am Sitting In a Room
Alvin Lucier - Still And Moving Lines Of Silence In Families Of Hyperbolas
Alvin Lucier - Nothing is Real (Strawberry Fields Forever)
Brian Eno - Music for Airports
Joe Stawarz - Cells
Anthony Pateras - Trio
Digital Adaptations of Analog Processes
Alvin Lucier - Directions of Sounds from the Bridge (with Kynan Tan)
Alvin Lucier - I Am Sitting In a Room
Alvin Lucier - Still And Moving Lines Of Silence In Families Of Hyperbolas
Alvin Lucier - Nothing is Real (Strawberry Fields Forever)
Brian Eno - Music for Airports
Timbral Spatialisation
Mace Francis - From Traffic Rises
Stuart James - Particle I
Cat Hope - Kuklinski's Dream
Stuart James - Veden Ja Tullen Elementit
Stuart James - Additive Recurrence
Mace Francis - From Traffic Rises
Stuart James - Particle I
Cat Hope - Kuklinski's Dream
Stuart James - Veden Ja Tullen Elementit
Stuart James - Additive Recurrence
Stuart James - The Overview Effect
Cat Hope and Lindsay Vickery - The Talking Board
Cat Hope and Lindsay Vickery - The Talking Board II
Sound Synthesis/Audio Playback/Processing/Diffusion
Wave Terrain Instrument
Lyndon Blue - DecaBel
Cat Hope - Longing
Rainer Linz - Walk on Parts
Scott Walker - Clara (Benito's Dream)
William Burroughs - Electronic Revolution (with Lindsay Vickery)
Stuart James - Transmorphology
Stuart James - Infinity Landscape 1
John Cage - Cartridge Music
Pauline Oliveros - Antiphonal Meditation
J G Thirwell - Canaries in the Mineshaft/Edison Medicine
Cat Hope - Sogno 102
Stuart James - Stratum I
Video/Audio/Timing/Synchronisation
Alvin Lucier - Carbon Copies
Austin Bucket - Mothlight
Cat Hope - Cruel and Usual (with Sam Gillies and Sam Dunscombe)
Jon Rose - The Auctioneer Says
Kynan Tan - Split Mirror Planes (Video Synchroniser Utility)
Cat Hope and Lindsay Vickery - The Talking Board
Cat Hope and Lindsay Vickery - The Talking Board II
Sound Synthesis/Audio Playback/Processing/Diffusion
Wave Terrain Instrument
Lyndon Blue - DecaBel
Cat Hope - Longing
Rainer Linz - Walk on Parts
Scott Walker - Clara (Benito's Dream)
William Burroughs - Electronic Revolution (with Lindsay Vickery)
Stuart James - Transmorphology
Stuart James - Infinity Landscape 1
John Cage - Cartridge Music
Pauline Oliveros - Antiphonal Meditation
J G Thirwell - Canaries in the Mineshaft/Edison Medicine
Cat Hope - Sogno 102
Stuart James - Stratum I
Video/Audio/Timing/Synchronisation
Alvin Lucier - Carbon Copies
Austin Bucket - Mothlight
Cat Hope - Cruel and Usual (with Sam Gillies and Sam Dunscombe)
Jon Rose - The Auctioneer Says
Kynan Tan - Split Mirror Planes (Video Synchroniser Utility)
MaxMSP Abstractions
Audio Distortion Abstractions
Granular Abstractions
Glitch Abstractions
Spectral Morpher Abstraction
Timbral Spatialisation Abstraction for Basic Amplitude Panning
Timbral Spatialisation Abstraction for 2D Ambisonic Equivalent Panning (AEP)
Timbral Spatialisation Abstraction for 3D Ambisonic Equivalent Panning (AEP)
Timbral Spatialisation Abstraction for 2D Distance-based Amplitude Panning (DBAP)
Timbral Spatialisation Abstraction for 3D Distance-based Amplitude Panning (DBAP)
linepause abstraction
Granular Abstractions
Glitch Abstractions
Spectral Morpher Abstraction
Timbral Spatialisation Abstraction for Basic Amplitude Panning
Timbral Spatialisation Abstraction for 2D Ambisonic Equivalent Panning (AEP)
Timbral Spatialisation Abstraction for 3D Ambisonic Equivalent Panning (AEP)
Timbral Spatialisation Abstraction for 2D Distance-based Amplitude Panning (DBAP)
Timbral Spatialisation Abstraction for 3D Distance-based Amplitude Panning (DBAP)
linepause abstraction
gen~ Implementations
Chaotic Oscillators (gen~ project)
Audio Distortion Algorithms and multidimensional Waveshapers
Audio-rate Frame-based Histogram
Audio-rate Frame-based Audio Buffer Interpolator (using spline/cubic/linear interpolation)
Audio-rate Frame-based Audio Buffer Smoothing Algorithm using "Centroids"
Audio-rate implementation of Ambisonic Equivalent Panning (AEP) for 3D speaker arrangements
Audio-rate implementation of Distance-based Amplitude Panning (DBAP) for 2D and 3D speaker arrangements
Audio Distortion Algorithms and multidimensional Waveshapers
Audio-rate Frame-based Histogram
Audio-rate Frame-based Audio Buffer Interpolator (using spline/cubic/linear interpolation)
Audio-rate Frame-based Audio Buffer Smoothing Algorithm using "Centroids"
Audio-rate implementation of Ambisonic Equivalent Panning (AEP) for 3D speaker arrangements
Audio-rate implementation of Distance-based Amplitude Panning (DBAP) for 2D and 3D speaker arrangements
jit.gen Implementations
Java Implementations
Trajectory Generator for Wave Terrain Synthesis
MaxMSP Externals
Chaotic Oscillators
Audio Distortion Algorithms and multidimensional Waveshapers
Audio-rate Non-Frame-based Signal Phase Unwrapper
Audio-rate Frame-based Histogram
Audio-rate Frame-based Audio Buffer Interpolator (using spline/cubic/linear interpolation)
Audio-rate Frame-based Audio Buffer Smoothing Algorithm using "Centroids"
Audio-rate implementation of Ambisonic Equivalent Panning (AEP) for 2D and 3D speaker arrangements
Audio-rate implementation of Distance-based Amplitude Panning (DBAP) for 2D and 3D speaker arrangements
Audio Distortion Algorithms and multidimensional Waveshapers
Audio-rate Non-Frame-based Signal Phase Unwrapper
Audio-rate Frame-based Histogram
Audio-rate Frame-based Audio Buffer Interpolator (using spline/cubic/linear interpolation)
Audio-rate Frame-based Audio Buffer Smoothing Algorithm using "Centroids"
Audio-rate implementation of Ambisonic Equivalent Panning (AEP) for 2D and 3D speaker arrangements
Audio-rate implementation of Distance-based Amplitude Panning (DBAP) for 2D and 3D speaker arrangements
Reaktor
iOS
The Talking Board score prototype