Jasz Pike
Sound for Game & Apps
pic of me for profile.jpg

Bespoke Middleware Blog

Research, Design and Development Blog for Bespoke Middleware Project

A “Kirn”el of Sound

Guest lecture from the creator of CDM, Peter Kirn.

Guest lecture from the creator of CDM, Peter Kirn.

CDM is an online magazine for creative technology, from music and DJing to motion and more.

CDM is an online magazine for creative technology, from music and DJing to motion and more.

Peter Kirn Guest Lecture

Peter Kirn is a “Kirn”el of experimental sound with years of experience developing platforms for new uses of technology in music, including being the Co-creator of MeeBlip synthesisers.

MeeBlip hackable synthesisers with customisable carry case.

MeeBlip hackable synthesisers with customisable carry case.

Way Back When...

A cohesive story on the history of sound in games and procedural audio provided insight into past and current examples. Interesting examples of pre-computer uses for dynamic compositions used in wayang puppet theatre. This approach uses percussionists that perform in relation to the story being told. In contrast to linear compositions, the musical score is adaptively tailored to the characters actions and narrative events. Sound familiar?

Majority of game audio is adaptive, dynamic and interactive. Nonlinearity in games requires audio systems to provide cohesive sound that supports detailed narrative decision trees and player interactions.

Early game audio was all integrated into the hardware so as the game played so did the audio. An example of this is Famitracker, used for producing music for the NES/Famicom-systems.

FamiTracker is a free windows tracker for producing music for the NES/Famicom-systems.

FamiTracker is a free windows tracker for producing music for the NES/Famicom-systems.

Further down the line developments were made to deal with the increasing nonlinear aspects in game designs. The XMF (eXtensible Music Format) file format developed by MMA (MIDI Manufacturers Association) was a result of this. This enabled interactive music to be implemented into games through the Soundtrack Manager from IASIG (Interactive Audio Special Interest Group). Lucasarts used these tools and processes but began to phase it out when the popularity of CD-ROM increased significantly among game developers.

Other attempts have been made to design systems that support the concept of indeterminacy. Brian Eno and Peter Chilvers created a generative music system called Bloom.

Bloom logo.jpg

Following this, Eno teamed up with William Wright to develop generative based game Spore. An attempt was made to hack Pure Data disabling the GUI to allow patches to run within the game.


Bloom - menu.jpeg
Bloom - freestyle.jpeg

This concept has been turned into reality with the release of Fract OSC game. This games audio engine uses Libpd to run Pure Data patches for interactive, adaptive and dynamic sound.

This guest lecture presented interesting and thought provoking opinions on uses for Pure Data and its position in the industry. Although its open source and easily portable this can be a negative thing raising issues of version control and constant maintenance to avoid deprecation.

Interesting points were raised in relation to licensing acts and regulations on open source projects. Something to consider if commercial market is the end goal for this bespoke middleware project.


Additional Links

PD EVERYWHERE - Article on Pure Data uses.

PdPod - Video demonstrating a Pure Data patch being ported to iPod.

Dimensions - Video of app by RJDJ.

Pugs Love Beats - Article on app.

Bloom app - Video demonstrating the app in use.

GPL license - Information on open source developed projects.

GNU and FSF - nonprofit with a worldwide mission to promote computer user freedom.

Diggin’ in the carts - documentary about wavetable synthesis in video games.


Weather Report

Previously stated things to look into:

  • Integration of a sampler into the patch was explored and tested. Results showed multiple objects not supported by the Heavy compiler. For now the idea has been put on hold until further investigation can be done. Options include switching to another integration workflow such as Kalimba or Libpd or finding and replacing the objects in order to make the patch compatible with the Heavy compiler. A final option would be to try and build a sampler from scratch using only Vanilla objects.

  • Integration of audio effects chains on patch elements. Brief attempts were made with little success. Integration of a basic reverb worked but exposing the paramters to control dry/wet mix caused issues. Further investigation within a separate patch to understand the configuration will provide transferable techniques.

  • Setup presets section. Concept is simple enough and easily achievable. Simply creating a set of parameter values in number object that can then be sent to the relevant parameters controlling various characteristics of sounds. This could be trailed with the already exposed parameters to see how it operates.