Posted 4 weeks ago

(Source: okdubu)

Posted 1 month ago

### IRIS in Cambridge, MA

I’m performing my solo bass and electronic music from IRIS in quad sound next week in Cambridge, MA. The performance is a part of the Ampersand series which is a collaboration between WMBR and the List Visual Arts Center.

I will also be playing some new pieces at this performance. One from last summer and a new work in progress that incorporates aggressive panning with freezing sound elements. Please tell friends who might be interested. Full details are at this link http://wmbr.org/ampersand/

Posted 1 month ago

Okay, so I am getting into change ringing again, and this performance is pretty incredible.

Posted 1 month ago

### free-programming-books/free-programming-books.md at master · nashvillebrigade/free-programming-books · GitHub

A huge index of free resources

Indice de libros de programación gratis.

Interesado en el apartado de matemáticas el cual me hace mucha falta…

Reblogging for later

Posted 2 months ago

Using SuperCollider as an Oscillator and Gate Sequencer with a Modular Synth

Tonight I had the goal of interfacing SuperCollider with the modular synth a bit more. I still don’t have a proper oscillator module in my eurorack synth, so I have been looking for ways to send sound externally into the modular from the computer, gameboys, etc. I have also been wanting to experiment with shaping sequenced sounds coming from SuperCollider using the modular.

The concept is that SuperCollider generates a constant stream of audio (like an oscillator module), and can be sequenced using the built-in Pattern library. Every time a note changes, SC sends out a gate trigger signal through one of the audio outputs which is then used to trigger an envelope controlling a VCA.

So here is a solution I came up with today. In order to do this you need SuperCollider, a DC-coupled audio interface (MOTU or others), a floating-ring cable, and a modular synth.

The signal flow is as follows:

MOTU OUT 3 (SC audio) —> Filter —> VCA —> Delay —> Speaker
MOTU OUT 8 (SC gate using floating ring cable) —> envelope Trigger In —> VCA CV In
LFO Module Signal —> Filter Cutoff CV In

