hey, ive been investigating Sieves alot lately there is a Sieve class inside miSCellaneous_lib.
Ive been reading some resources like these to grasp how Xenakis worked with sieves to create pitches, rhythm and timbres:
https://www.jstor.org/stable/3681712
i would like to create a function where a specific sieve could be translated into frequency ratios for beeing used with additive synthesis:
(
// PSVunion_o([6, 5, 12, 0, 12, 2, 12, 4, 12, 7, 12, 9]).asStream.nextN(15);
// pseudo code;
var sieve = [0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19, 21, 23, 24];
~sievesToPitch = { |sieve, range = #[c2, c4], tuning|
var array = sieve - 24; // two octaves down
array = array + 60;
array;
};
~sievesToPitch.(sieve, [36, 60], \just);
)
I think it would be great if you could specify a range and a tuning, or do you have any better ideas?
With the implementation above ive specified a range from C2 to C4 by hand and its only ET12, no quarter tones.
I think the problem is that you have to make sure that the period of the Sieve lines up neatly with the range (divisions between min and max). In this case it works for mapping the Sieve to ET12 between C2 and C4, but just for this case.
Does somebody know how to generalize the function?
thanks a lot.