let interpreter exp_faust input = 
        let () = print_endline("Interpretation..."in

        (* make input beam *)
        let input_beam = make_beam input in

        (* estimate process dimension *)
        let dimension_tree = dim exp_faust in

        (* interprete output beam *)
        let output_beam = eval exp_faust dimension_tree input_beam in

        (* get rate list from output beam *)
        let rate_list = extract_rate output_beam in

        (* get channel list and data list from output beam *)
        let (channel_list, float_array_list) = compute (List.map snd output_beam) in
                (channel_list, rate_list, float_array_list)