packages feed

hsc3-0.2: Help/UGen/Demand/dbufwr.help.lhs

dbufwr bufnum phase input loop

Buffer demand ugen.  All inputs can be either 
demand ugen or any other ugen.

bufnum - buffer number to read from (single channel buffer)
phase  - index into the buffer
input  - single channel input
loop   - when phase exceeds number of frames in buffer, 
         loops when set to 1 (default :1)

> do { s1 <- dseries 30 0 3
>    ; s2 <- dseries 30 0 1
>    ; s3 <- dseries 16 1 1
>    ; s4 <- dwhite 8 1 16 
>    ; s5 <- dseq dinf (mce2 s3 s4)
>    ; wt <- dust KR 1                  {- write trigger -}
>    ; rp <- dseries dinf 0 1           {- read pointer -}
>    ; wp <- dseq dinf (mce2 s1 s2)     {- write pointer -}
>    ; r <- dbufrd 0 rp Loop            {- reader -}
>    ; w <- dbufwr 0 wp (s5 * 60) Loop  {- writer -}
>    ; let { d = demand wt 0 w
>          ; f = lag (demand (impulse KR 16 0) 0 r) 0.01
>          ; o = sinOsc AR (f * mce2 1 1.01) 0 * 0.1
>          ; g = mrg [d, out 0 o]
>          ; run fd = do { async fd (b_alloc 0 24 1)
>                        ; send fd (b_setn 0 [(0, (replicate 24 210))])
>                        ; play fd g } }
>      in withSC3 run }