Archive for 2010

Hotpot presentation at STEIM

Friday, August 27th, 2010

On September 2nd, I’ll be giving a presentation at STEIM’s Hotpot Lab #9, about Just Noticeable Difference, starting at 20h30, reservation required (but free).

Modality workshop at BEK

Friday, August 27th, 2010

Tuesday 28. September – Friday 1. October BEK invites musicians, programmers and composers to a four-days workshop focusing on the software MODALITY. It’s free to attend, but you have to cover your own travel and stay.

Modality is a tool for building electro-instruments in SuperCollider under construction by Jeff Carey and Bjørnar Habbestad. The workshop will elucidate this development through presentations, discussions and open code-sessions.

Invited participants are Jeff Carey, Alberto de Campo, Wouter Snoei and Marije Baalman, Trond Lossius and Bjørnar Habbestad. themes to be covered are: Modal Control strategies, sensor input, DBAP spatialisation, Proxy Space, Quark, Mapping strategies etc.

The workshop is open for participants skilled in working with SuperCollider.

More information at the BEK website

Sense/Stage presentation at ISEA 2010

Monday, August 16th, 2010

I will be giving a talk about Sense/Stage together with Chris Salter at ISEA2010 RUHR Conference P2 Motion Lab

Sat 21 August
12:30–14:00 1st round
14:00–15:00 Lunch
15:30–19:00 2nd and 3rd round

& Sun 22 August (continued)
opening tba
PACT Studio 3, Essen

Convened by Scott deLahunta (nl)

SenseStage. Low Cost Open Source Wireless Sensor Infrastructure for Live Performance and Interactive Real Time Environments

SenseStage is a new, open source wireless sensor network hardware and software infrastructure designed specifically for artists, designers and architects who are working in the arena of real time applications. The infrastructure consists of (1) a small, wireless sensor board that can be programmed based on the needs of its application and (2) an open source software environment that facilitates the creation and practice of collaborative interactive media art works, by making the sharing of data (from sensors or internal processes) between collaborators easier, faster, and more flexible.

Sonobotanics at the SuperCollider Symposium 2010

Monday, August 16th, 2010

During the SuperCollider Symposium 2010 the sonobotanic models of the Periperceptoida Triquetrus Nutandis and Dependis will be shown at .HBC.

Opening on Friday, September 17, exhibit until Sunday, September 26.

Close-up of the Periperceptoida Triquetrus Nutandis

Workshops at the SuperCollider Symposium 2010

Monday, August 16th, 2010

I will be giving two workshops prior to the Supercollider Symposium 2010 in Berlin, one workshop on SenseStage, and one on Wave Field Synthesis, both of course with a strong SuperCollider focus.


SenseStage

Saturday, September 18. 9.30-13.30h (part I) + Sunday, September19.9. 10-14h (part II),
Location: .HBC
Cost: 60 €
max. 16 participants
level: intermediate

The SenseStage research project has resulted in the development of a low-cost, open-source wireless infrastructure for live performance and interactive, real-time environments.

The infrastructure consists of small wireless boards, that can be used both for sensing and actuation, and that use the Zigbee protocol to create a mesh network. The second part of the infrastructure consists of a software protocol to communicate between programming environments that are commonly used for the creation of interactive music, video and other media. The protocol is based on OpenSoundControl, and provides mechanisms to ensure robustness and ease of use, so that communication of data between collaborators and their software becomes about sharing and using the data, rather than figuring out how to communicate the data. We provide a host for this datasharing network, and several clients that implement the protocol to communicate with the host, so that setup of the system is fast, and easily fits into the workflow of the user. Additionally, the datasharing network can easily receive the data coming from the wireless sensor network, so the components together form an integrated system.
This datasharing framework is implemented in SuperCollider and provides many additional features in SuperCollider to manipulate data and map it to busses on the audio server and perform actions with the data (see Quarks: SenseWorld – SenseWorld DataNetwork – SenseWorld MiniBee).

During the workshop an introduction will be given to the whole framework and how to work with it within SuperCollider. By the end of the workshop we should have created one or more collaborative projects. There will be some wireless sensing nodes available with some sensors and actuators attached, but you are also free to bring your own controllers or interfaces (MIDI/HID devices/handmade), provided that you have them already working within SuperCollider (i.e. are able to receive data from or transmit data to them), so that they can be hooked into the data sharing network.
More information: http://sensestage.hexagram.ca

The workshop should be of interest to anyone who is interested in working with realtime sensor data for either live performance or interactive installations, using SuperCollider and looking for a framework to route, process and map the sensor data to sound and other media. For the workshop basic knowledge of and ability to use SuperCollider needed.


Wavefield-Synthesis and SuperCollider

Wednesday, September 22, 15-19h,
Location: WFS hall TU-Berlin
Cost: 30 €
max. 16 participants
level: intermediate

TU Berlin’s lecture hall H104 is up to now the largest WFS system in the world and therefore this is a unique opportunity to give interested SuperColliderists an introduction to the technology and the system and to try it out themselves. The swonder software can easily be controlled via OSC from SuperCollider, and by using a running scsynth on the control host of the H104 WFS system, multiple participants will be able to create sound sources and move them around in space. Using the projection possibilities in H104 we can both display the current sound source locations as well as the code executed by various participants.

The first hour of this four hour workshop will introduce Wave Field Synthesis and the system setup in H104, along with some simple demonstrations of how to control the system from SuperCollider. The remaining three hours, participants will be able to explore together possibilities of the system, by creating and controlling sound sources themselves. The experimentation and improvisation will be interspersed with discussions, reflecting on the impressions and results of playing around on the system.

Participants should have some basic abilities in SuperCollider, like writing SynthDefs, instantiating Synths and have a basic understanding of the language

Just Noticeable Difference at ISEA 2010

