Sieves and Psieve patterns:
Filter:

Sieves and Psieve patterns
ExtensionExtension

list building and sequencing based on Xenakis' sieves

Description

Iannis Xenakis proposed sieves as integer-based generators for rhythms, pitches and other musical parameters. For an overview of history and implementations, including his own development in Python, see Christopher Ariza's article [3].

This SC implementation comes in two variants, with the class Sieve and Psieve patterns. Both variants include the usual sieve operations, which are based on set theory and applied to integers: union, intersection, symmetric difference and difference (complement can be defined by difference). These operations are defined for an arbitrary number of arguments as well as binary operators (Sieve). Psieve as an abstract superclass of all sieve patterns integrates sieve sequences into the pattern framework whereas Sieve is defined for calculating sieves as lists, in other words Psieve patterns are the "lazy evaluation" variant of "eager evaluation" Sieve operations. Of course you can produce sieves as lists also with Psieve patterns but for calculating very large sieves beforehand you might want to prefer Sieve, as its operations are slightly faster. For using sieves in a realtime situation the overhead of Psieve patterns will mostly be irrelevant.

Why sieves + patterns? Not only can the ouput of sieve calculations be used in enclosing patterns – e.g. for scaling or arbitrary mapping into the continous domain –, Sieve and Psieve patterns also accept Patterns (which must be defined to produce integers) themselves as input for sieve operations, which opens a wide field for experimentation – in the case of Psieve patterns this even allows realtime control of sieve parameters and/or sieve stream output, also the logical operations can be exchanged on the fly. In one regard this is a contradiction to Xenakis' idea of sieves as an "outside-time" structure, on the other hand Xenakis, as Roads pointed out ([1], p.168), always tended to use generative procedures very freely and this also becomes explicit, when he describes "hyperbolae" (transformations) of sieves and suggests "... transformations of the logical operations in some fashion, using the laws of logic and mathematics, or arbitrarily." ([3], p.66). Patterns involve a wide range of such possibilities and provide a comfortable interface to be applied dynamically.

Psieve patterns as well as Sieves can work in two modes, regarding sieves as sequences (resp. lists) of 'intervals' with an offset, or as 'points', meaning the ascending numbers itself (the wording of 'sums' and 'differences' would also be nearby, but here 'difference' is already used for set operations, so I leaned on Xenakis' terms). For efficiency reasons only one representation of a Sieve is current at a time, the default result mode is 'points'. However all operations exist in alternative result mode variants and of course Sieves can also be converted anytime. For calculus of Sieves there exist corresponding binary operators as shortcuts.

Characteristics of sieves are closely bound to relations of numbers by prime factors, roughly said: more complexity and longer periodicity is following from merging moduls that have fewer prime factors in common. However for the sake of keeping classes light-weight, dealing with period lengths etc. is not implemented within the sieve classes itself. See [1] and [3] for some number-theoretical considerations, you might also want to check Xenakis' original examples and hints. Useful integer operations (prime numbers, factoring) are contained in SC main and can help you to easily carry through your own experiments, some extensions of built-in lcm-algorithm are contained (4b). A thorough investigation of the symmetric structures generated is out of the scope of this package, however some observations on symmetry types (3b) and basic analysis tools are included (3c). Last but not least: plotting the intervals can give a good impression of sieve characteristics.     

References

  1. Xenakis, Iannis (1990). "Sieves" Perspectives of New Music 28(1): 58-78.
  2. Xenakis, Iannis (1992). Formalized Music. Hillsdale, NY: Pendragon Press, 2nd Revised edition.
  3. Ariza, Christopher (2005). "The Xenakis Sieve as Object: A New Model and a Complete Implementation" Computer Music Journal 29(2): 40-60.
  4. Roads, Curtis (2015). Composing Electronic Music. A New Aesthetic. Oxford University Press.

1) The Sieve class

1a) Basic generation from Integers, modes 'intervals' and 'points'

1b) Generation from Patterns, Streams and Sieves

1c) Elementary sieve operations

1d) Offset methods

1e) Sieve operations defined as instance methods

1f) Sieve operations defined as binary operators

1g) Segments of Sieves

1h) Conversion to Sieves from Arrays

1i) Copying and transformation of Sieves by arbitrary array operations

2) Psieve patterns

2a) Basic generation from Integers, modes 'intervals' and 'points'

2b) Generation from Patterns, Streams and Sieves

2c) Sequencing logical operations

2d) Using Sieves in other than Psieve patterns

3) Periodicity of intervals with elementary operations

3a) Periodicity of intervals with elementary operations

3b) Types of symmetry

 

Symmetric structures in periodic series occur as different types, depending if the period length is even or odd.

DEFINITION:

  1. Lets's call a period 'symmetric' iff it's equaling its reverse.
  2. Lets's call a period 'quasi-symmetric' iff the continuation with its first element is symmetric.
  3. If a sequence contains a symmetric or quasisymmetric period, there exists a symmetric or quasisymmetric period starting in its middle (or just right from it when odd), let denote it its 'coperiod'.

STATEMENTS (formal proof omitted, but rather straightforward):

  1. If the period length is even, a symmetric period corresponds to a symmetric coperiod and a quasisymmteric period corresponds to a quasisymmteric coperiod.
  2. If the period length is odd, a symmetric period corresponds to a quasisymmteric coperiod.
  3. Only a period of identic elements can be symmetric and quasi-symmetric at the same time.

3c) Analysis tools

 

3d) Symmetry types of elementary operations without offset

3e) Symmetry types of elementary operations with offset

4) Troubleshooting

4a) Critical inputs, limits

4b) Calculating least common multiples

 

 

5) Audio examples

5a) Applying sieve intervals to (micro) rhythms

 

5b) Sequentially generating new sieve patterns for rhythm and pitch

 

5c) Sequencing instrumental variation with sieves