-- fm7 ; two of six ; direct form let c = mce [xLine kr 300 310 4 DoNothing,0,1 ,xLine kr 300 310 8 DoNothing,0,1 ,0,0,1 ,0,0,1 ,0,0,1 ,0,0,1] m = mce [line kr 0 0.001 2 DoNothing,line kr 0.1 0 4 DoNothing,0,0,0,0 ,line kr 0 6 1 DoNothing,0,0,0,0,0 ,0,0,0,0,0,0 ,0,0,0,0,0,0 ,0,0,0,0,0,0 ,0,0,0,0,0,0] [l,r,_,_,_,_] = mceChannels (X.fm7 ar c m) in mce2 l r * 0.1 -- fm7 ; two of six ; matrix form ; inputs may be audio or control or initialization rate let rt = ar c = [[xLine rt 300 310 4 DoNothing,0,1] ,[xLine rt 300 310 8 DoNothing,0,1] ,[0,0,1] ,[0,0,1] ,[0,0,1] ,[0,0,1] ] m = [[line rt 0 0.001 2 DoNothing,line rt 0.1 0 4 DoNothing,0,0,0,0] ,[line rt 0 6 1 DoNothing,0,0,0,0,0] ,[0,0,0,0,0,0] ,[0,0,0,0,0,0] ,[0,0,0,0,0,0] ,[0,0,0,0,0,0] ] [l,r,_,_,_,_] = mceChannels (X.fm7_mx c m) in mce2 l r * 0.1 -- fm7 ; an algorithmically generated graph courtesy f0 let x = [[[0.0,-1/3,-1.0,0.0] ,[0.75,0.75,0.0,-0.5] ,[-0.5,-0.25,0.25,-0.75] ,[-0.5,1.0,1.0,1.0] ,[0.0,1/6,-0.75,-1.0] ,[0.5,0.5,-0.5,1/3]] ,[[-1/3,0.5,-0.5,-0.5] ,[0.5,0.75,0.25,0.75] ,[-15/18,0.25,-1.0,0.5] ,[1.5,0.25,0.25,-0.25] ,[-2/3,-2/3,-1.0,-0.5] ,[-1.0,0.0,-15/18,-1/3]] ,[[0.25,-0.5,-0.5,-1.0] ,[-0.5,1.0,-1.5,0.0] ,[-1.0,-1.5,-0.5,0.0] ,[0.5,-1.0,7/6,-0.5] ,[15/18,-0.75,-1.5,0.5] ,[0.25,-1.0,0.5,1.0]] ,[[1.0,1/3,0.0,-0.75] ,[-0.25,0.0,0.0,-0.5] ,[-0.5,-0.5,0.0,0.5] ,[1.0,0.75,0.5,0.5] ,[0.0,1.5,-0.5,0.0] ,[1.0,0.0,-0.25,-0.5]] ,[[0.5,-0.25,0.0,1/3] ,[0.25,-0.75,1/3,-1.0] ,[-0.25,-0.5,0.25,-7/6] ,[0.0,0.25,0.5,1/6] ,[-1.0,-0.5,15/18,-0.5] ,[15/18,-0.75,-0.5,0.0]] ,[[0.0,-0.75,-1/6,0.0] ,[1.0,0.5,0.5,0.0] ,[-0.5,0.0,-0.5,0.0] ,[-0.5,-1/6,0.0,0.5] ,[-0.25,1/6,-0.75,0.25] ,[-7/6,-4/3,-1/6,1.5]]] y = [[[0.0,-0.5,1.0,0.0] ,[-0.5,1.0,0.5,-0.5] ,[0.0,1/3,1.0,1.0]] ,[[-0.5,0.5,1.0,1.0] ,[0.0,1/3,0.0,1.5] ,[-0.5,15/18,1.0,0.0]] ,[[0.25,-2/3,0.25,0.0] ,[0.5,-0.5,-0.5,-0.5] ,[0.5,-0.5,-0.75,15/18]] ,[[-0.25,1.0,0.0,1/3] ,[-1.25,-0.25,0.5,0.0] ,[0.0,-1.25,-0.25,-0.5]] ,[[0.75,-0.25,1.5,0.0] ,[0.25,-1.5,0.5,0.5] ,[-0.5,-0.5,-0.5,-0.25]] ,[[0.0,0.5,-0.5,0.25] ,[0.25,0.5,-1/3,0.0] ,[1.0,0.5,-1/6,0.5]]] cs = map (map (\[f,p,m,a] -> sinOsc ar f p * m + a)) x ms = map (map (\[f,w,m,a] -> pulse ar f w * m + a)) y [c1,c2,c3,c4,c5,c6] = mceChannels (X.fm7_mx cs ms) g3 = linLin (lfSaw kr 0.1 0) (-1) 1 0 (dbAmp (-12)) g6 = dbAmp (-3) in mce [c1 + c3 * g3 + c5,c2 + c4 + c6 * g6]