Project Details

Description

The development of two novel Max external objects for generating second-order Markov chains using RNBO and codebox: gtm.markov and gtm.markov~. Max is a visual programming environment that works by connecting objects together with patch cords in order to create custom software applications, such as algorithmic/generative electronic music systems and interactive audiovisual installations. gtm.markov and gtm.markov~ are unique additions to the Max library of functional objects, which includes everything from simple mathematical operators to sequencers, oscillators, and video processors.

Markov chains, which are commonly used for generating pitch values in algorithmic/generative music, work by deriving the value of the current calculation according to those which have preceded it. First-order Markov chains produce results that are subject solely to the influence of the immediately preceding result - i.e., they have “short memories”. Accordingly, the results of first-order Markovian generation can appear somewhat random at surface level, despite the underlying rules of generation. Second- and third-order Markov chains are more appropriate for use within algorithmic/generative music due to their longer “memories” and dependence on the previous two or three results respectively when generating new values. Second- and third-order Markovian processes both produce patterns that could be described as “self­-similar” - i.e., they retain a clearly discernible connection to the source material from which the transition matrix is compiled. Oftentimes, however, third-order Markov chains can be conducive to limited variation in output relative to the source material, whereas second-order Markov chains tend to yield results that strike a pleasing balance between novelty and familiarity.

Most of the RNBO and codebox code for the two Max external objects was first developed for my generative audiovisual contribution to the "Together Un/Tethered" series of immersive performances as part of the Arts for the Blues: Creating Connections research project on which I was a co-investigator.

Layman's description

Markov chains, which are commonly used for generating pitch values in algorithmic/generative music, work by deriving the value of the current calculation according to those which have preceded it. First-order Markov chains produce results that are subject solely to the influence of the immediately preceding result - i.e., they have “short memories”. Accordingly, the results of first-order Markovian generation can appear somewhat random at surface level, despite the underlying rules of generation. Second- and third-order Markov chains are more appropriate for use within algorithmic/generative music due to their longer “memories” and dependence on the previous two or three results respectively when generating new values. Second- and third-order Markovian processes both produce patterns that could be described as “self­-similar” - i.e., they retain a clearly discernible connection to the source material from which the transition matrix is compiled. Oftentimes, however, third-order Markov chains can be conducive to limited variation in output relative to the source material, whereas second-order Markov chains tend to yield results that strike a pleasing balance between novelty and familiarity.

Key findings

Two novel Max external objects for generating second-order Markov chains using RNBO and codebox: gtm.markov and gtm.markov~.
StatusActive
Effective start/end date2/10/23 → …

Keywords

  • Max/MSP/Jitter
  • Max/MSP
  • Max for Live
  • Max
  • Creative coding
  • Markov chains
  • Algorithmic music
  • Generative music
  • Computer Music
  • Electronic music

Research Groups

  • Practice Research Group
  • Emergent Media & Entertainment Research Group

Fingerprint

Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.
  • gtm.markov

    MEIKLE, GEORGE., 14 Jan 2024, (Accepted/In press)

    Research output: Non-textual formSoftware