hdf-0.14: gr/fig-3-6-m.hs
import Data.Int {- base -}
import Sound.DF.Uniform.GADT {- hdf -}
import Sound.DF.Uniform.LL.K {- hdf -}
-- | DF variant of Faust @~@.
tilde_m :: (UId m,Num a,K' a) => (DF a -> DF a) -> (DF a -> DF a) -> m (DF a)
tilde_m f g = rec_m 0 (\i -> let r = f i in (r,g r))
-- | DF translation of Faust graph @(12345 : +) ~ (1103515245 : *)@.
--
-- > drawM fig_3_6_m
fig_3_6_m :: (Functor m,UId m) => m (DF Int32)
fig_3_6_m = (+ 12345) `tilde_m` (* 1103515245)
-- | Converted to floating point and sent to output.
--
-- > drawM fig_3_6_m'
fig_3_6_m' :: (Functor m,UId m) => m (DF ())
fig_3_6_m' = fmap (out1 . (* 0.1) . i32_to_normal_f32) fig_3_6_m
main :: IO ()
main = audition [] =<< fig_3_6_m'