Monday, August 16th, 2010

Just Noticeable Difference
An installation by Chris Salter,
in collaboration with Marije Baalman and Harry Smoak

ISEA 2010 Ruhr Exhibition @ PACT Zollverein
August 20-22, 2010
10:00-20:00, Daily
PACT Zollverein, Studio 2
Bullmannaue 20a
Essen, Germany

Reservations: jnd@isea2010ruhr.org

Just Noticeable Difference is a sensory environment for one person at a time in which total darkness is accompanied by extraordinary small variations of sense stimuli. Barely detectable body motions are sensed and affect the patterns and intensity of a composition of touch, light and sound. The installation explores the fluctuation between noise and order, sensation and sense making directly at the level of bodily perception.

Please note:
Just Noticeable Difference is intended as an individual experience and can only be accessed by one person at a time. Please book your visit at 20 minute intervals each hour jnd@isea2010ruhr.org (until 19 August) or with the attendant next to the installation.

Production of JND is supported with funding from the Conseil des arts et des lettres du Québec and the Social Sciences and Humanities Research Council of Canada.

More information on Chris’ Salter’s website


JND at Pact Zollverein

MARIN hacklab at sea

Monday, August 2nd, 2010

I got the chance to spent a little time on an island in the Baltic, as part of the MARIN sea hacklab.

(photo by Tuomo Tammenpää)

Fueled by self-caught fish (prepared along with other food by our excellent cooks Tuomo and Tapio), swimming exercises, boat trips, and sauna in the evening, I worked on a couple of things:

  • I got a compass/pressure/temperature sensor (the HDMP03) working with the Arduino (code)
  • I adapted the new Sonobotanics installation to fully run on 12V, from the batteries, which were being charged by the solar panels on the roof of the cabin, drawing only 1.3 A (one computer, a little headphone amplifier, and the MiniBee sensor boards).
  • gathered a few days worth of temperature/humidity/light data from having the installation running (and fixed some of my code to do this.
  • hacked a connection of a PS/2 keyboard to my Aleutia
  • learnt about how your grub2 configuration can get fucked up, and how to fix it again.

(photo by Tuomo Tammenpää)

Other reports from this hacklab:
David Griffiths
Jim Bollansée

Sonobotanics

Sunday, May 30th, 2010

Right now there is an exhibit going on of new sonobotanic models, I created together with Elio Bidinost.

For more information, check out: http://www.sonobotanics.org

Sonobotanics
sonobotanics close up

The Olympic livecode games at the LAC

Thursday, May 13th, 2010

The first Olympic SuperCollider livecoding games were held at the Linux Audio Conference 2010 in Utrecht, with five participants…

A history here below.

To organise the games yourself, get the code from:


///////////////////////////////////////////////////
// History, as it was on Mon May 3 15:47:13 2010.
///////////////////////////////////////////////////

// - 0:0:0 - (host)
a.startHistory;

// - 0:0:2.49 - (host)
(
Tdef( \updateTimes, {
a.updateTime = 90;
(10*60).wait; // 10 minutes
a.updateTime = 60;
(10*60).wait; // 10 minutes
a.updateTime = 30;
(10*60).wait; // 10 minutes
a.stopGames;
} );
);

// - 0:0:6.72 - (host)
a.asHost;

// - 0:0:7.69 - (host)
a.startGames

// - 0:0:11.8 - (tim)
a.me.meter

// - 0:0:11.97 - (host)
OlympicGui.useDocClass = true; // by default it is false, so the GUI method

// - 0:0:15.58 - (host)
b= a.makeGameGui( \host );

// - 0:0:15.59 - (lijon)
a.startHistory;

// - 0:0:19.16 - (lijon)
a.startGames

// - 0:0:27.64 - (host)
TdefAllGui.new;

// - 0:0:29.27 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=0.1|
var a = Dust.ar(rate!2);
a = CombL.ar(a,1,0.01,0.1);
Out.ar( out, a);
}
).share;
)

// - 0:0:31.43 - (host)
Tdef('updateTimes').play;

// - 0:0:47.43 - (host)
(
SynthDef( \sinEnv,
{ |out=0,amp=0.1,freq=440, t_trig=1, dur=1|
Out.ar( out, SinOsc.ar( freq, 0, amp )*EnvGen.kr( Env.perc, t_trig, timeScale: dur, doneAction: 2 ) );
}
).share;
)

// - 0:0:53.29 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.25,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:0:55.3 - (host)
PdefAllGui.new;

// - 0:1:0.15 - (host)
Pdef('sinEnvs').play;

// - 0:1:4.25 - (tim)
(
SynthDef( \gray,
{ |out=0,amp=0.1|
Out.ar( out, LFClipNoise.ar(200) );
}
).share;
)

// - 0:1:7.78 - (host)
(
LFClipNoise Slope SharedOut Clip XFade IEnvGen Latch
welWindow theta hypot eq
);

// - 0:1:18.74 - (tim)
(
SynthDef( \lfc,
{ |out=0,amp=0.1|
Out.ar( out, LFClipNoise.ar(200) );
}
).share;
)

// - 0:1:18.88 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=0.1|
var a = Dust.ar(rate!2);
a = CombL.ar(a,1,0.01,0.1);
Out.ar( out, a*amp);
}
).share;
)

// - 0:1:28.11 - (tim)
x = Synth.new( \lfc, target: a.me );

// - 0:1:33.72 - (lijon)
x = Synth.new( \jl_thing, target: a.me );

// - 0:1:35.02 - (host)
(
Pdef( \sinEnvs,
Pmono(
\sinEnv,
\amp, 0.25,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:1:51.03 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.10,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:2:4.9 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=0.1,decay=0.1|
var a = Dust.ar(rate!2);
a = CombL.ar(a,1,0.01,decay);
Out.ar( out, a*amp);
}
).share;
)

