Portaudio* Bindings for the portaudio portable audio library. * *
*
An error occurred. In the future, this exception should be replaced by more * specific exceptions. Use string_of_error to get a description of the * error.
Get the last error which occurred together with its description.
Initialize the portaudio library. Should be called before calling any other * function.
Stop using the library. This function should be called before ending the * program and no other portaudio function should be called after.
type host_api_info = {h_struct_version : int;h_host_api_type : int;h_name : string;h_device_count : int;h_default_input_device : int;h_default_output_device : int;}Host API Information
val get_host_api_info : int -> host_api_infoInformation on a host API
type device_info = {d_struct_version : int;d_name : string;d_host_api : int;d_max_input_channels : int;d_max_output_channels : int;d_default_low_input_latency : float;d_default_low_output_latency : float;d_default_high_input_latency : float;d_default_high_output_latency : float;d_default_sample_rate : float;}Device Information
val get_device_info : int -> device_infoInformation on device
The abstract type ('a, 'b) sample_format describes the OCaml type 'a and the underlying C type 'b used to represent the data being written to or read from a stream. This type is compatible with ('a, 'b) Bigarray.kind.
val format_int8 : (int, Stdlib.Bigarray.int8_signed_elt) sample_formatval format_int16 : (int, Stdlib.Bigarray.int16_signed_elt) sample_formatval format_int24 : (int32, Stdlib.Bigarray.int32_elt) sample_formatval format_int32 : (int32, Stdlib.Bigarray.int32_elt) sample_formatval format_float32 : (float, Stdlib.Bigarray.float32_elt) sample_formatThe stream uses floats in the range of -1.,1. to represent audio data. * The underlying type is a 32 bit float.
type ('a, 'b) stream_parameters = {channels : int;device : int;sample_format : ('a, 'b) sample_format;latency : float;}type ('a, 'b, 'c, 'd) callback =
('a, 'b, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Genarray.t ->
('c, 'd, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Genarray.t ->
int ->
intThe function signature of a callback. Callbacks only work with interleaved streams.
val open_stream :
('a, 'b) stream_parameters option ->
('c, 'd) stream_parameters option ->
?interleaved:bool ->
float ->
int ->
?callback:('a, 'b, 'c, 'd) callback ->
stream_flag list ->
('a, 'b, 'c, 'd) streamopen_stream inparam outparam interleaved rate bufframes callback flags opens a new * stream with input stream of format inparam, output stream of format * outparam using interleaved or non-interleaved interleaved buffers * at rate samples per second, with bufframes frames per buffer * passed the callback function callback (0 means leave this choice to * portaudio).
val open_default_stream :
?callback:('a, 'b, 'a, 'b) callback ->
?format:('a, 'b) sample_format ->
?interleaved:bool ->
int ->
int ->
int ->
int ->
('a, 'b, 'a, 'b) streamopen_default_stream callback format interleaved inchans outchans rate bufframes * opens default stream with callback as callback function, handling samples in * format format using interleaved or non-interleaved buffers interleaved with * inchans input channels and outchans output channels * at rate samples per seconds with handling buffers of size bufframes.
val close_stream : ('a, 'b, 'c, 'd) stream -> unitClose a stream.
val start_stream : ('a, 'b, 'c, 'd) stream -> unitStart a stream.
val stop_stream : ('a, 'b, 'c, 'd) stream -> unitStop a stream.
val abort_stream : ('a, 'b, 'c, 'd) stream -> unitAbort a stream.
val write_stream :
('a, 'b, 'c, 'd) stream ->
'c array array ->
int ->
int ->
unitWrite to a stream.
val read_stream :
('a, 'b, 'c, 'd) stream ->
'a array array ->
int ->
int ->
unitRead from a stream.
val write_stream_ba :
('a, 'b, 'c, 'd) stream ->
('c, 'd, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Genarray.t ->
int ->
int ->
unitWrite to a stream using a bigarray.
val read_stream_ba :
('a, 'b, 'c, 'd) stream ->
('a, 'b, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Genarray.t ->
int ->
int ->
unitRead from a stream using a bigarray.
val read_stream_available_frames : ('a, 'b, 'c, 'd) stream -> intval write_stream_available_frames : ('a, 'b, 'c, 'd) stream -> int