Skip to content

Commit ad53027

Browse files
committed
feat: limiter gain, wet gain, dry gain
1 parent 019c1ba commit ad53027

File tree

5 files changed

+12
-13
lines changed

5 files changed

+12
-13
lines changed

classes/DirtOrbit.sc

+4-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ DirtOrbit {
6363
GlobalDirtEffect(\dirt_reverb, [\size, \room, \dry]),
6464
GlobalDirtEffect(\dirt_leslie, [\leslie, \lrate, \lsize]),
6565
GlobalDirtEffect(\dirt_rms, [\rmsReplyRate, \rmsPeakLag]).alwaysRun_(true),
66-
GlobalDirtEffect(\dirt_monitor, [\limitertype]).alwaysRun_(true),
66+
GlobalDirtEffect(\dirt_monitor, [\limitertype, \outgain, \dry, \wet]).alwaysRun_(true),
6767
]
6868
}
6969

@@ -185,14 +185,16 @@ DirtOrbit {
185185
~lag = 0.0;
186186
~length = 1.0;
187187
~loop = 1.0;
188-
~dry = 0.0;
188+
~dry = 1.0;
189+
~wet = 1.0;
189190
~lock = 0; // if set to 1, syncs delay times with cps
190191

191192
~amp = 1;
192193
~fadeTime = 0.001;
193194
~delaytime = 0.1875;
194195
~delayfeedback = 0.15;
195196
~lock = 1;
197+
~outgain = 1; // output gain that drives the final limiter
196198

197199

198200
// values from the dirt bus

classes/SuperDirt.sc

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ SuperDirt {
5555
init {
5656
soundLibrary = DirtSoundLibrary(server, numChannels);
5757
outputvolume = server.volume;
58-
outputvolume.setVolumeRange(-90, 0);
58+
outputvolume.setVolumeRange(-90, 6);
5959
modules = [];
6060
this.loadSynthDefs;
6161
this.initVowels(\counterTenor);

hacks/adding-a-compressor.scd

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
GlobalDirtEffect(\dirt_reverb, [\size, \room, \dry]),
88
GlobalDirtEffect(\dirt_leslie, [\leslie, \lrate, \lsize]),
99
GlobalDirtEffect(\dirt_rms, [\rmsReplyRate, \rmsPeakLag]).alwaysRun_(true),
10-
GlobalDirtEffect(\dirt_monitor, [\limitertype]).alwaysRun_(true),
10+
GlobalDirtEffect(\dirt_monitor, [\limitertype, \outgain]).alwaysRun_(true),
1111
]
1212
};
1313
)

library/strudel-synths.scd

+2-4
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,6 @@
185185
sound = sound * volenv * 0.3;
186186

187187
Out.ar(out, DirtPan.ar(sound, ~dirt.numChannels, pan));
188-
189-
// Out.ar(\out.kr(0), sound * \amp.kr(0.1));
190188
}).add;
191189

192190

@@ -259,8 +257,8 @@
259257

260258
SynthDef("strudel_bpf" ++ numChannels, { |out, cutoff=440, resonance=0, attack, hold, decay, envamt=0, anchor=0, release, holdtime|
261259
var signal = In.ar(out, numChannels);
262-
cutoff = StrudelUtils.calculateCutoff(cutoff,anchor, envamt, hold, holdtime, attack, decay, release, cutmax: SampleRate.ir / 2);
263-
signal = BPF.ar(signal, cutoff, 1/resonance) * max(resonance, 1.0);
260+
cutoff = StrudelUtils.calculateCutoff(cutoff,anchor, envamt, hold, holdtime, attack, decay, release, cutmax: SampleRate.ir / 2);
261+
signal = BPF.ar(signal, cutoff.abs.clip(20, SampleRate.ir / 2), resonance.abs.clip(0.05, 1));
264262
ReplaceOut.ar(out, signal)
265263
}, [\ir, \kr, \kr]).add;
266264

synths/core-synths-global.scd

+4-5
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,15 @@ CORE SYNTHDEFS FOR DIRT
2323
2424
*/
2525

26-
SynthDef("dirt_monitor" ++ numChannels, { |dryBus, effectBus, outBus, gate = 1, limitertype = 1|
27-
var drySignal = In.ar(dryBus, numChannels);
28-
var wetSignal = In.ar(effectBus, numChannels);
26+
SynthDef("dirt_monitor" ++ numChannels, { |dryBus, effectBus, outBus, gate = 1, limitertype = 1, outgain = 1, dry = 1, wet = 1|
27+
var drySignal = In.ar(dryBus, numChannels) * StrudelUtils.gainCurve(dry);
28+
var wetSignal = In.ar(effectBus, numChannels) * StrudelUtils.gainCurve(wet);
2929
//var signal = XFade2.ar(wetSignal, drySignal, dry * 2 - 1);
3030
var signal = wetSignal + drySignal;
3131
var post = if(SuperDirt.postBadValues) { 2 } { 0 };
32-
3332
signal = Select.ar(CheckBadValues.ar(signal, post: post) > 0, [signal, DC.ar(0)]);
3433
//remove any low frequency artifacts that can slam the limiter
35-
signal = HPF.ar(signal, 16);
34+
signal = HPF.ar(signal, 16) * StrudelUtils.gainCurve(outgain);
3635

3736
signal = Select.ar(limitertype,
3837
[

0 commit comments

Comments
 (0)