// - 0:2:9.21 - (lijon)
x.set(\amp,0.2,\decay,0.2)

// - 0:2:14.17 - (tim)
y = Synth.new( \lfc, target: a.me );

// - 0:2:20.52 - (lijon)
x.set(\amp,0.2,\decay,0.7)

// - 0:2:34.04 - (oiata)
(
SynthDef( \pulse, {|out=0,amp=1|
ReplaceOut.ar( out, In.ar * SinOsc.ar( LFNoise1.ar( 0.3, 400, 800 )))
}).share;
);

// - 0:2:37.78 - (host)
(
Pmono Ppoisson Pfinval Pchain
atan degrad lcm leftShift
);

// - 0:2:39.39 - (tim)
y = Synth.new( \lfc, target: a.me );

// - 0:2:40.86 - (lijon)
x.set(\amp,0.2,\decay,0.7,\rate,0.05)

// - 0:3:0.01 - (host)
(
SynthDef( \lfcn2,
{ |out=0,amp=0.1, freq=500|
Out.ar( out, LFClipNoise.ar(freq)*amp );
}
).share;
)

// - 0:3:6.66 - (lijon)
x = Synth.new( \jl_thing, target: a.host );

// - 0:3:11.68 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \lfcn2,
\amp, 0.10,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:3:17.32 - (lijon)
x.set(\amp,0.5,\decay,0.7,\rate,0.05)

// - 0:3:17.44 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \lfcn2,
\amp, 0.01,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:3:21.08 - (host)
Pdef('sinEnvs').stop;

// - 0:3:23.57 - (lijon)
x.free;

// - 0:3:30.4 - (host)
a.host.freeAll;

// - 0:3:33.86 - (lijon)
x = Synth.new( \jl_thing, target: a.me );

// - 0:3:41.79 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnvs,
\amp, 0.0,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:3:43.66 - (lijon)
x.set(\amp,0.5,\decay,0.7,\rate,0.05)

// - 0:3:44.26 - (host)
Pdef('sinEnvs').play;

// - 0:3:50.28 - (lijon)
x.set(\amp,0.5,\decay,0.7,\rate,10)

// - 0:3:54.06 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.0,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:3:55.54 - (oiata)
x = Synth.new( \pulse, target: a.host; );

// - 0:3:57.86 - (lijon)
x.set(\amp,0.5,\decay,0.8,\rate,10)

// - 0:4:1.48 - (lijon)
x.set(\amp,0.4,\decay,0.8,\rate,10)

// - 0:4:1.87 - (tim)
x = Synth.new( \lfc3, target: a.me );

// - 0:4:4.15 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.01,
\out, Prand( [0,1], inf),
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ),
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:4:7.78 - (host)
(
DC Slew XOut RunningMax SelectX Linen TGrains
cpsmidi theta hypot ring4
);

// - 0:4:21.7 - (oiata)
(
SynthDef( \pulse, {|out=0,amp=0.1,in=0|
ReplaceOut.ar( out, In.ar(in) * SinOsc.ar( LFNoise1.ar( 0.3, 400, 800 )))
}).share;
);

// - 0:4:23.86 - (tim)
a.startGames

// - 0:4:25.34 - (oiata)
x.free;

// - 0:4:26.98 - (oiata)
x = Synth.new( \pulse, target: a.host; );

// - 0:4:30.23 - (tim)
a.me.meter

// - 0:4:35.59 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.01,
\out, Prand( [0,1], inf),
\degree, Pn( Pxrand( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ).sin * 2 + 1,
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:4:38.05 - (tim)
x = Synth.new( \lfc3, target: a.me );

// - 0:4:41.33 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.05,
\out, Prand( [0,1], inf),
\degree, Pn( Pxrand( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ).sin * 2 + 1,
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:4:48.51 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.1,
\out, Prand( [0,1], inf),
\degree, Pn( Pxrand( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ).sin * 2 + 1,
\octave, 6,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:4:56.24 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=0.1,decay=0.1|
var a = Dust.ar(rate!2);
a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025],decay));
Out.ar( out, a*amp);
}
).share;
)

