let main () = 
        
        let _ = Sys.signal Sys.sigalrm Sys.Signal_ignore in
        
        let _ = set_GC () in
        
        let (input_rate_list, input_float_array_list) = read_input_wave Sys.argv in
        
        
        let output_type = Sys.argv.(1) in
        try
                
                let dsp_file_route_string = (io_macro_to_string Dsp_Route_string) ^ Sys.argv.(2) in
                let exp_string = Preprocess.preprocess(dsp_file_route_string) in
                
                let exp_faust = exp_of_string exp_string in
                
                let (output_channel_list, output_rate_list, output_float_array_list) = 
                  interpreter exp_faust (input_rate_list, input_float_array_list) in
                
                if output_type = "-wav" then
                  write_output_wave output_channel_list output_rate_list output_float_array_list
                else if output_type = "-txt" then
                  write_output_txt output_channel_list output_float_array_list
                else raise (Invalid_argument ("Unkown option: " ^ output_type))
        with NotYetDone ->
                print_endline("Operation not yet programed..")