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..")