Skip to content

Sequence View

Christophe Lengelé edited this page Mar 27, 2023 · 15 revisions

Composing sequences of parameters with the Sequence View

In the Sequence View, several modules organise series of values or the algorithms for each parameter of the selected synthesis. During the composition process, fixed or more or less random patterns can be saved as a sequence preset.

Sequences of parameters allow to create sequences of spatialised sound events or choruses (copies or echoes of the same event with micro-delays or spectral/spatial variations) that can meet a multichannel effect system with different effect parameters on each loudspeaker.

1. Module correspondence

The Sequence tab constitutes the main view of the tool for composing patterns or series of values from 17 modules or parameters. In fact, there are 23 modules, if we consider those in brackets of detailed correspondance table below, which are visible by transparency and can be interchanged with the module behind, such as modules n°9, 10, 11 or 16 and 17.

Parameter sequences are like parameter envelopes or automation curves in a track or channel and for a specific number of events. The correspondence of the modules for each parameter is summarized and detailed in tables below.

The Sequence View determines patterns or algorithms for each parameter of the 4 main sections:

  • Time (4 modules)
  • Spectrum (11 modules)
  • Space (5 modules)
  • FX sends (2 modules)

The modules can control either the same parameter for any sound event, such as rhythm, amplitude or duration, or different parameters depending on the type of synthesis (module n°4) or on the spatial trajectory and the rendering algorithm (modules n°12 and n°13). For example, modules n°16 can determine either the speaker channel if spatial module n°12 is selected to pan between two speakers, or the rotation speed if the motion chosen in module n°12 is circular.

The parameters controlled by the modules can be simple numbers (for example the playback speeds of module n°9 or the amplitude of module n°3), or more complex data (for example the type of amplitude envelope of the module n°6 or the trajectory and spatial algorithms of modules n°12 and 13).

SpaModules SpaModules

Sequence view representing several parameter modules (summarised and detailed below) generating series of values for the arguments of the sound synthesis. In this case, each module plays back 24 parameter values, possibly with different loops or algorithms.

SeqB

table

ParO3


2. Module details

Similar to the control units of the patches from ag.granular.suite, each module allows writing a pattern for a parameter, drawing inside a multislider or selecting, scaling and multiplying a range of values, via different cursors or rangesliders. Although the modules are partly inspired by the control units of ag.granular.suite, the concept is extended to all types of parameters, such as trigger times or onsets between events or types of spatialisation. This suite is available online on Github in the form of Max / MSP patches, but is unfortunately no longer maintained due to its dependence on libraries such as FTM or Jamoma (latest supported version: Max 6.1)

As Hagan (2008) points out, controlling sound spatialisation also requires setting up sound organisation methods, which will control micro-events algorithmically, in order to be able to focus on the macro-structure. Thus, each sequence has parameter modules (not only for space, but for all other parameters) with different stochastic algorithms, more or less random (as can be seen in 8 of figure 2.4). This frees the composer from the constraint of having to modify a multitude of parameters simultaneously. Each module controlling a specific parameter for each sound in the sequence can therefore not only loop a selection of data forwards, backwards or back and forth, but can also be controlled via several algorithms or pattern generators thanks to a popup menu at the bottom right of each module :

  1. [Rand] : a random selection among the values of the sequence with possible successive repetition,
  2. [Xrand] : a random selection among the values of the sequence without successive repetition,
  3. [Shuff] : a shuffle of the order of the values of the sequence,
  4. [Walk] : a specific random walk in the sequence of values,
  5. [White] : a random generator between the two values of the range slider,
  6. [Expra] : a random generator between the two values of the range slider that follow an exponential distribution,
  7. [Lpran] : a random generator between the two values of the range slider that tend toward lo,
  8. [Meanr] : a random generator between the two values of the range slider that tend toward middle ((lo + hi) / 2),
  9. [Hpran] : a random generator between the two values of the range slider that tend toward hi,
  10. [Gauss] : a random generator between the two values of the range slider that follow a gaussian distribution,
  11. [Brown] : a random generator between the two values of the range slider that follow a brownian motion pattern,
  12. [Gbrow] : a random generator between the two values of the range slider that follow a geometric brownian motion pattern,
  13. [Cauch] : a random generator between the two values of the range slider that follow a cauchy distribution,
  14. [Leh_1] : a specific algorithm with a feedback mechanism (i.e. whose previous state is the basis for calculating the next state), in particular the Lehmer congruent generator (LLCF: Lehmer's Linear Congruence Formula) (Battey, 2004), which can be expressed by the following formula: xt + 1 = (xt a + b) modulo m. The parameters can be controlled via the sliders in BUF tab replacing the tab of module n°13 for spatial algorithms,
  15. [Leh1I] : same algorithm as above but inverted,
  16. [Leh_2] : same algorithm as n°14, but with different parameters,
  17. [Leh2I] : same algorithm as above but inverted,
  18. [Rt, Rt_I, Pro, Pro_I...] the use of the values of another parameter or its inverted value, to perceptually associate two parameters together...

One of the techniques to add a slight generative variations to a looped sequence consists in adding a random sequence generator or with feedback (thanks to the contextual menu at the bottom right of each module) on a very small range of one or several parameters such as playback speeds, the position of the beginning of playback of a sample, or spatial dimensions. Although it is more difficult to edit a sequence with a lot of events in detail than in a traditional sequencer, due to the amount of data and the interweaving between the different parameter modules, it is easy to quickly generate and control the global shape of various streams of many spatialized sounds, by globally multiplying (thanks to a slider to the right of each module) all the values of a parameter for all future sounds in the sequence.

Storing a preset sequence

With the values of a sequence preset defined in the GUI, you can also store some specific notes or variables within a preset :

  1. ~presetNotes[~tracksValue][~seqsValue] = "Put your note"; to add a note to the current preset you are storing to add it to the post window when you change to this sequence in order to know what kind of specific action you have to do with this preset sequence.
  2. ~bufSequence[~tracksValue][~seqsValue] = [ [ 9, 34 ], [6, 25 ] ];to add some variations of buffer folders and change them quickly thanks to specific keyboard shortcuts.
Clone this wiki locally