Crispin Hitchings‑Anstice

Main portfolio
Code portfolio
Music portfolio

GitHub Profile

Contents:
home code download presentation pptx pdf discuss

As part of my Honours study I developed a synthesiser plugin using modal synthesis, a physical modelling technique using resonators tuned to a harmonic series. The design of the synthesiser draws from techniques used in the spectralism compositional movement. I developed the synthesiser using C++ and the the Juce framework as a VST/AU plugin.

Modal synth UI

To test and demonstrate the synthesiser I have composed three études that demonstrate its features and use it in a full music production environment.

Crispin · Études for modal synthesiser

Physical Modelling DSP plugin for VCV Rack

As part of my Honours study I created three instruments using physical modelling techniques for the VCV Rack virtual modular platform. The three instruments showcase different DSP techniques: waveguides and Karplus-Strong string synthesis, modal synthesis, and reed modelling. I programmed the instruments in C++ and have developed a C++ library of DSP classes. I have created a user interface for each instrument which distils the underlying DSP parameters into a smaller set which is musically interesting and does not require the composer or performer using the instrument to understand the technical construction of the instrument.

Modules in VCV Rack

Infinite Driver graphics demo

As part of my computer graphics studies, my team implemented a real-time rendered physical simulation, showcased through a driving simulator. The simulation has following components: procedurally generated environments, physically based vehicle animations, and novel post-processing of the framebuffer output, achieving a unique non-photorealistic visual aesthetic.

My role in the project was to build a rendering pipeline and to implement a non-photorealistic style. The core component of this is a post-processing method of dithering an image (in the style of 1-bit computer displays) optimised for real-time 3D interactive use, using a spherically-mapped dither pattern to avoid flickering artefacts when the camera rotates. This technique was developed for the 2018 game Return of the Obra Dinn. I then extended this to create new visual effects: a 1-bit-per-channel RGB colour mode, a halftone dots comic/print dither pattern, and some experimental dither patterns created by hand.

I also implemented several other rendering algorithms: Blinn Phong shading, shadow mapping, and outline shading. In addition I developed C++ classes and functions for framebuffers and shader uniforms, extended and used Phuwasate’s OpenGL/C++ interface functions which ensure OpenGL objects are always properly created, destroyed, bound, and unbound, and integrated the rendering pipeline into the component-based scene graph.

Team members: myself (Rendering), Anfri Hayward (City and terrain generation), Phuwasate Lutchanont (Scene graph, physics library integration)

Rendering pipeline diagram

Seer’s Gate (group project)

This was a group project, with a team of one design student and five computer science students. The aim of the project was to create a game in Unreal Engine 5 and to work as a team and explore and develop strategies for working as a team and working remotely/asynchronously. My main work was on the character controller, including character movement, attacking, and health; animation playback; and integration with other game systems.

Full credits in the video description.

Stealth Game Prototype

This is a prototype for a stealth game created in Unreal Engine 5, made as an excercise to learn the engine and gain familiarity with the game making tools and systems in Unreal.

Source code on GitHub

Audio (VST) Programming

I have been teaching myself lower-level audio programming to further combine my sonic arts and computer graphics practices. I have been doing this with C++ and the JUCE framework to create VST/AU/etc audio plugins. I created the Delrus plugin, which applies a chorus effect to the feedback path of a delay, to practice creating a whole plugin start to finish, and to implement all the features essentially every plugin will need: audio processing, DAW-accessable and saveable parameters, UI controls and layout, UI theme, JUCE modules, and building with CMake and the Projucer.

Source code on GitHub

Live Performance Tool

This is a live performance tool for looping and processing sampled and live-recorded loops and field recordings using granular synthesis. I built it as the technological component for my final performance in the taonga puoro course taught by Rob Thorne, so I could design the project around what I needed for that performance and for the way I play taonga puoro — in particular a focus on improvisation, continuous or flowing gestures rather than quantised or “grid-based” ones, and a focus on supporting or extending the natural timbre of the puoro rather than distorting or synthesising timbre.

This was built using p5.js, and features audio recording and processing (in part using the granular-js library) and a hierarchical UI system that allows for signal chains to be added and removed.

Click screenshot to open, source code on GitHub.

Screenshot of synthesiser

ECOSYSTEM

ECOSYSTEM is a generative ambient piece built around a visual environment of simulated entities. Each entity, mimicking a fish or a bird, moves with the entities around it, creating flocks and swarms. The overall movement and energy of the environment controls the movement of the synthesis, creating a flowing soundscape connected with the visual elements.

The entities are controlled by the Boids algorithm, and ECOSYSTEM was an opportunity to use techniques from computer graphics in sonic arts.

Premiered at Sounds of Te Kōkī May 2022, created in Max/MSP, filmed by SOUNZ.