Is this a thing? I would love to be a part of a monome discord. Cl.lash.clash at Gmail dot com.
funny that i never followed up
dm me too please!
hoping in as well! would love to get connected derks.dan at gmail
I’d also be interested!
Wouldn’t it be easier to share the join link here?
it might not exist
somebody should make a server
edit: meetup tentatively planned for 12 central this saturday
can you share more info on this ? sounds interesting but not sure what the focus is
we meet once a week and share what we’re working on. get photobombed by our pets, talk about lua, and just hang.
Is it planned the next appointment?
next video study group: saturday, nov 7 @ 10 pacific / 11 mountain / 12 central / 13 eastern / 18 utc / 19 cet
EDIT EDIT: we’re meeting via discord video tomorrow (saturday) at noon central! it is a beginner/n00b day so come with any and all questions, ideas, or conversation topics!
EDIT: our next study group meets in about 2 hours! you are invited. link up above Discord Norns Study Group - #27 by tyleretters
the study group convened for the first time in 2021 today. we ended up spending ~4 hours mob-coding a supercollider patch together. use at your own risk!
(55..58)
{ 1.rrand(5); } ! 5
/*
Impulse.ar(freq: 440.0, phase: 0.0, mul: 1.0, add: 0.0)
Impulse.kr(freq: 440.0, phase: 0.0, mul: 1.0, add: 0.0)
Arguments:
freq
Frequency in Hertz.
phase
Phase offset in cycles (0..1).
*/
(
{
/// TODO: make own delay/verb
//kick
var envSpec = Env.perc(0, 0.2);
var outerTrig = Impulse.kr(1) ! 2;
var trig = Impulse.ar(TChoose.kr(outerTrig, [2, 3, 4]));
var ampEnv = EnvGen.ar(envSpec, trig);
var osc = SinOscFB.ar(ampEnv * 200, ampEnv ** 20 * 5);
var filter = HPF.ar(osc, 50);
// hat
// TODO: mod decay, comb filter
var trigOuterHat = Impulse.kr(2, 0.5);
var trigHat = Impulse.kr(TChoose.kr(trigOuterHat, [2, 3, 4, 2.01, 2.5, 8, 12]));
var envHat = EnvGen.kr(Env.perc(0.01, SinOsc.kr(0.2, 0, 0.04, 0.05)), trigHat);
var oscHat = SinOscFB.ar(5500, 10);
var hat = envHat * oscHat;
var combFreq = TChoose.kr(PulseCount.ar(trig[0]) % 4, [1/55, 1/66, 1/77]);
var combFilter = CombN.ar(
hat,
1,
combFreq,
SinOsc.ar(0.73, 0, 0.17, 0.20)
);
// snare
// probability - trig[0] for lead, divide by 4, then sample
// var attack = Demand.kr(trig[0], Dwhite(0.01, 0.1));
// var attack = SinOsc.kr(0.32, 0, 0.48, 0.49); // screaming!
var attack = SinOsc.kr(0.32, 0, 0.048, 0.049);
// var attack = 0.01;
var trigSnare = Impulse.kr(1/2, 0.5);
var envSnare = EnvGen.kr(Env.perc(attack, 0.3), trigSnare);
var oscSnare = SinOscFB.ar(envSnare * 1000 + 200, 25 * envSnare + 5, envSnare);
var primes = (2..13).nthPrime;
var reverb = Mix.ar(primes.collect({|i|
var delayTime = SinOsc.ar(0.02.rrand(0.1), 0, 0.02.rand, i/100);
(oscSnare + AllpassL.ar(oscSnare, 1/2, delayTime, 3)) / primes.size
}));
// bass
var trigBass = Impulse.kr(1/2, 0.75);
var envBass = EnvGen.kr(Env.perc(0.01, 1, 1, 0), trigBass);
var bass = SinOscFB.ar(1/combFreq, envBass ** 3, envBass ** 0.25);
// pad
// TODO: add delay to pad (musical time interval)
var trigPad = Impulse.kr(1/2, 0);
var padEnv = EnvGen.ar(Env.perc(1, 3), trigPad);
var padOsc = SinOscFB.ar(
SinOsc.kr(
2.47,
0,
4,
TChoose.kr(trigPad, [ 440, 528, 616 ] ++ [ 660.0, 792.0, 924.0 ])
),
padEnv * 1.2,
padEnv
);
// mixer (audio -> bus)
var bpfTrig = Impulse.kr(1/12, 0);
var mix = Mix.ar([
bass * 0.5,
oscSnare * 0.4,
reverb * 0.4,
hat * 0.3,
padOsc * 0.1,
Pan2.ar(combFilter, 1) * 0.2,
filter * ampEnv * 0.5
]);
var filterFreqEnv = EnvGen.ar(Env.perc(4, 0, 100, 0), bpfTrig);
var filterAmountEnv = EnvGen.ar(Env.perc(2, 2, 1, 0), bpfTrig);
var filtered = BPF.ar(mix, filterFreqEnv.midicps, 0.1);
(filtered * filterAmountEnv) + (mix * (1 - filterAmountEnv))
}.play
)
[1/55, 1/66, 1/77]
(55.cpsmidi - 0.1).midicps
[55, 66, 77] * 8
// [ 220, 264, 308 ]
[ 440, 528, 616 ]
[ 660.0, 792.0, 924.0 ]
(
SynthDef(\sadpad, { |freq=616, t_trig=1, lfoSpeed=2.47, vibratoDepth=4|
// var padEnv = EnvGen.ar(Env.perc(1, 3), t_trig);
var padEnv = EnvGen.ar(Env.perc(1, 3), t_trig, doneAction: 2);
Out.ar(0,
SinOscFB.ar(
SinOsc.kr(lfoSpeed, 0, vibratoDepth, freq),
padEnv * 1.2,
padEnv
) * 0.3 ! 2)
}).add;
Pbind(
\instrument, \sadpad,
\trig, 1,
\freq, Pseq([ 440, 528, 616 ] *.t [1, 1.5]),
\lfoSpeed, Pwhite(0.0, 3.0),
\vibratoDepth, 0
).play;
)
[ 440, 528, 616 ] *.t [1, 1.5]
{ Pan2.ar(SinOsc.ar(110), SinOsc.ar(0.5, )) } .play;
3 + 3 * 2
3 * 2 + 3
#(2..3).nthPrime;
(2..13).nthPrime
1.nthPrime
55.reciprocal
1/55
Limiter
SoftClip
softClip
.distort
.softclip.distort
s.sampleRate / s.options.blockSize
(1..10).collect({|i| i * 2})
Same link , Same time, we are meeting again , i am hosting again feel free to join in!
next meetup: Saturday, March 27th, at 10am PST
i’ll be hosting the next norns study group. next week the theme will be: tone to drone in 60 seconds.
the plan is dip six toes into supercollider to make a drone and then dip the remaining toes into norns to put that drone into dronecaster. depending on the group we may opt to mob code a single drone, or you can follow along and make your very own drone. in any case, this is a really great way to get introduced to the norns ecosystem (supercollider + scripting).
any and all are encouraged engage at any and all levels. feel free to come with zero knowledge and ask questions (there are no stupid questions. period.). or feel free to come and just listen to drones (midding is encouraged). or feel free to come with a drone in hand and ask questions about it. or feel free to ask questions about anything else.
if you are interested in making your own drone right away, checkout the tutorial. but please - feel free to ignore the tutorial right now - its mainly for reference.
Great! Its in the same discord link that has been posted before?
What are the requirements for this Norns study group? Computer + Norns? Any software requirements? Should we have Supercollider installed? Confirm assistance?
curiosity & courage! come on by
no norns required! though we might at some point go over how to insert drones into dronecaster (on norns), the supercollider bit will be norns-independent. it might be helpful to have supercollider installed if you want to follow along with that in realtime, but I plan to have a doc that will mirror what we do you can easily sit back and enjoy the show (and ask any questions that come to mind). no confirmation needed, just pop in!
our “tone to drone in 60 seconds” event is starting in a few minutes! come on by