-
Notifications
You must be signed in to change notification settings - Fork 0
/
osc_demo.scd
69 lines (63 loc) · 1.86 KB
/
osc_demo.scd
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
s.boot;
// test audio
// {
// [SinOsc.ar(433 + MouseY.kr(0, 1000), 0, 0.2), SinOsc.ar(442, 0, 0.2)]
// }.play;
// enable detailed logging of all traffic received, for debugging purposes
OSCFunc.trace(true);
OSCFunc.trace(false);
(
SynthDef(\shortblip, {
var env = Env([1, 0], [0.05, 0]);
var sound = SinOsc.ar(470 + Rand(0,1000)) * EnvGen.kr(env, doneAction: Done.freeSelf);
Out.ar(1, sound);
Out.ar(0, sound);
}).add;
);
s = Synth(\shortblip);
(
SynthDef(\longlow, {
var env = Env([0, 1, 1, 0], [1, 1, 1, 0]);
var sound = SinOsc.ar(220 + Rand(0,440)) * EnvGen.kr(env, doneAction: Done.freeSelf);
Out.ar(1, sound);
Out.ar(0, sound);
}).add;
);
(
SynthDef(\longmid, {
var env = Env([0, 1, 1, 0], [1, 1, 1, 0]);
var sound = SinOsc.ar(440 + Rand(0,440)) * EnvGen.kr(env, doneAction: Done.freeSelf);
Out.ar(1, sound);
Out.ar(0, sound);
}).add;
);
//Synth(\mysynth);
SynthDef(\sine, {Out.ar(0,SinOsc.ar(Rand(440,880),0,0.1))}).add;
s = Synth(\sine);
s.free;
// this line originally borrowed from: http://doc.sccode.org/Classes/OSCFunc.html
// register a listener for messages sent to 'test', whcih prints the arguments
//OSCdef('my function', {|msg, time, addr, recvPort| [msg, time, addr, recvPort].postln}, '/test', nil); // def style
var u = OSCdef('udp', {|msg, time, addr, recvPort|
msg.postln;
msg[0].postln;
Synth(\shortblip);
}, '/udp', nil); // def style
var t = OSCdef('tcp', {|msg, time, addr, recvPort|
msg.postln;
msg[0].postln;
Synth(\longlow);
}, '/tcp', nil); // def style
var d = OSCdef('dns', {|msg, time, addr, recvPort|
msg.postln;
msg[0].postln;
Synth(\longmid);
}, '/dns', nil); // def style
u.free;
t.free;
d.free;
// send a message to test the connection
m = NetAddr("127.0.0.1", NetAddr.langPort); // loopback
m.sendMsg("/udp", "Some text to transmit, Will");
m.sendMsg("/tcp", "Some text to transmit, Will");
m.sendMsg("/dns", "Some text to transmit, Will");