This file is indexed.

/usr/share/SuperCollider/HelpSource/Classes/OSCBundle.schelp is in supercollider-common 1:3.6.3~repack-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
class:: OSCBundle
summary:: network bundle object
related:: Guides/OSC_communication
categories:: External Control>OSC

description::
A bundle object that allows to add preparation messages for async processes. If this feature is not needed, a list object can be used instead.

InstanceMethods::

private::prSend

method::add
Add an osc message to the bundle.

method::addAll
Add an array of osc messages to the bundle.

method::addPrepare
Add a preparation osc message, which is sent before the bundle is sent.

method::send
Send the bundle to a server. If preparation messages are given, they are sent, the process waits for their reception abd then sends the bundle.

method::schedSend
Like send, but the sending is synced to a given clock to the next beat.

argument::server
A link::Classes/Server::.

argument::clock
A link::Classes/TempoClock::.

argument::quant
Can be a pair of values: [quant, offset].

Examples::

code::
// create a new, empty instance
a = OSCBundle.new;

// a synthdef that needs to be sent to the server, an operation that is asynchronous,
// i.e. we have to wait until it is finished.
x = SynthDef("test", { OffsetOut.ar(0, BPF.ar(Impulse.ar(4) * 10, Rand(9000, 1000), 0.1)) });
// this is why addPrepare is used.
a.addPrepare(["/d_recv", x.asBytes]);
// add is used with synchronous operations, like starting synths.
a.add(["/s_new", "test", -1]);

// the bundle has now the synchronous separated from the asynchronous bundles:
a.messages;
a.preparationMessages;

// this can be simply sent - the bundle takes care of the server client communication
// like waiting for the synthdef to be loaded. the synth is started when the preparation
// is finished.

s.boot; // boot the server
a.send(s);

s.freeAll; // free all nodes on the server

// scheduled sending: the synths are started on the next beat.

a.schedSend(s, TempoClock.default, 1);
a.schedSend(s, TempoClock.default, 1);
a.schedSend(s, TempoClock.default, 1);

s.freeAll; // free all nodes on the server

// the bundle can contain several preparation messages and messages at a time.
// the proparationMessages are sent first and only when they are all completed,
// the other bundles are sent.
// the bundle can also be reused, if there is no specific allocated buffers/node ids.
::