VISR  0.11.7
Versatile Interactive Scene Renderer
Jack Audio Interface

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

jacksimpleexample.jpeg

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

jackexample.jpeg