Audio Interface Configuration
The following options can be provided when using Jack as our top level component’s Audio Interface:
- clientname: Jack Client name for our top level component.
- servername: current Jack Server name, the currently active Jack Server name is chosen if not provided.
- autoconnect: Enable/disable auto connection of all ports, possible values are
true, false
. It can be overridden by setting the same option separately for capture and playback ports, in port configuration.
- portconfig: subset of options regarding the configuration and connection of Jack Ports, see following section.
Port Configuration
- capture: Specifies that the following options regard the top level component’s capture ports only
- autoconnect : Enable/disable auto connection to an external jack client’s input ports, possible values are
true, false
- port: Jack ports specification
- basename: Common name for all top level component’s capture ports
- indices: list of port numbers to append to top level component’s capture port name. It is possible to use Matlab’s colon operator to express a list of numbers in a compact fashion (es."0:4" means appending numbers 0 to 4 to port names)
- externalport: Specification of an external jack client to connect to if
autoconnect
is enabled.
- client: Name of an external jack client to use as input for our top level component (es. “system")
- portname: Common name for all external jack client input ports
- indices: List of port numbers that together with
portname
describe existing external jack client input ports. It is possible to use Matlab’s colon operator to express a list of numbers.
- playback: Specifies that the following options regard the top level component’s playback ports only
- autoconnect : Enable/disable auto connection to an external jack client’s output ports, possible values are
true, false
- port: Jack ports specification
- basename: Common name for all top level component’s playback ports
- indices: list of port numbers to append to top level component’s playback port name. It is possible to use Matlab’s colon operator to express a list of numbers in a compact fashion (es."0:4" means appending numbers 0 to 4 to port names)
- externalport: Specification of an external jack client to connect to if
autoconnect
is enabled.
- client: Name of an external jack client to use as output for our top level component (es. “system")
- portname: Common name for all external jack client output ports
- indices: List of port numbers that together with
portname
describe existing external jack client output ports. It is possible to use Matlab’s colon operator to express a list of numbers.
Configuration Syntax
This is the configuration syntax, expressed in json language:
{
"clientname": "…",
"servername": "…",
"autoconnect": "…",
"portconfig":
{
"capture":
{
"autoconnect": "…",
"port":
[
{
"basename": "…",
"indices": "…",
"externalport":
{
"client": "…",
"portname": "…",
"indices": "…"
}
},
…
]
},
"playback":
{
"autoconnect" : "…",
"port":
[
{
"basename": "…",
"indices": "…",
"externalport":
{
"client": "…",
"portname": "…",
"indices": "…"
}
},
…
]
}
}
}
Configuration Examples
Simple Example
This configuration example shows how to auto-connect the ports of our top level component to the default jack client: system
, specifying which range of ports to connect.
{
"clientname": "BaseRenderer",
"autoconnect" : "true",
"portconfig":
{
"capture":
{
"port":
[{ "externalport" : {"indices": "1:4"} }]
},
"playback":
{
"port":
[{ "externalport" : {"indices": "5:8"} }]
}
}
}
Result
Complex Example
Follow a more complex example where auto-connection of ports is performed specifying different jack clients and the ranges of ports to be connected are described both for the top level component and for external clients.
{
"clientname": "BaseRenderer",
"servername": "",
"autoconnect" : "true",
"portconfig":
{
"capture":
{
"autoconnect" : "true",
"port":
[
{
"basename" : "Baseinput_" ,
"indices": "0:1",
"externalport" :
{
"client" : "REAPER",
"portname": "out",
"indices": "1:2"
}
},
{
"basename" : "Baseinput_" ,
"indices": "2:3",
"externalport" :
{
"indices": "4:5"
}
}
]
},
"playback":
{
"autoconnect" : "true",
"port":
[{
"basename" : "Baseoutput_" ,
"indices": "0:1",
"externalport" :
{
"client" : "system",
"portname": "playback_",
"indices": "4:5"
}
}]
}
}
}
Result