open Jack let default_audio_type = "32 bit float mono audio" let client_name = ref "passthrough" let error_callback err = Printf.printf "(EE) %s\n%!" err let bufsize = 4096 ;; let _ = (* set_error_function error_callback; *) let client = Client.create !client_name in let buf = String.create bufsize in let inbuf = Ringbuffer.create bufsize in let outbuf = Ringbuffer.create bufsize in let inp = Client.register_port client "input" default_audio_type [Port.Input] 0 in let outp = Client.register_port client "output" default_audio_type [Port.Output] 0 in Printf.printf "(II) Engine sample rate: %d\n%!" (Client.get_sample_rate client); Client.set_process_ringbuffer_callback client [(* (inp, inbuf, Client.Read); *) (inp, inbuf , Client.Read) ; (outp, outbuf, Client.Write) ]; Client.activate client; while (true) do let r = Ringbuffer.read inbuf buf 0 bufsize in if (r > 0) then let _ = print_endline (string_of_int r) in let r = Ringbuffer.write outbuf buf 0 bufsize in print_endline (string_of_int r); done