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'