Subpatchers

Subpatchers#

Subpatchers and the inlets and outlets that form their boundary.

5 objects. Every entry is pulled directly from the engine registry, which reads the ADD_DESCRIPTION / INLET_DOC / OUTLET_DOC / PARAM_DOC macros in the libYSE source; the longer notes under each summary are ported from the libYSE documentation. The ~ prefix marks DSP / audio-rate objects; . marks control-rate objects. Links into the patcher guide (messages, time, data, files, …) lead to the libYSE documentation, which also has this category’s page.

.inlet#

A message inlet of the subpatcher it is in. With index N, whatever the parent sends to the subpatcher’s inlet N comes out of this object, inside the subpatcher.

Dart:

Obj.gInlet

Kind:

Control-rate

The argument is the index: which inlet of the enclosing subpatcher this object is (default 0). Messages and signals share one numbering per side, so .inlet 0 and ~inlet 1 give a subpatcher two inlets. Two boundary objects with the same index are not an error, but only one of them is used, and which one is not defined.

A cord is attached to the boundary object, not to its number. Changing the index later does not move cords that already exist. These index rules apply to all four boundary objects; see Subpatchers.

Bang, int, float and list cross unchanged. A message box’s text arrives as the bang, number or list it spells, and a word command such as stop arrives as a list.

Inlets

#

Label

Accepts

Range

Description

0

from parent

FLOAT, INT, BANG, LIST

—

Receives what the parent patch sends to the subpatcher’s inlet with this index. A cord connected to that inlet lands here. Bang, int, float and list.

Outlets

#

Label

Type

Range

Description

0

out

ANY

—

The incoming message, unchanged, inside the subpatcher. An int stays an int, a list a list.

Parameters

Name

Default

Range

Description

index

0

0+

Which inlet of the enclosing subpatcher this object is, shared with ~inlet. Give every boundary object its own number.

.outlet#

A message outlet of the subpatcher it is in. With index N, whatever arrives here leaves the subpatcher through its outlet N.

Dart:

Obj.gOutlet

Kind:

Control-rate

The index rules and what crosses are as for .inlet.

Inlets

#

Label

Accepts

Range

Description

0

from patch

FLOAT, INT, BANG, LIST

—

A message from inside the subpatcher, to send out of it. Bang, int, float and list.

Outlets

#

Label

Type

Range

Description

0

to parent

ANY

—

The subpatcher’s outlet with this index, seen from the parent. A cord the parent connects to that outlet starts here. The message leaves unchanged.

Parameters

Name

Default

Range

Description

index

0

0+

Which outlet of the enclosing subpatcher this object is, shared with ~outlet. Give every boundary object its own number.

patcher#

A subpatcher: groups part of a patch into one object that the parent connects to by pin number. Its pins are the .inlet, .outlet, ~inlet and ~outlet objects placed inside it.

Dart:

Obj.patcher

Kind:

Control-rate

A patcher object has no inlets, outlets or arguments of its own. Create its contents with Patcher.createObject on the same patcher and move them inside with Patcher.setContainer. Its pins are the boundary objects among its direct contents: inlet N is the .inlet or ~inlet with index N, and outlet N the .outlet or ~outlet with index N. Connect to the subpatcher by pin number, as to any object.

Subpatchers nest, and nesting costs the audio thread nothing. Deleting a subpatcher deletes everything inside it. On load, the contents fire their .loadbang objects together with the rest of the patch, in no set order.

Names are not local: a .r freq inside a subpatcher hears every freq in the whole patcher. Subpatchers explains how to build, connect, save and edit subpatchers.

~inlet#

A signal inlet of the subpatcher it is in. With index N, the signal the parent connects to the subpatcher’s inlet N comes out of this object, inside the subpatcher.

Dart:

Obj.dInlet

Kind:

DSP (audio-rate)

The index and numbering rules are those of .inlet. The signal is passed on without being copied, so crossing a boundary adds no cost that grows with the block size or the nesting depth. When the parent connects nothing to this inlet, nothing comes out.

Inlets

#

Label

Accepts

Range

Description

0

from parent

BUFFER

-1.0 to 1.0

Receives the signal the parent patch connects to the subpatcher’s inlet with this index. Audio only: a message arriving here is dropped.

Outlets

#

Label

Type

Range

Description

0

out

BUFFER

-1.0 to 1.0

The incoming signal, unchanged, inside the subpatcher.

Parameters

Name

Default

Range

Description

index

0

0+

Which inlet of the enclosing subpatcher this object is, shared with .inlet. Give every boundary object its own number.

~outlet#

A signal outlet of the subpatcher it is in. With index N, the signal that arrives here leaves the subpatcher through its outlet N.

Dart:

Obj.dOutlet

Kind:

DSP (audio-rate)

The index and numbering rules are those of .inlet, and the signal is passed on as by ~inlet.

Inlets

#

Label

Accepts

Range

Description

0

from patch

BUFFER

-1.0 to 1.0

A signal from inside the subpatcher, to send out of it. Audio only: a message arriving here is dropped.

Outlets

#

Label

Type

Range

Description

0

to parent

BUFFER

-1.0 to 1.0

The subpatcher’s outlet with this index, seen from the parent. The signal leaves unchanged.

Parameters

Name

Default

Range

Description

index

0

0+

Which outlet of the enclosing subpatcher this object is, shared with .outlet. Give every boundary object its own number.