// - 0:5:0.77 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.1,
\out, Prand( [0,1], inf),
\degree, Pn( Pxrand( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ).sin * 2 + 1,
\octave, Pxrand( [5,6,7],inf ),
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:5:13.89 - (lijon)
y.set(\amp,0.2)

// - 0:5:16.7 - (lijon)
x.set(\amp,0.2,\decay,0.8,\rate,10)

// - 0:5:19.04 - (lijon)
y = Synth.new( \jl_thing, target: a.me );

// - 0:5:30.29 - (lijon)
x.free;

// - 0:5:31.29 - (lijon)
y.set(\amp,0.2,\decay,0.8,\rate,10)

// - 0:5:35.38 - (oiata)
(
SynthDef( \ring, {|out=0,amp=0.1,in=0|
ReplaceOut.ar( out, Ringz.ar( In.ar(in), 500, 0.3 ))
}).share;
);

// - 0:5:36.46 - (lijon)
y.set(\amp,0.2,\decay,1.8,\rate,10)

// - 0:5:37.78 - (host)
(
Pbind Pxrand Prewrite Pgpar
sin frac amclip ring4
);

// - 0:5:40.53 - (lijon)
y.set(\amp,0.1,\decay,1.8,\rate,10)

// - 0:5:45.86 - (lijon)
y.set(\amp,0.1,\decay,3,\rate,10)

// - 0:5:48.64 - (lijon)
y.set(\amp,0.1,\decay,3,\rate,9)

// - 0:5:51.61 - (lijon)
y.set(\amp,0.1,\decay,3,\rate,8)

// - 0:5:57.8 - (host)
(
SynthDef( \jl_thing2,
{ |out=0,amp=0.1,rate=0.1,decay=0.1|
var a = Dust.ar(rate!2);
a = CombL.ar(a,1,0.01,decay);
Out.ar( out, a*amp*SinOsc.kr( 0.5, 0, 0.5 ));
}
).share;
)

// - 0:6:0.03 - (lijon)
y.set(\amp,0.1,\decay,8,\rate,8)

// - 0:6:3.04 - (oiata)
(
SynthDef( \ring, {|out=0,amp=0.1,in=0|
ReplaceOut.ar( out, Ringz.ar( In.ar(in), 500, 0.3 ))
}).share;
);

// - 0:6:4.01 - (oiata)
x = Synth.new( \pulse, target: a.host, addAction: \addToTail );

// - 0:6:4.25 - (lijon)
y.set(\amp,0.1,\decay,8,\rate,7)

// - 0:6:8.81 - (lijon)
y.set(\amp,0.1,\decay,8,\rate,6)

// - 0:6:11.38 - (oiata)
x.free;

// - 0:6:12.66 - (lijon)
y.set(\amp,0.1,\decay,9,\rate,6)

// - 0:6:15.59 - (lijon)
y.set(\amp,0.1,\decay,9,\rate,5)

// - 0:6:17.99 - (host)
~jlthing2 = Synth.new( \jl_thing2, target: a.me );

// - 0:6:18.02 - (lijon)
y.set(\amp,0.1,\decay,9,\rate,3)

// - 0:6:25.78 - (oiata)
x = Synth.new( \pulse, target: a.host, addAction: \addToTail );

// - 0:6:31.51 - (oiata)
x.free;

// - 0:6:32.26 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, LFClipNoise.ar(2000).atan ! 2 * -9.dbamp );
}
).share;
)

// - 0:6:33.14 - (oiata)
x = Synth.new( \pulse, target: a.host, addAction: \addToTail );

// - 0:6:34.93 - (tim)
x = Synth.new( \lfc3, target: a.me );

// - 0:7:7.78 - (host)
(
LinRand Hilbert OffsetOut Slope Rotate2 IEnvGen Convolution2L
coin exp max leftShift
);

// - 0:7:24.94 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=0.1,decay=0.1,cf=12000|
var a = Dust.ar(rate!2);
a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025],decay));
a = MoogFF.ar(a,12000,1);
Out.ar( out, a*amp);
}
).share;
)

// - 0:7:36.37 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.1,in=0|
ReplaceOut.ar( out, Ringz.ar( WhiteNoise.ar(amp), 500, 0.3 ))
}).share;
);

// - 0:7:41.5 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, LFClipNoise.ar(20000).atan ! 2 * -12.dbamp );
}
).share;
)

// - 0:7:44.34 - (host)
(
SynthDef( \sinEnv,
{ |out=0,amp=0.1,freq=440, t_trig=1, dur=1|
Out.ar( out, SinOsc.ar( freq + (LinRand(10,500)) , 0, amp )*EnvGen.kr( Env.perc, t_trig, timeScale: dur, doneAction: 2 ) );
}
).share;
)

// - 0:7:57.27 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.1,in=0|
ReplaceOut.ar( out, Ringz.ar( WhiteNoise.ar(amp), 200, 0.3 ))
}).share;
);

// - 0:7:59.05 - (oiata)
z = Synth.new( \noise, target: a.host, addAction: \addToTail );

// - 0:8:5.41 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
);

// - 0:8:5.51 - (oiata)
z.free;

// - 0:8:9.97 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=3,decay=10,cf=12000|
var a = Dust.ar(rate!2);
a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025],decay));
a = MoogFF.ar(a,12000,1);
Out.ar( out, a*amp);
}
).share;
)

// - 0:8:12.94 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.01,in=0|
ReplaceOut.ar( out, Ringz.ar( WhiteNoise.ar(amp), 200, 0.3 ))
}).share;
);

// - 0:8:13.53 - (lijon)
y.free; y = Synth.new( \jl_thing, target: a.me );

// - 0:8:13.78 - (oiata)
z = Synth.new( \noise, target: a.host, addAction: \addToTail );

// - 0:8:18.25 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.1,
\out, Prand( [0,1], inf),
\degree, Pn( Pxrand( (0..10), 5 ), inf),
\dur, Pn( Pgeom( 0.05, 1.2, 10 ) ).sin * 2 + 1,
\octave, Phprand( (3..9),inf ),
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:8:23.97 - (oiata)
z.free;

// - 0:8:30.42 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.01,in=0|
ReplaceOut.ar( out, Ringz.ar( WhiteNoise.ar(amp), 100, 0.3 ))
}).share;
);

// - 0:8:32.27 - (oiata)
z = Synth.new( \noise, target: a.host, addAction: \addToTail );

// - 0:8:34.28 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=3,decay=10,cf=12000|
var a = Dust.ar(rate!2);
a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025],decay));
a = MoogFF.ar(a,cf,1);
Out.ar( out, a*amp);
}
).share;
)

// - 0:8:36.15 - (lijon)
y.free; y = Synth.new( \jl_thing, target: a.me );

// - 0:8:37.78 - (host)
(
Pmono Phprand PstepNfunc Pbindf
degrad distort - sumsqr
);

// - 0:8:37.98 - (oiata)
z.free;

