/
OscMachine.html
206 lines (206 loc) · 17 KB
/
OscMachine.html
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1038.25">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ee}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; color: #d40000}
p.p10 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
p.p11 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica}
p.p12 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 14.0px Helvetica; min-height: 17.0px}
p.p13 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 12.0px Helvetica}
p.p14 {margin: 0.0px 0.0px 0.0px 85.0px; text-indent: -85.0px; font: 9.0px Monaco; min-height: 12.0px}
p.p15 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
p.p16 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #e10000}
p.p17 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #1100d0}
p.p18 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #737373}
span.s1 {font: 18.0px Helvetica}
span.s2 {color: #000000}
span.s3 {text-decoration: underline}
span.s4 {color: #1200c4}
span.s5 {text-decoration: underline ; color: #0000ee}
span.s6 {color: #1100d0}
span.s7 {font: 9.0px Monaco}
span.s8 {color: #d40000}
span.s9 {color: #1100cf}
span.s10 {color: #4057cb}
span.s11 {color: #737373}
span.Apple-tab-span {white-space:pre}
</style>
</head>
<body>
<p class="p1"><span class="s1"><b>OscMachine<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b></span><b>triggering samples with OSC messages</b><span class="s1"><b><span class="Apple-tab-span"> </span></b></span></p>
<p class="p2"><br></p>
<p class="p1"><b>Inherits from: Object</b></p>
<p class="p3"><br></p>
<p class="p1">OscMachine is a sampler, that uses OSC messages as trigger. It has a variable number<span class="Apple-converted-space"> </span></p>
<p class="p1">of tracks and you can define on what messages the particular tracks should react.</p>
<p class="p1">OscMachine uses heavily the RedSampler by redFrik.</p>
<p class="p2"><br></p>
<p class="p4"><span class="s2"><b>See also:</b> <a href="../Core/Object.html"><span class="s3">Object,</span></a></span><span class="s4"> <a href="../../Library/Application Support/SuperCollider/quarks/redSampler/RedSampler.html"><span class="s5">RedSampler</span></a><a href="../Core/Object.html"><span class="s5">,</span></a> <a href="SC://OSCresponderNode"><span class="s5">OSCresponderNode</span></a><a href="../Core/Object.html"><span class="s5">,</span></a> <a href="SC://SoundFile"><span class="s5">SoundFile</span></a><a href="../Core/Object.html"><span class="s5">,</span></a> <a href="SC://SoundFileView"><span class="s5">SoundFileView</span></a></span></p>
<p class="p2"><br></p>
<p class="p5"><b>Some Important Issues Regarding OscMachine<span class="Apple-converted-space"> </span></b></p>
<p class="p2"><br></p>
<p class="p1">The port for incoming OSC messages is 57120. This is hardcoded an you can not change it.<span class="Apple-converted-space"> </span></p>
<p class="p1">That's why it can not be used with SwingOSC on Linux. SwingOSC uses this port for ping.</p>
<p class="p1">For more information see <a href="SC://OSC_communication"><span class="s5">OSC_communication</span></a> and <a href="SC://SwingOSC"><span class="s5">SwingOSC</span></a>.</p>
<p class="p2"><br></p>
<p class="p1">Also very important to <b>boot the server (!!!)</b> before running <span class="s6">OscMachine.</span></p>
<p class="p2"><br></p>
<p class="p5"><b>Creation / Class Methods</b></p>
<p class="p6"><br></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>*new (trackNumber, server, diskPlay, showWin, overlap)</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Creates a new OscMachine.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>trackNumber</b> - Number of tracks. Default value is 1.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>server</b> - You can specify the server the files should play on. Default value is nil,</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>which starts the local server.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>diskPlay</b> - If this is true samples are played from disk and not from memory.<span class="Apple-converted-space"> </span></p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Default value is false. Not implemented yet completely.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>showWin</b> - If true you get a gui. Default value is true.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>overlap </b>- Setting maximum number of overlaps for one sample. Default value is 30.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// inline example</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.boot;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g = <span class="s6">OscMachine</span>.new;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g.close;</p>
<p class="p6"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p7"><span class="s7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>or</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.boot;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g = <span class="s6">OscMachine</span>.new(8);</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g.close;</p>
<p class="p6"><br></p>
<p class="p11"><b>Accessing Instance and Class Variables</b></p>
<p class="p8"><span class="Apple-tab-span"> </span></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>diskPlay</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span></p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>If true samples are played from disk, not from ram.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Default value is false.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>debugMode_(arg1)</b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>debugMode</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b><span class="Apple-tab-span"> </span></p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>If true, you get information about values in post window.</p>
<p class="p7"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Default value is true.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p11"><b>Doing Some Task (optional)</b></p>
<p class="p12"><br></p>
<p class="p7">A short bit of prose explaining something about the task.</p>
<p class="p8"><span class="Apple-tab-span"> </span></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>close</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Clean up method. Deletes the OSCresponder nodes.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// inline example</p>
<p class="p10"><span class="s8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>s.boot;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g = <span class="s4">OscMachine</span>.new(showWin: false);</p>
<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g.close; </span>// deletes the responders</p>
<p class="p6"><br></p>
<p class="p6"><br></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>showWindow</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Short prose description of method.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// inline example</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>s.boot;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g = <span class="s6">OscMachine</span>.new(showWin: <span class="s6">false</span>);</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g.showWindow; <span class="s8">// explanation</span></p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g.close;</p>
<p class="p6"><br></p>
<p class="p6"><br></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>hideWindow</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Hides the GUI window. If you want to close OscMachine you have to call <span class="s7">close </span>method.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// inline example</p>
<p class="p10"><span class="s8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>s.boot;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g = <span class="s9">OscMachine</span>.new;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g.hideWindow;</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>g.close;</p>
<p class="p6"><br></p>
<p class="p6"><br></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>setSampleFile (pos, samplePath)</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Sets the sample file for a given track.</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>pos </b>- Track number.</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>samplePath </b>- Path to sample file.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p6"><br></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>playSample (pos)</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Play sample on given track.</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>pos </b>- Track number.</p>
<p class="p14"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p6"><br></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>setOscMsg (number, msg)</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Sets the OSC trigger message on a specific track and creates OSCresponder.</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>number </b>- Track number.</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>msg </b>- Array with OSC messages.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p9"><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// inline example</p>
<p class="p10"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a = <span class="s10">OscMachine</span>.new;</p>
<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a.setSampleFile(0,<span class="s11">"sounds/a11wlk01.wav"</span>);</p>
<p class="p15"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>a.setOscMsg(0,[<span class="s11">"/play"</span>, <span class="s11">"true"</span>, 1]);</p>
<p class="p6"><br></p>
<p class="p6"><br></p>
<p class="p7"><b><span class="Apple-tab-span"> </span>setResponder (pos)</b></p>
<p class="p8"><b><span class="Apple-tab-span"> </span></b></p>
<p class="p7"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>Creates OSCresponderNode.</p>
<p class="p13"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><b>pos </b>- Track number.</p>
<p class="p8"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
<p class="p6"><br></p>
<p class="p6"><br></p>
<p class="p11"><b>Examples</b></p>
<p class="p3"><br></p>
<p class="p16">// creating OscMacines with different track number.</p>
<p class="p17">OscMachine<span class="s2">.new</span></p>
<p class="p17">OscMachine<span class="s2">.new(10)</span></p>
<p class="p3"><br></p>
<p class="p16">// One track and three messages.</p>
<p class="p15">(</p>
<p class="p17"><span class="s2">a = </span>OscMachine<span class="s2">.new;</span></p>
<p class="p18"><span class="s2">a.setSampleFile(0,</span>"sounds/a11wlk01-44_1.aiff"<span class="s2">);</span></p>
<p class="p15">a.setOscMsg(0,[<span class="s11">"/play"</span>, <span class="s11">"true"</span>, 1]);</p>
<p class="p15">)</p>
<p class="p3"><br></p>
<p class="p16">// Two tracks.</p>
<p class="p15">(</p>
<p class="p15">a = <span class="s6">OscMachine</span>.new(2);</p>
<p class="p15">a.setSampleFile(0,<span class="s11">"sounds/a11wlk01.wav"</span>);</p>
<p class="p15">a.setOscMsg(0,[<span class="s11">"/play"</span>, 0]);</p>
<p class="p18"><span class="s2">a.setSampleFile(1,</span>"sounds/a11wlk01-44_1.aiff"<span class="s2">);</span></p>
<p class="p15">a.setOscMsg(1,[<span class="s11">"/play"</span>, 1]);</p>
<p class="p16">//a.debugMode = false;</p>
<p class="p15">)</p>
<p class="p3"><br></p>
<p class="p16">// no window mode</p>
<p class="p15">(</p>
<p class="p15">a = <span class="s6">OscMachine</span>.new(2, showWin: <span class="s6">false</span>);</p>
<p class="p15">a.setSampleFile(0,<span class="s11">"sounds/a11wlk01.wav"</span>);</p>
<p class="p15">a.setOscMsg(0,[<span class="s11">"/play"</span>, 0]);</p>
<p class="p18"><span class="s2">a.setSampleFile(1,</span>"sounds/a11wlk01-44_1.aiff"<span class="s2">);</span></p>
<p class="p15">a.setOscMsg(1,[<span class="s11">"/play"</span>, 1]);</p>
<p class="p16">//a.debugMode = false;</p>
<p class="p15">)</p>
<p class="p3"><br></p>
<p class="p15">a.showWindow;</p>
<p class="p15">a.hideWindow;</p>
<p class="p16">// if window is not used you have to call close fuction,</p>
<p class="p16">// else OSCresponderNodes are still remaining "alive".</p>
<p class="p15">a.close;</p>
</body>
</html>