packages feed

hsc3-0.21: Help/Ugen/fm7.help.hs

-- 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]