// - 0:8:42.09 - (host)
(
Pdef( \sinEnvs,
Pbind(
\instrument, \sinEnv,
\amp, 0.1,
\out, Prand( [0,1], inf),
\degree, Pn( Pxrand( (0..10), 5 ), inf),
\dur, Pn( Phprand( 0.05, 1.2, inf ) ),
\octave, Phprand( (3..9),inf ),
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:8:47.07 - (lijon)
y.set(\amp,0.2,\decay,9,\rate,50,\cf,8000)

// - 0:8:49.37 - (lijon)
y.set(\amp,0.2,\decay,9,\rate,50,\cf,6000)

// - 0:8:51.2 - (lijon)
y.set(\amp,0.2,\decay,9,\rate,50,\cf,4000)

// - 0:8:52.9 - (lijon)
y.set(\amp,0.2,\decay,9,\rate,50,\cf,3000)

// - 0:8:55.04 - (host)
(
SynthDef( \ballpass,
{ |out=0,amp=0.1,freq=440, t_trig=1, dur=1, rq=0.1, dens=100|
Out.ar( out, BAllPass.ar( Dust2.ar( dens ), freq, rq ) * EnvGen.kr( Env.perc, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:8:55.38 - (lijon)
y.set(\amp,0.2,\decay,9,\rate,50,\cf,2000)

// - 0:8:55.78 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.01,in=0|
Out.ar( out, Ringz.ar( WhiteNoise.ar(amp), 100, 0.3 ))
}).share;
);

// - 0:8:59.2 - (lijon)
y.set(\amp,0.2,\decay,9,\rate,50,\cf,1800)

// - 0:9:1.4 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 2,
\rq, 0.01,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, 6,
\dur, 4,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:9:2.78 - (host)
Pdef('ballpass').play;

// - 0:9:3.67 - (lijon)
y.set(\amp,0.2,\decay,7,\rate,50,\cf,1800)

// - 0:9:4.36 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.01,in=0,freq|
Out.ar( out, Ringz.ar( WhiteNoise.ar(amp), freq, 0.3 ))
}).share;
);

// - 0:9:5.48 - (lijon)
y.set(\amp,0.2,\decay,6,\rate,50,\cf,1800)

// - 0:9:7.08 - (lijon)
y.set(\amp,0.2,\decay,5,\rate,50,\cf,1800)

// - 0:9:9.88 - (lijon)
y.set(\amp,0.2,\decay,4,\rate,50,\cf,1800)

// - 0:9:10.81 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
)

// - 0:9:13.09 - (lijon)
y.set(\amp,0.2,\decay,3,\rate,50,\cf,1800)

// - 0:9:13.23 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 2,
\rq, 0.01,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, 6,
\dur, 2,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:9:16.52 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.01,in=0,freq=400|
Out.ar( out, Ringz.ar( WhiteNoise.ar(amp), freq, 0.3 ))
}).share;
);

// - 0:9:17.47 - (oiata)
z = Synth.new( \noise, target: a.host, addAction: \addToTail );

// - 0:9:18.02 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 2,
\rq, 0.01,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, 6,
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:9:19.2 - (lijon)
y.set(\amp,0.2,\decay,2,\rate,50,\cf,1800)

// - 0:9:22.1 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 2,
\rq, 0.01,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, 8,
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:9:23.62 - (lijon)
y.set(\amp,0.2,\decay,2,\rate,60,\cf,1800)

// - 0:9:27.34 - (lijon)
y.set(\amp,0.2,\decay,0.5,\rate,60,\cf,1800)

// - 0:9:31.12 - (oiata)
z.set(\amp,0.005);

// - 0:9:37.31 - (lijon)
y.set(\amp,0.2,\decay,0.1,\rate,60,\cf,1800)

// - 0:9:39.12 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, RHPF.ar(LFClipNoise.ar(20000).atan ! 2 * -12.dbamp, 7000) );
}
).share;
)

// - 0:9:40.32 - (host)
(
SynthDef( \ballpass,
{ |out=0,amp=0.1,freq=440, t_trig=1, dur=1, rq=0.1, dens=100|
Out.ar( out, BPF.ar( Dust2.ar( dens ), freq, rq ) * EnvGen.kr( Env.perc, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:9:40.87 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
)

// - 0:9:46.09 - (lijon)
y.set(\amp,0.2,\decay,0.1,\rate,60,\cf,2000)

// - 0:9:48.44 - (lijon)
y.set(\amp,0.2,\decay,0.1,\rate,60,\cf,2200)

// - 0:9:50.52 - (host)
(
SynthDef( \ballpass,
{ |out=0,amp=0.1,freq=440, t_trig=1, dur=1, rq=0.1, dens=100|
Out.ar( out, RLPF.ar( Dust2.ar( dens ), freq, rq ) * EnvGen.kr( Env.perc, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:9:50.86 - (lijon)
y.set(\amp,0.2,\decay,0.1,\rate,60,\cf,2500)

// - 0:9:54.66 - (oiata)
z.set(\freq,[201,205]);

// - 0:9:54.74 - (lijon)
y.set(\amp,0.2,\decay,0.1,\rate,60,\cf,2700)

// - 0:10:7.78 - (host)
(
GrainBuf Hilbert AbstractOut MostChange SelectXFocus EnvGen PV_BinShift
linrand cosh thresh fold2
);

// - 0:10:27.9 - (host)
(
SynthDef( \ballpass,
{ |out=0,amp=0.1,freq=440, t_trig=1, dur=1, rq=0.1, dens=100|
Out.ar( out, RLPF.ar( Dust2.ar( dens ), freq + linrand(100,200), rq ) * EnvGen.kr( Env.perc, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:10:33.44 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=3,decay=10,cf=12000|
var a = Dust.ar(rate!2);
a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025]*4,decay));
a = MoogFF.ar(a,cf,1).cosh;
Out.ar( out, Limiter(a)*amp);
}
).share;
)

// - 0:10:47.44 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=3,decay=10,cf=12000|
var a = Dust.ar(rate!2);
a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025]*4,decay));
a = MoogFF.ar(a,cf,1).cosh;
Out.ar( out, Limiter(a)*amp);
}
).share;
)

// - 0:10:48.38 - (oiata)
z.free;

// - 0:10:53.58 - (oiata)
(
Pdef(\x,
Pbind(
\instrument, \noise,
\server, a.s, // a.s chooses the republic server
\where, Prand([\host], 8), // where controls the targer
\dur, 1.rand,
\legato, 0.3,
\freq, Pwhite().linexp(0, 1, 500, 2000)
).trace
).play;
)

// - 0:10:54.76 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, RHPF.ar(LFClipNoise.ar(20000).atan ! 2 * -12.dbamp, [7000, 7010], 0.8) );
}
).share;
)

