Module Portaudio

module Portaudio: sig .. end

Bindings for the portaudio portable audio library.


Exceptions

exception Error of int

An error occured. In the future, this exception should be replaced by more specific exceptions. Use string_of_error to get a description of the error.

exception Unanticipated_host_error

An unanticipaced

val string_of_error : int -> string

Get a description of an error.

val get_last_host_error : unit -> int * string

Get the last errror which occured together with its description.

General

val get_version : unit -> int

Version of portaudio.

val get_version_string : unit -> string

Version of portaudio.

val init : unit -> unit

Initialize the portaudio library. Should be called before calling any other function.

val terminate : unit -> unit

Stop using the library. This function should be called before ending the program and no other portaudio function should be called after.

Host API

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_count : unit -> int

Number of available host API.

val get_default_host_api : unit -> int

Index of the default host API.

val get_host_api_info : int -> host_api_info

Information 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_default_input_device : unit -> int

Default input device.

val get_default_output_device : unit -> int

Default output device.

val get_device_count : unit -> int

Number of available devices.

val get_device_info : int -> device_info

Information on device

Streams

type ('a, 'b) sample_format 

The abstract type ('a, 'b) sample_format describes the OCaml type 'a and the underlying C type 'a 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, Bigarray.int8_signed_elt) sample_format

See Portaudio.format_float32.

val format_int16 : (int, Bigarray.int16_signed_elt) sample_format

See Portaudio.format_float32.

val format_int24 : (int32, Bigarray.int32_elt) sample_format

See Portaudio.format_float32.

val format_int32 : (int32, Bigarray.int32_elt) sample_format

See Portaudio.format_float32.

val format_float32 : (float, Bigarray.float32_elt) sample_format

The 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 stream_flag 
type ('a, 'b, 'c, 'd) stream 
type ('a, 'b, 'c, 'd) callback = ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t ->
('c, 'd, Bigarray.c_layout) Bigarray.Genarray.t -> int -> int

The 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) stream

open_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) stream

open_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 -> unit

Close a stream.

val start_stream : ('a, 'b, 'c, 'd) stream -> unit

Start a stream.

val stop_stream : ('a, 'b, 'c, 'd) stream -> unit

Stop a stream.

val abort_stream : ('a, 'b, 'c, 'd) stream -> unit

Abort a stream.

val sleep : int -> unit

Sleep.

val write_stream : ('a, 'b, 'c, 'd) stream -> 'c array array -> int -> int -> unit

Write to a stream.

val read_stream : ('a, 'b, 'c, 'd) stream -> 'a array array -> int -> int -> unit

Read from a stream.

val write_stream_ba : ('a, 'b, 'c, 'd) stream ->
('c, 'd, Bigarray.c_layout) Bigarray.Genarray.t -> int -> int -> unit

Write to a stream using a bigarray.

val read_stream_ba : ('a, 'b, 'c, 'd) stream ->
('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t -> int -> int -> unit

Read from a stream using a bigarray.