Below are controls for a system that generates continuously changing background audio procedurally using the Web Audio API
(ie. it uses JavaScript in the browser to synthesise audio instead of loops or segments of recorded sound).
It was designed as a component of a 3D shoreline scene that I'm currently developing and will be dynamically varied in conjunction with other elements in the scene.
If you'd like to give it a listen, please scroll down and click the 'START AUDIO' button (which initializes/re-initializes audio in the browser) and increase the 'Master Volume' control.
In theory the Web Audio API should work in almost all reasonably modern browsers, but I have found that the code used on this page does not work correctly in the current version of Safari (in iOS/iPadOS and MacOS versions). I have been unable thus far to work out why this might be (possibly a bug/undocumented difference in how Safari implements the Web Audio API?). I recommend trying it in Chrome/Chromium-based browsers (eg. Edge, Vivaldi, Opera, Brave etc) or Firefox. I have only tested it in Chrome and Firefox.
Controls may be adjusted either by moving the sliders or by typing in values into the number boxes (you may hear some artifacts as controls are changed and the model adjusts).
All nodes/connections/controls are generated dynamically from configuration files. I wrote several custom AudioWorklets (DSP generators and processors) for the project and learnt a great deal about the Web Audio API and JavaScript in the process. I hope to extend the project in future by building additional models and components as well as enhancing the user interface to offer greater control and speed of prototyping.
You can read more about the Web Audio API here.
If you'd like to contact me please visit this page.
Read more about my background and the services and tuition I offer here.
Click here to return to the home page.