{
   "labels" : [
      "code fork",
      "mathematics",
      "research"
   ],
   "code" : "b = Buffer.read( s, Platform.resourceDir +/+ \"sounds/a11wlk01.wav\" );\r\n\r\n(\r\nSynthDef(\\playBuf, {| out = 0, buf = 0, amp = 0.2, pan = 0.0, dur = 0.2, gate = 1 startPos = 0 |\r\n\tvar sig, env;\r\n\tenv = EnvGen.ar( Env.sine( dur ), gate, amp, doneAction: 2 );\r\n\tsig = PlayBuf.ar( \r\n\t\t1, \r\n\t\tbuf, \r\n\t\tBufRateScale.ir( buf ), \r\n\t\t1, \r\n\t\tstartPos * BufFrames.ir( buf )\r\n\t);\r\n\tOffsetOut.ar(out, Pan2.ar( sig * env, pan ) )\r\n}).add\r\n)\r\n\r\n(\r\nPn(\r\n\tPlazy({\r\n\t\tvar divisor = 3.rrand( 9 ), repeats = 10.rrand( 20 );\r\n\t\tvar pisano, size, starts, durs, pans, amps;\r\n\r\n\t\tpisano = Array.pisano( divisor );\r\n\t\tsize = pisano.size;\r\n\t\tstarts = { 1.0.rand } ! size ;\r\n\t\tdurs = { 0.03.rrand( 0.08 ) } ! size;\r\n\t\tpans = { 1.0.rand2 } ! size;\r\n\t\tamps = { 0.05.rrand( 0.8 ) } ! size;\r\n\r\n\t\t\"Divisor: %\\t pisano period is of length: %\\n\".postf( divisor, size );\r\n\r\n\t\tPbind(\r\n\t\t\t\\instrument, \\playBuf,\r\n\t\t\t\\pisano, Pseq( pisano, repeats ),\r\n\t\t\t\\buf, b,\r\n\t\t\t\\amp, Pindex( amps, Pkey( \\pisano ) ),\r\n\t\t\t\\dur, Pindex( durs, Pkey( \\pisano ) ),\r\n\t\t\t\\pan, Pindex( pans, Pkey( \\pisano ) ),\r\n\t\t\t\\startPos, Pindex( starts, Pkey( \\pisano ) )\r\n\t\t)\r\n\t}),\r\n\tinf\r\n).play\r\n)\r\n\r\nb.free\r\n\r\n//////////////////////////////////////////////////////////////////////\r\n// + Array { \r\n// \t// The pisano period for the given integer.\r\n// \t*pisano { | divisor = 3 |\r\n// \t\tvar list, lastPair, sum;\r\n// \t\tif ( divisor.isInteger.not or: { divisor < 0 } ){\r\n// \t\t\t\"The divisor must be a positive integer\".throw;\r\n// \t\t};\r\n// \t\tlist = List[ 0, 1 ];\r\n// \t\twhile {\r\n// \t\t\tlastPair = list.keep( -2 );\r\n// \t\t\tsum = lastPair.sum;\r\n// \t\t\tsum != 1 or: { lastPair.last != 0 }\r\n// \t\t}{\r\n// \t\t\tlist.add( sum % divisor );\r\n// \t\t};\r\n// \t\t^ list.array.drop( -1 )\r\n// \t}\r\n\r\n// }\r\n//////////////////////////////////////////////////////////////////////",
   "id" : "1-4W0",
   "is_private" : null,
   "author" : "ttsesmetzis",
   "name" : "Re: The Sounds of Fibonacci",
   "description" : "Pisano periods for rythmic patterns.",
   "ancestor_list" : [
      "1-4VW"
   ]
}
