File: Sieve1.schelp

package info (click to toggle)
supercollider-sc3-plugins 3.7.1~repack-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 14,332 kB
  • ctags: 11,704
  • sloc: cpp: 140,180; lisp: 14,746; ansic: 2,133; xml: 86; makefile: 82; haskell: 21; sh: 8
file content (38 lines) | stat: -rw-r--r-- 1,399 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class:: Sieve1			
summary:: Fuzzy sieve based synthesis
categories:: UGens>Generators>Stochastic
//SLUGens released under the GNU GPL as extensions for SuperCollider 3, by Nick Collins, http://composerprogrammer.com/index.html
keyword:: SLUGens



Description::
Implementation of Xenakis's idea of sieve based synthesis, generalized to use fuzzy (probabilistic) sieves. Sieves are stored in buffers and can be dynamically swapped. 


Ariza, Chris 2009 “Sonifying Sieves: Synthesis and Signal Processing Applications of the Xenakis Sieve with Python and Csound.” In Proceedings of the International Computer Music Conference. San Francisco: International Computer Music Association.

Examples::

code::
//MUST be a buffer with data in format [sizeofcurrentsieve,sieveentry1,sieveentry2,...] where currentsize always less than initially allocated buffer length -1. 

{ Sieve1.ar(LocalBuf.newFrom([10]++({0.75.rand}!10)),MouseX.kr(2,100))*0.2}.play

{ Sieve1.ar(LocalBuf.newFrom([88]++({[0.1.rand,0.5.rand].wchoose([0.8,0.2])}!88)),MouseX.kr(1,100))*0.2}.play

b = Buffer.alloc(s,300); 

b.setn(0, [88]++({[0.1.rand,0.5.rand].wchoose([0.8,0.2])}!88))

{ Sieve1.ar(b,MouseX.kr(2,100),0)*0.2}.play

//dynamically swap buffer
b.setn(0, [8]++(1.0!8))

b.setn(0, [8]++({rrand(0.1,1.0)}!8))

b.setn(0, [18]++({[0.0,1.0].choose}!18))

b.setn(0, [188]++({[0.0,rrand(0.96,1.0)].wchoose([0.3,0.7])}!188))
::