// - 0:10:55.87 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
)

// - 0:11:4.62 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=3,decay=4,cf=2000|
var a = Dust.ar(rate!2);
a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025]*4,decay));
a = MoogFF.ar(a,cf,1).cosh;
Out.ar( out, Limiter(a)*amp);
}
).share;
)

// - 0:11:6.06 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 2,
\rq, 0.01,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, Pmeanrand( 5, 10, inf),
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:11:6.45 - (lijon)
y.free; y = Synth.new( \jl_thing, target: a.me );

// - 0:11:11.8 - (lijon)
y.set(\amp,0.9,\decay,0.1,\rate,60,\cf,2700)

// - 0:11:14.94 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, RHPF.ar(LFClipNoise.ar(20000).atan ! 2 * -12.dbamp, [7000, 7010], 0.4) );
}
).share;
)

// - 0:11:16.47 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
)

// - 0:11:17.9 - (lijon)
y.set(\amp,0.9,\decay,0.2,\rate,60,\cf,2700)

// - 0:11:21.31 - (lijon)
y.set(\amp,0.9,\decay,0.2,\rate,60,\cf,7700)

// - 0:11:23.01 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, RHPF.ar(LFClipNoise.ar(20000).atan ! 2 * -12.dbamp, [7000, 7010], 0.3) );
}
).share;
)

// - 0:11:24.4 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
)

// - 0:11:28.18 - (lijon)
y.set(\amp,0.9,\decay,1,\rate,60,\cf,7700)

// - 0:11:31.92 - (lijon)
y.set(\amp,0.9,\decay,1,\rate,60,\cf,5700)

// - 0:11:37.78 - (host)
(
Pmono Pmeanrand Pclutch Pbus
ref coin hypotApx hypot
);

// - 0:11:40.68 - (lijon)
y.set(\amp,0.9,\decay,0.1,\rate,60,\cf,5700)