SynthDef(\oscwithGate, {
|freq=440, t_envgate=0, dur=1, amp=0.8, audioOut=0, gateOut=7|
var osc, gater;
osc = LFSaw.ar(freq, mul: amp);
gater = Trig1.kr(t_envgate, 0.1).range(0, 5);
Out.ar(audioOut, osc);
Out.ar(gateOut, K2A.ar(gater));

Pdef(\osc,
Pmono(
\oscwithGate,
\octave, Prand([2, 3, 4, 5], inf),
\root, 0,
\degree, Prand([0, 1, 2, 3, 4, 5, 6, 7], inf),
\dur, Pseq([Pn(0.25, 8), Pn(1/3, 6), Pn(1/5, 5)], inf),
\envgate, 1,
\audioOut, 2,
\gateOut, 7,
));

Pdef(\osc).play;
Pdef(\osc).stop;

This code creates the simple oscillator modules and takes care of the gating at the same time. Every time a new note is chosen in the Pmono, the \envgate command sends a “1” which triggers the Trig1.kr UGen which is sent to the audio output specified by the gateOut argument. I had to increase the range of the Trig1.kr UGen to 5 otherwise I didn’t get a hot enough signal to actually trigger the Trig input on the Maths module.

Posted 2 months ago

### Using the Scope to Visualize Multi-Channel Audio and Control Signals in SuperCollider

I was working tonight on some random multichannel expansion sound design in SuperCollider and I realized that I wanted to make sure that my synth was expanding correctly and I wanted a way to visualize it. I recently realized that it is possible to include multiple Out UGens in SynthDefs and decided to use this capability to first visualize the waveform audio signal and then the envelope control signal.

First, here is the synth that I have been working on:

SynthDef(\triBank, {
|lo=20, hi=440, gate=1, timeScale=1, out=0, scopeOut=0|
var sound, env, mix;
sound = LFTri.ar({ExpRand(lo, hi)}!5, {Rand(0, 4)}!5, 0.2);
env = EnvGen.kr(Env.asr({Rand(1, 4)}!5, 1, {Rand(1, 4)}!5, -4), gate, timeScale: timeScale, doneAction: 2);
sound = sound * env;
mix = Mix.new(sound);
Out.ar(out, mix);

SynthDef(\reverb, {
|in=16, out=0, size=1, damp=0.1|
var input = In.ar(in, 1);
var reverb = FreeVerb.ar(input, 0.5, size, damp);
Out.ar(out, Pan2.ar(reverb, 0));

~reverb = Bus.audio(s, 1); //assign a reverb bus

~reverbSynth = Synth.new(\reverb, [\in, ~reverb, \out, 0, \size, 1], s, \addToTail); //start reverb synth

x = Synth(\triBank, [\out, ~reverb, \timeScale, 1, \lo, 60, \hi, 440]); //start drone

x.set(\gate, 0, \timeScale, 1); //free drone

It is a Triangle Oscillator synth modeled on the Snazzy FX Drone Bank Eurorack Synth Module. I also have a simple reverb synth to make everything sound a little better. Then there is just some code to start and stop the synths. Change the argument values and see what they sound like. You can change the timeScale to make shorter or longer attack and decays.

So in my debugging work, I wanted to make sure I was actually creating five different oscillators with five different envelope shapes. I decided to use the scope to make sure everything was working. First, let’s create a plotTree and a scope to visualize the audio server and the audio waveforms.

s.plotTree;
s.scope(7, 0, rate: \audio);

Now let’s change the SynthDef so that in addition to outputing the Mixed audio, we output the 5 individual channels to a different audio bus.

SynthDef(\triBank, {
|lo=20, hi=440, gate=1, timeScale=1, out=0, scopeOut=0|
var sound, env, mix;
sound = LFTri.ar({ExpRand(lo, hi)}!5, {Rand(0, 4)}!5, 0.2);
env = EnvGen.kr(Env.asr({Rand(1, 4)}!5, 1, {Rand(1, 4)}!5, -4), gate, timeScale: timeScale, doneAction: 2);
sound = sound * env;
mix = Mix.new(sound);
Out.ar(out, mix);
Out.ar(scopeOut, sound);

x = Synth(\triBank, [\out, ~reverb, \timeScale, 1, \lo, 60, \hi, 440, \scopeOut, 2]);

x.set(\gate, 0, \timeScale, 1);

Now when we run that code, we can see the Mixed audio on audio busses 0 and 1 and then the five individual triangle waves on busses 2 through 6.

I also wanted to visualize the envelope signals. To do this, I just have to change the SynthDef again. The second Out UGen needs to be set to Control rate and it needs to output the env signal. Also remember to change the Scope to control rate.

SynthDef(\triBank, {
|lo=20, hi=440, gate=1, timeScale=1, out=0, scopeOut=0|
var sound, env, mix;
sound = LFTri.ar({ExpRand(lo, hi)}!5, {Rand(0, 4)}!5, 0.2);
env = EnvGen.kr(Env.asr({Rand(1, 4)}!5, 1, {Rand(1, 4)}!5, -4), gate, timeScale: timeScale, doneAction: 2);
sound = sound * env;
mix = Mix.new(sound);
Out.ar(out, mix);
Out.kr(scopeOut, env);

x = Synth(\triBank, [\out, ~reverb, \timeScale, 1, \lo, 60, \hi, 440, \scopeOut, 0]);

x.set(\gate, 0, \timeScale, 1);

Now we can watch the different envelopes rise and fall at different rates.

This technique is primarily useful for troubleshooting and learning more about what is happening with your audio and control signals. I have found that it has been very useful to me when designing new sounds. Let me know if there are any questions or clarifications needed.

Posted 2 months ago

peter speer at the mca

Looks great! But is he trying hide the fact that there is a laptop there?

Posted 3 months ago

### The Story Of The Clavioline

I would like to have one :)

Posted 3 months ago

There is that eurorack module I noticed a few posts back. This looks awesome, voltage controlled granular synthesis. I think it is based off of CSound opcodes.

Posted 3 months ago

good afternoon

(Source: 1jps)