marimbaSynth :: (D, D) -> Sig
marimbaSynth (amp, cps) = a6
    where
        bias = 0.11
        i2  = log cps / 10 - bias
        k1 = (0.1 * ) $ once $ lins [0.00001, 30, 1, 50, 0.5, 100, 0.00001]
--        k1  = expseg [0.0001, 0.03, amp * 0.7, idur - 0.03, 0.001]
--            * linseg [1, 0.03, 1, idur - 0.03, 3]
        k10 = linseg [2.25, 0.03, 3, idur - 0.03, 2] 
        a1  = gbuzz k1 (sig cps) k10 0 35 (sines3 [(1, 1, 90)])
        a2  = reson' a1 500 50 
        a3  = reson' a2 150 100 
        a4  = reson' a3 3500 150 
        a5  = reson' a4 3500 150 
        a6  = balance a5 a1
        reson' a b c = reson a b c `withD` 1
marimbaSynth :: (D, D) -> Sig
marimbaSynth (amp, cps) = a6
    where
        bias = 0.11
        i2  = log cps / 10 - bias
        k1 = (0.1 * ) $ once $ lins [0.00001, 30, 1, 50, 0.5, 100, 0.00001]
--        k1  = expseg [0.0001, 0.03, amp * 0.7, idur - 0.03, 0.001]
--            * linseg [1, 0.03, 1, idur - 0.03, 3]
        k10 = linseg [2.25, 0.03, 3, idur - 0.03, 2] 
        a1  = gbuzz k1 (sig cps) k10 0 35 (sines3 [(1, 1, 90)])
        a2  = reson' a1 500 50 
        a3  = reson' a2 150 100 
        a4  = reson' a3 3500 150 
        a5  = reson' a4 3500 150 
        a6  = balance a5 a1
        reson' a b c = reson a b c `withD` 1
marimbaSynth (amp, cps) = a6
    where
        bias = 0.11
        i2  = log cps / 10 - bias
        k1 = (0.1 * ) $ once $ lins [0.00001, 30, 1, 50, 0.5, 100, 0.00001]
--        k1  = expseg [0.0001, 0.03, amp * 0.7, idur - 0.03, 0.001]
--            * linseg [1, 0.03, 1, idur - 0.03, 3]
        k10 = linseg [2.25, 0.03, 3, idur - 0.03, 2] 
        a1  = gbuzz k1 (sig cps) k10 0 35 (sines3 [(1, 1, 90)])
        a2  = reson' a1 500 50 
        a3  = reson' a2 150 100 
        a4  = reson' a3 3500 150 
        a5  = reson' a4 3500 150 
        a6  = balance a5 a1
        reson' a b c = reson a b c `withD` 1