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)