// - 0:11:42.76 - (host)
(
SynthDef( \ballpass,
{ |out=0,amp=0.1,freq=440, t_trig=1, dur=1, rq=0.1, dens=100|
Out.ar( out, RHPF.ar( Dust2.ar( dens ), freq + linrand(100,200), rq ) * EnvGen.kr( Env.perc, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:11:52.45 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 5,
\rq, 0.01,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, Pmeanrand( 5, 10, inf),
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:11:54.89 - (lijon)
y.set(\amp,0.9,\decay,0.1,\rate,60,\cf,15700)

// - 0:11:58.99 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 5,
\rq, 0.01,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, Pmeanrand( 3, 4, inf),
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:11:59.57 - (lijon)
y.set(\amp,0.9,\decay,0.1,\rate,10,\cf,15700)

// - 0:12:7.9 - (lijon)
y.set(\amp,0,\decay,0.1,\rate,10,\cf,15700)

// - 0:12:8.16 - (host)
(
Pdef( \ballpass,
Pbind(
\instrument, \ballpass,
\amp, 5,
\rq, 0.05,
\dens, 1000,
\degree, Pn( Pshuf( (0..10), 5 ), inf),
\octave, Pmeanrand( 3, 4, inf),
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host // where controls the targer
)
)
)

// - 0:12:8.5 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, FreqShift.ar(RHPF.ar(LFClipNoise.ar(20000).atan ! 2 * -12.dbamp, [7000, 7010], 0.3), -3000) );
}
).share;
)

// - 0:12:11.49 - (lijon)
y.set(\amp,0.5,\decay,0.1,\rate,10,\cf,15700)

// - 0:12:18.46 - (host)
(
SynthDef( \ringmod,
{ |out=0,amp=0.1,freq=440, t_trig=1, fm= 100, dur=1, rq=0.1, dens=100|
ReplaceOut.ar( out,
SinOsc.ar( freq, 0, fm ) * In.ar(0 )
* EnvGen.kr( Env.sine, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:12:20.1 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
)

// - 0:12:20.38 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.01,in=0,freq=400|
ReplaceOut.ar( out, RLPF.ar( In.ar(0), freq, 0.3 ))
}).share;
);

// - 0:12:21.17 - (lijon)
y.set(\amp,0.5,\decay,0.1,\rate,1,\cf,15700)

// - 0:12:24.74 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.25,
\rq, 1,
\dens, 1000,
\degree, Pbrown( 0, 12, 2 ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 3,
\fm, 40,
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:12:26.13 - (host)
Pdef('ringmod').play;

// - 0:12:30.01 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.1,in=0,freq=400|
ReplaceOut.ar( out, RLPF.ar( In.ar(0), freq, 0.3 ))
}).share;
);

// - 0:12:31.78 - (tim)
(
SynthDef( \lfc3,
{ |out=0,amp=0.1|
Out.ar( out, FreqShift.ar(RHPF.ar(LFClipNoise.ar(20000).atan ! 2 * -12.dbamp, [7000, 7010], 0.3), -7000) );
}
).share;
)

// - 0:12:34.97 - (tim)
(
x.free;
x = Synth.new( \lfc3, target: a.me );
)

// - 0:12:37.01 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.125,
\rq, 1,
\dens, 1000,
\degree, Pbrown( 0, 12, 2 ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 3,
\fm, 40,
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:12:37.78 - (host)
(
LFDNoise3 FreqShift SharedIn LinLin SelectXFocus EnvGen PV_RandComb
ratiomidi cpsmidi leftShift amclip
);

// - 0:12:46.03 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 1,
\dens, 1000,
\degree, Pbrown( 0, 12, 2 ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 3,
\fm, 40,
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:12:48.4 - (lijon)
y.set(\amp,0.5,\decay,0.1,\rate,1,\cf,15700)

// - 0:12:55.22 - (lijon)
y.set(\amp,0.5,\decay,10,\rate,1,\cf,5700)

// - 0:12:57.99 - (oiata)
z = Synth.new( \return, target: a.host, addAction: \addToTail );

// - 0:13:2.89 - (tim)
(
SynthDef(\xxy, {|out, sustain = 10, freq = 440|
var env = Line.kr(0.1, 0, sustain, doneAction: 2);
var son = PitchShift.ar(LinCongC.ar(freq * [1, 1.2, 1.5, 1.7]).sum, pitchRatio: 2 + LFNoise0.kr(3.23));
Out.ar(out, son * env);
}).share;
)

// - 0:13:3.63 - (host)
(
SynthDef( \ringmod,
{ |out=0,amp=0.1,freq=440, t_trig=1, fm= 100, dur=1, rq=0.1, dens=100|
ReplaceOut.ar( out,
SinOsc.ar( freq, 0, fm ) * In.ar(0,2 )
* EnvGen.kr( Env.sine, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:13:4.77 - (lijon)
y.free

// - 0:13:5.37 - (tim)
(
SynthDef(\xxy, {|out, sustain = 10, freq = 440|
var env = Line.kr(0.1, 0, sustain, doneAction: 2);
var son = PitchShift.ar(LinCongC.ar(freq * [1, 1.2, 1.5, 1.7]).sum, pitchRatio: 2 + LFNoise0.kr(3.23));
Out.ar(out, son * env);
}).share;
)

// - 0:13:7.7 - (oiata)
z.free;

// - 0:13:11.32 - (tim)
(
p = Pdef(\x,
Pbind(
\instrument, \xxy,
//\server, a.s, // a.s chooses the republic server
\server, a.me, // a.s chooses the republic server
//\where, Prand([\host], 8), // where controls the targer
\where, Prand([\host], 208), // where controls the targer
\dur, 8,
\legato, Pwhite(1, 2),
\freq, Pwhite().linexp(0, 1, 5000, 20000)
).trace
).play;
)

// - 0:13:21.69 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.1,in=0,freq=400|
ReplaceOut.ar( out, RLPF.ar( In.ar(0), freq, 0.1 ))
}).share;
);

// - 0:13:22.73 - (oiata)
z = Synth.new( \return, target: a.host, addAction: \addToTail );

// - 0:13:29.4 - (oiata)
z.free;

// - 0:13:30.84 - (tim)
(
SynthDef(\xxy, {|out, sustain = 10, freq = 440|
var env = Line.kr(0.1, 0, sustain, doneAction: 2);
var son = PitchShift.ar(LinCongC.ar(freq * [1, 1.2, 1.5, 1.7]).sum, pitchRatio: 2 + LFNoise0.kr(3.23));
Out.ar(out, son * env);
}).share;
)

// - 0:13:33.97 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 1,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], 12 ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 3,
\fm, 40,
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:13:37.78 - (host)
(
Pbind Pshuf Pstutter Plazy
reciprocal sum3rand round <
);

// - 0:13:38.29 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 1,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], 12 ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 5,
\fm, 40,
\dur, 1,
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:13:43.16 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.1,in=0,freq=400|
ReplaceOut.ar( out, RLPF.ar( In.ar(in), freq, 0.1 ))
}).share;
);

// - 0:13:43.82 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 1,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], 12 ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 5,
\fm, 40,
\dur, 0.3,
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:13:44.48 - (oiata)
z = Synth.new( \return, target: a.host, addAction: \addToTail );

// - 0:13:46.54 - (tim)
(
SynthDef(\xxy, {|out, sustain = 10, freq = 440|
var env = Line.kr(0.1, 0, sustain, doneAction: 2);
var son = PitchShift.ar(LinCongC.ar(freq * [1, 1.2, 1.5, 1.7]).sum, pitchRatio: 2 + LFNoise0.kr(3.23)) ! 2;
Out.ar(out, son * env);
}).share;
)

// - 0:13:50.02 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 1,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], inf ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 5,
\fm, 40,
\dur, 0.3,
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:14:2.23 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 1,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], inf ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 5,
\fm, 40,
\dur, Pshuf( [0.3,0.5,0.2,0.6], inf ),
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:14:24.1 - (oiata)
z = Synth.new( \noise, target: a.me, addAction: \addToTail );

// - 0:14:35.71 - (oiata)
(
SynthDef( \noise, {|out=0,amp=0.1,in=0,freq=400|
ReplaceOut.ar( out, RLPF.ar( In.ar(in), freq, 0.1 ))
}).share;
);

// - 0:14:37.78 - (host)
(
LFClipNoise Resonz DiskIn Clip Rotate2 EnvGen Delay2
not asInteger ring3 rotate
);

// - 0:14:38.19 - (oiata)
z = Synth.new( \return, target: a.me, addAction: \addToTail );

// - 0:14:51.42 - (lijon)
y.free; y = Synth.new( \jl_thing, target: a.me );

// - 0:14:53.74 - (oiata)
z.set(\amp,0.7);

// - 0:14:57.06 - (host)
(
SynthDef( \ringmod,
{ |out=0,amp=0.1,freq=440, t_trig=1, fm= 100, dur=1, rq=0.01, dens=100|
ReplaceOut.ar( out,
Resonz.ar( In.ar(0,2), freq, rq )
* EnvGen.kr( Env.sine, t_trig, timeScale: dur, doneAction: 2) );
}
).share;
)

// - 0:14:58.83 - (oiata)
z = Synth.new( \return, target: a.me, addAction: \addToTail );

// - 0:15:8.73 - (oiata)
(
SynthDef( \return, {|out=0,amp=0.1,in=0,freq=400|
ReplaceOut.ar( out, RLPF.ar( In.ar(in), freq, 0.1 ))
}).share;
);

// - 0:15:11.17 - (oiata)
z = Synth.new( \return, target: a.me, addAction: \addToTail );

// - 0:15:13.69 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 0.4,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], inf ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 5,
\fm, 40,
\dur, Pshuf( [0.3,0.5,0.2,0.6], inf ),
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:15:14.18 - (tim)
a.me.meter

// - 0:15:18.17 - (oiata)
z = Synth.new( \return, target: a.host, addAction: \addToTail );

// - 0:15:24.51 - (lijon)
(
SynthDef( \jl_thing,
{ |out=0,amp=0.1,rate=3,decay=4,cf=2000|
// var a = Dust.ar(rate!2);
var a;
// a = Splay.ar( CombL.ar(a,1,[0.01,0.005,0.0025]*0.25,decay));
// a = MoogFF.ar(a,cf,1,10).cosh;
a = {SinOsc.ar(1000.rand+50,0,10*LFNoise1.ar(0.1)).sin}!30;
a = Splay.ar(a);
Out.ar( out, Limiter(a)*amp);
}
).share;
)

// - 0:15:24.55 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 0.4,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], inf ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 5,
\fm, 40,
\dur, Pshuf( [0.3,0.5,0.2,0.6]/5, inf ),
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:15:24.85 - (oiata)
z.set(\amp,0.1);

// - 0:15:27.11 - (tim)
(
p = Pdef(\x,
Pbind(
\instrument, \xxy,
//\server, a.s, // a.s chooses the republic server
\server, a.me, // a.s chooses the republic server
//\where, Prand([\host], 8), // where controls the targer
\where, Prand([\host], 208), // where controls the targer
\dur, 8,
\legato, Pwhite(1, 2),
\freq, Pwhite().linexp(0, 1, 50, 200)
).trace
).play;
)

// - 0:15:31.26 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 0.4,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], inf ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 5,
\fm, 40,
\dur, Pshuf( [0.3,0.5,0.2,0.6]/2, inf ),
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:15:31.55 - (lijon)
y.free; y = Synth.new( \jl_thing, target: a.me );

// - 0:15:36.11 - (lijon)
y.set(\amp,0.5)

// - 0:15:37.44 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 0.4,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], inf ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, 6,
\fm, 40,
\dur, Pshuf( [0.3,0.5,0.2,0.6]/2, inf ),
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:15:37.78 - (host)
(
Pbind Pwhite Preject Pbus
sin ratiomidi hypot sumsqr
);

// - 0:15:40.91 - (lijon)
y.set(\amp,1)

// - 0:15:50.02 - (lijon)
y.free; y = Synth.new( \jl_thing, target: a.host );

// - 0:15:50.58 - (tim)
(
p = Pdef(\x,
Pbind(
\instrument, \xxy,
//\server, a.s, // a.s chooses the republic server
\server, a.me, // a.s chooses the republic server
//\where, Prand([\host], 8), // where controls the targer
\where, Prand([\host], 208), // where controls the targer
\dur, 8,
\legato, Pwhite(1, 2),
\freq, Pwhite().linexp(0, 1, 5, 20)
).trace
).play;
)

// - 0:15:53.45 - (lijon)
y.set(\amp,1)

// - 0:15:56.06 - (host)
(
Pdef( \ringmod,
Pbind(
\instrument, \ringmod,
\amp, 0.05,
\rq, 0.4,
\dens, 1000,
\degree, Pshuf( [0,2,3,4], inf ),
// Pn( Pshuf( (0..10), 5 ), inf),
\octave, Pshuf( [6,8,5,3,9,7,8], inf ),
\fm, 40,
\dur, Pshuf( [0.3,0.5,0.2,0.6]/2, inf ),
\server, a.s, // a.s chooses the republic server
\where, \host, // where controls the targer
\addAction, \addToTail
)
)
)

// - 0:16:4.16 - (lijon)
x.free;

// - 0:16:6.32 - (lijon)
y.free

// - 0:16:22 - (tim)
p.free

// - 0:16:31.48 - (oiata)
(
SynthDef( \dust, {|out=0,amp=0.1,in=0,freq=400|
ReplaceOut.ar( out, Dust.ar(20))
}).share;
);

// - 0:16:37.78 - (host)
(
Silent FreqShift In Integrator Rotate2 Line PulseDivider
floor rand2 wrap2 difsqr
);

// - 0:16:48.83 - (oiata)
q = Synth.new( \dust, target: a.host, addAction: \addToTail );

// - 0:16:56.6 - (tim)
p.free

// - 0:17:0.93 - (oiata)
q.free;

Events at the Linux Audio Conference

Wednesday, April 21st, 2010

At the LAC2010 (May 1-4, 2010), I’ll be quite a busy bee!

The program:

  • Saturday – 20.30 – Code Livecode Live – performance – SETUP (MediaLab)
  • Sunday – all day – SuperCollider workshops – beginner’s and advanced levels
  • Monday – 14:45 – 5 years of using SuperCollider in real-time interactive performances and installations – retrospective analysis of Schwelle, Chronotopia and Semblance – Paper Presentation – Large College room
  • Monday – 21:00 – Olympic LiveCoding – SC livecoding Jam-Session – Concert – SJU Jazzpodium – Club
  • Tuesday – 11:30 – Sense/Stage – low cost, open source wireless sensor and data sharing infrastructure for live performance and interactive realtime environments – Paper Presentation – Large College room