Skip to content

Commit a5e5429

Browse files
author
Abe Pazos
committed
1 parent b8255f5 commit a5e5429

File tree

3 files changed

+82
-0
lines changed

3 files changed

+82
-0
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
mode.id=processing.mode.java.JavaMode
2+
mode=Java
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import oscP5.*;
2+
import netP5.*;
3+
4+
OscP5 osc;
5+
NetAddress supercollider;
6+
7+
void setup() {
8+
osc = new OscP5(this, 12000);
9+
// Get the next values from SuperCollider
10+
// evaluating: NetAddr.localAddr
11+
supercollider = new NetAddress ("127.0.0.1", 57120);
12+
}
13+
14+
void draw() {
15+
// To avoid sending 60 messages per second,
16+
// only send a message every 10 frames
17+
18+
// Find out yourself how many messages you can send
19+
// per second. You can send a lot, but not millions :)
20+
if (frameCount % 10 == 0) {
21+
OscMessage msg = new OscMessage ("/length");
22+
msg.add(100 + noise(frameCount) * 300);
23+
osc.send(msg, supercollider);
24+
}
25+
}
26+
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
// Show net values to use in Processing
2+
NetAddr.localAddr
3+
4+
(
5+
SynthDef(\shortSynth, {
6+
arg pitch=200;
7+
var sound = SinOsc.ar(pitch * 2, mul:0.3);
8+
var linen = Env.linen(0.01, sustainTime:0, releaseTime:0.3);
9+
var env = EnvGen.kr(linen, doneAction:2);
10+
Out.ar(0, sound * env);
11+
}).add;
12+
)
13+
14+
(
15+
SynthDef(\foreverSynth, {
16+
arg pitch = 200;
17+
var lfo = SinOsc.kr(2, 0, 5);
18+
// 0.1 seconds portamento, tweens the missing
19+
// values smoothly
20+
var portaPitch = Lag.kr(pitch, 0.1);
21+
var sound = LFTri.ar(portaPitch + lfo, mul:0.1);
22+
Out.ar(0, sound);
23+
}).add;
24+
)
25+
26+
27+
28+
// A sound that plays forever
29+
~long = Synth(\foreverSynth);
30+
31+
// test modifying the pitch to see it works
32+
~long.set(\pitch, 200.rrand(1000));
33+
34+
(
35+
// Listen to OSC messages
36+
OSCdef('processing', {
37+
arg msg;
38+
39+
// value received from Processing
40+
var pval = msg[1];
41+
42+
// debug: show value
43+
//msg[1].postln;
44+
45+
// Now we can do different things, like:
46+
47+
// Option 1. start a new Synth for each OSC msg
48+
Synth(\shortSynth, [pitch:msg[1]]);
49+
50+
// Option 2. modify an existing Synth for each OSC msg
51+
~long.set(\pitch, msg[1]);
52+
}, "/length");
53+
)
54+

0 commit comments

Comments
 (0)