aboutsummaryrefslogtreecommitdiff

Partial Emergence

Partial Emergence is an installation created as a submission for the International Csound Conference 2022. The abstract and description for the submission are below, followed by some more technical details and information on how to use the files yourself.

Submission details

Abstract

Elements considered devoid of musical content are inflated and extrapolated to a macroscopic consonance, while those thought of harmonically are condensed and distanced to present a microscopic coherence. Diminishing relationships with time present unexpected pitch, while the exaggeration of time evokes a liminal continuity. Points in time are clarified through distant inspection to be steps in pitch.

Sounds prescribed by their organic purity are used to examine these reactions and interactions: water being physically fundamental yields an atonal or tonality-ambiguous presence, while a metal idiophonic music box is clearly melodious, with a subtle presence of harmonic content. Through binding to familiar scales and chords, these malleable components are subject to time and frequency reconstructions while retaining established characteristics which regulate the emergence of new permutations of musical sound.

Description

Partial Emergence presents a lens through which elements considered devoid of musical content are inflated and extrapolated to yield a macroscopic consonance, and conversely aspects previously thought of harmonically are condensed and distanced to present a microscopic coherence. Diminishing relationships with time present often unexpected pitch, while the exaggeration of time evokes a liminal continuity - points in time are clarified through distant inspection to present steps in pitch.

These phenomena are presented through two central groups of sounds: water drops and movements presenting atonal or tonality-ambiguous elements, and clearly melodious components from a small idiophonic music box device. The choice of these is prescribed by their organic purity and disposition for transformative interaction in and against each other - water being physically fundamental, and the sound of the music box being relatedly pure with a subtle constitution of harmonics.

Through binding to familiar scales, chords, and anchoring notes, these malleable components are subject to granular and spectral manipulations while retaining established characteristics which regulate the emergence of new permutations of musical sound. The sound generation and arrangement featured in Partial Emergence is wholly based in Csound, using a set of reusable user defined opcodes developed by the artist to enable sound manipulation among stochastic harmonic arrangement methods.

References to the audio files used are managed with a database which is accessed through a plugin opcode developed by the artist. The main audio sources include 578 individual water drop sounds, 100 additional water movement sounds and 60 music box sounds. Arrangement sections are defined, within which stochastic composition and sequencing is performed, with specific thematic detail for each. Section progression is defined by a continuation probability and thus evolves autonomously with no interaction.

Author Biography

Richard Knight is a musician and data artist based in the UK. Known for his no-input mixer practice and computer music which bridges popular and experimental musics, Knight is motivated by the disruption of organic by electronic, familiar by unknown, and logic by absurdity.

Using spectral processing, data-driven practice and concatenative resynthesis among other techniques, Knight typically incorporates Csound to his studio workflow to create music that exists somewhere in between acousmatic and techno music.

http://rk.1bpm.net/

http://csound.1bpm.net/

https://git.1bpm.net/

Technical details

Overview

Partial Emergence uses a single entry point CSD which is init.csd. From there, files are included from the include and sonics directories. Both contain globals and UDO definitions, with include containing files specific to the installation, and sonics containing a slim excerpt from the SONICS system developed by the author. More details on SONICS are included in the relevant README.md file.

Structurally, the installation cycles among sections defined in init.csd as gisections[]. This array contains a minimum/maximum possible duration and then a choice of two sections to move to when the current has completed. Which is chosen depends on a weighted random factor as explained within the comments.

The sequencer_main instrument runs continuously and keeps track of the section time, launching new sections appropriately. Each section has a subsequencer, defined in the include/sequence_sections.inc file. Section subsequencers are named sequencer_s%d where %d is the section index according to gisections[]. Each subsequencer schedules instruments relevant to the section and may also contain additional stochastic variation.

All instruments are defined in the files in the include directory prefixed with instruments_. Additionally, global effects are defined in include/effects_global.inc

Sounds

Partial Emergence uses two groups of sounds (water and idiophones), which have two subgroups (droplets, paddling and musicbox, kalimba). The wave files are located in the sounds directory. Sound loading was handled by database plugin opcodes utilising PostgreSQL; however for the public release a database extract is provided in the slightly unwieldy but functional include/soundexport.xdb. The source database tables contain the sound group details, and also notes of the tuned sounds, in order to return the nearest sound in a group to a requested note. As the groups do not always cater for every available note, and some notes have multiple corresponding sounds available, database logic is used to determine the most appropriate sound and calculate the required pitch adjustment ratio. The extract in include/soundexport.xdb features a set of arrays and f-tables that mimic what the database would return. For each sound collection, gixdb_pitchreference stores a reference for all possible MIDI notes (0 to 127) which is accessed by a collection specific offset held in gixdb_pitchrefoffset. The values returned from gixdb_pitchreference then point to the upper and lower bounds in gixdb_pitchnotes and gixdb_pitchadjust which contain the index in gisounddb and the pitch adjustment ratio required in order to match the requested note. This fulfillment of such a request is carried out by sounddb_mel_nearestnote in sonics/soundxdb.udo.

Instruments

Instruments are broadly split into those that use the tuned idiophone parts, and those that use the untuned water droplets. Additionally there are some synthesis instruments, and also notably a number of hybrid approaches to tuning/detuning the source sounds, yielding to the installation concept (for example, using the resony and pvsmorph opcodes).

Harmonic progressions

The SONICS stochastic chord progression arrangement system uses the definitions specified in files within the progressions directory. These are f-table dumps created by ftsave.