Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 06-28-2017, 09:38 AM   #1
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default "Analog" Delay - How to get increasing distortion on fading repeats?

Maybe this is just really simple and I'm being stupid, but from the way I know a delay effect to work, I can't see how to make it happen.

If the repeats are meant to fade out, you've got a negative feedback value, so each time it comes back around it's quieter, and basically just further and further away from the "threshold" of whatever you're trying to distort.

I can see where we could do it with crossover distortion, but that's not usually very nice sounding.

So, am I missing something obvious? Anybody got any bright ideas?
ashcat_lt is offline   Reply With Quote
Old 06-28-2017, 09:56 AM   #2
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 29,269
Default

I don't know, first thought is it possible to use parameter modulation reversed so that as the repeats decrease, the gain is turned down less and less. I'm not accounting for everything that can go wrong in the example below but you might be able to see the amount of gain is being reduced less and less as the repeats get quieter...





Feels kludgy but something more elegant may be possible.
__________________
Music is what feelings sound like.

Last edited by karbomusic; 06-28-2017 at 10:11 AM.
karbomusic is offline   Reply With Quote
Old 06-28-2017, 11:23 AM   #3
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,773
Default

You would use use some "distortion" code in the feedback of a delay done as a JSFX.

But I suppose a guitar-type distortion will not help, as it works at high volume and does nothing at low level. So you would need some kind of wave-shaper. Seems like rather easy to do, but you need to find a "good sounding" shape.

-Michael
mschnell is offline   Reply With Quote
Old 06-28-2017, 01:28 PM   #4
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Yeah, I was talking about doing it in JS, but I think the issue is about the same if we're trying to build it with multiple plugs.

And yes, the main problem is that most distortion (that sounds good) is going to be dependent on some threshold - something being "too loud" for something. But of course, as things get quieter they will start to fall below that threshold.

If we use crossover distortion, it works, but it sounds like crossover distortion, and eventually starts to get all gated and horrible.

Maybe (???) some form of compansion where we compress heavily, then distort, then expand back by the same amount it was compressed, but I'm not sure that really does what we're looking for either.
ashcat_lt is offline   Reply With Quote
Old 06-28-2017, 03:23 PM   #5
BenK-msx
Human being with feelings
 
BenK-msx's Avatar
 
Join Date: Jun 2008
Location: Whales, UK
Posts: 6,010
Default

The main analog effect imo is the delays filtering (low pass mostly but also high pass) each time, along with the fade out feedback level, leaving room for new material and giving a sense of space. See nastydla as example of that.

if combined that with a Tuby/tapey compression/distortion on the delays, like you mention (with no gain change from input/) that probably do it, but naturally needs to come before the fade/feedback aspect.

An fx chain stack of rea delays acting as one 'tap' each, one feeding into the next, with sats/distortion /filter inbetween and the right settings could be a bodge to test.
__________________
JS Super8 Looper Template & intro | BCF2000 uber info Thread | Who killed the Lounge?

Last edited by BenK-msx; 06-28-2017 at 03:30 PM.
BenK-msx is offline   Reply With Quote
Old 06-28-2017, 03:43 PM   #6
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 29,269
Default

Quote:
And yes, the main problem is that most distortion (that sounds good) is going to be dependent on some threshold - something being "too loud" for something. But of course, as things get quieter they will start to fall below that threshold.
I'm not getting why incrementally increasing the gain or it's input isn't the equivalent of moving that threshold so that the signal rides above it. My example above was very primitive but that's exactly what it was supposed to do... Chase the repeats, increasing gain as they fall off.

I actually use Tal-Dub delays which get close enough for me as far as distorted repeats go; albeit probably not as you are needing.
__________________
Music is what feelings sound like.

Last edited by karbomusic; 06-28-2017 at 03:50 PM.
karbomusic is offline   Reply With Quote
Old 06-28-2017, 05:47 PM   #7
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Quote:
Originally Posted by BenK-msx View Post
The main analog effect imo is the delays filtering (low pass mostly but also high pass) each time...
I agree, it's the filtering and the noise more than distortion. The repeats will get more and more distorted with positive feedback, but they sure won't fade out that way. This is kind of based off a request on another forum, based on a kind of common misconception on how analog/tape delays actually work. The best anybody could come up with was a sort of "manual" delay where you copy the part you want to repeat and add more and more distortion. That can work if you only want it to happen a couple times in a song, but if you want it to go for the whole track or whatever... I just wondered if we couldn't find some way to make it sort of happen in a natural sounding way via code.


karbo - Your idea might work, but you said yourself it's a kludge. Also, it seems to me like increasing gain as the input gets quieter pretty much just keeps the input from getting quieter - undoing to some extent the fade out action. You'd kind of have to undo that at the output of (or after) the distortion. And what happens then if you add new content while it's tailing out?

IDK, it's mostly just a thought experiment at this point.
ashcat_lt is offline   Reply With Quote
Old 06-28-2017, 05:51 PM   #8
Bri1
Banned
 
Join Date: Dec 2016
Location: England
Posts: 2,432
Default

Quote:
How to get increasing distortion on fading repeats?
Just use readelay- trick is dialing in the feedback close to 0 and riding the hipass-depends on source.
With each reapeat reavolution> you can crush the bits as well.
Gets very loud!!! caution in use!!! ___or not. =)
A leveller of some kind at end of chain helps.
Bri1 is offline   Reply With Quote
Old 06-28-2017, 06:19 PM   #9
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Quote:
Originally Posted by Bri1 View Post
Just use readelay- trick is dialing in the feedback close to 0 and riding the hipass-depends on source.
With each reapeat reavolution> you can crush the bits as well.
I've never known ReaDelay to distort. Thought the bit depth parameter really just added noise. Anyway, if the repeats aren't fading out like normal, it's not doing what I want. Any "analog" style delay will get more distorted with more repeats if the feedback is greater than 0, but that's the opposite of fading out.
ashcat_lt is offline   Reply With Quote
Old 06-28-2017, 06:19 PM   #10
Bri1
Banned
 
Join Date: Dec 2016
Location: England
Posts: 2,432
Default

With certain settings-readelay can be transformed into a savage animal that needs a trained tamer to manage it's aggression.
Try very short times.
https://forum.cockos.com/attachment....1&d=1498699118
^Little chain=quite nice when you play around realtime shaping =)

Last edited by Bri1; 12-22-2018 at 11:56 AM.
Bri1 is offline   Reply With Quote
Old 06-28-2017, 06:21 PM   #11
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Quote:
Originally Posted by Bri1 View Post
With certain settings-readelay can be transformed into a savage animal that needs a trained tamer to manage it's aggression.
Try very short times.
https://forum.cockos.com/attachment....1&d=1498699118
That's like completely not what I'm looking for. Thanks, though.
ashcat_lt is offline   Reply With Quote
Old 06-28-2017, 06:24 PM   #12
Bri1
Banned
 
Join Date: Dec 2016
Location: England
Posts: 2,432
Default

Quote:
That's like completely not what I'm looking for. Thanks, though.
Lol-ok npz- you fear the beasty-that's fine!
Bri1 is offline   Reply With Quote
Old 06-28-2017, 06:25 PM   #13
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Quote:
Originally Posted by Bri1 View Post
Lol-ok npz- you fear the beasty-that's fine!
I ain't afraid of shit, but you're not actually helping me accomplish what I asked for.
ashcat_lt is offline   Reply With Quote
Old 06-28-2017, 06:29 PM   #14
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 29,269
Default

Quote:
Originally Posted by ashcat_lt View Post


karbo - Your idea might work, but you said yourself it's a kludge. Also, it seems to me like increasing gain as the input gets quieter pretty much just keeps the input from getting quieter - undoing to some extent the fade out action. You'd kind of have to undo that at the output of (or after) the distortion. And what happens then if you add new content while it's tailing out?

IDK, it's mostly just a thought experiment at this point.
Yea, I get it. It was more the conceptual part I was thinking about minus all those extra problems to deal with.
__________________
Music is what feelings sound like.
karbomusic is offline   Reply With Quote
Old 06-28-2017, 06:29 PM   #15
Bri1
Banned
 
Join Date: Dec 2016
Location: England
Posts: 2,432
Default

Quote:
Originally Posted by ashcat_lt View Post
I ain't afraid of shit, but you're not actually helping me accomplish what I asked for.
Heh-actually I am helping-doing you a favour just play with it-you will see the power of the beasty. =)
Bri1 is offline   Reply With Quote
Old 06-28-2017, 06:55 PM   #16
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Quote:
Originally Posted by Bri1 View Post
Heh-actually I am helping-doing you a favour just play with it-you will see the power of the beasty. =)
How bout you make an example and show me how well your idea works. All I need is one word to repeat a few times (far enough apart to be intelligible, lets say like quarter notes at a reasonable tempo) and have each repeat both quieter and more distorted than the last. Do it. Show me. Else, move on.
ashcat_lt is offline   Reply With Quote
Old 06-28-2017, 07:16 PM   #17
Aeolian
Human being with feelings
 
Aeolian's Avatar
 
Join Date: Jun 2010
Location: Somewhere PRO
Posts: 1,049
Default

I think SaulT posted some tape_echo js code a few months back.

Iirc, he specifically mentioned that it (re)filtered each delay pass, as well as saturation on each pass.

I think I have it, I'll dig it up and post it tonight.

Btw, I use your lt_delay pedal, and lt_diode, quite a bit lately.
__________________
"REAPER... You're simply the best" - Tina Turner
Aeolian is offline   Reply With Quote
Old 06-29-2017, 12:20 AM   #18
Bri1
Banned
 
Join Date: Dec 2016
Location: England
Posts: 2,432
Default

Quote:
How bout you make an example and show me how well your idea works.

Do it. Show me. Else, move on.
Ohhhhhhh I see how it goes here--lolz okok.

Have you tried readelay yet? -- takes about 5mins to see what's what there.
If your not happy with that-there's a slew of others to try think -_- witti.<
When your done with that,i may even show you how to make a rea lly ***unique complex drum machine*** >with just 2 delays and a bunch of samples. =)
Bri1 is offline   Reply With Quote
Old 06-29-2017, 01:21 PM   #19
jcjr
Human being with feelings
 
Join Date: Dec 2015
Location: SE TN USA
Posts: 77
Default

From my recollection of for instance old tape echoplex, the degenerative fidelity of repeat echos was a combination of progressive distortion, noise, and fairly large wow and flutter. After an echoplex got a year or two nightly use wow and flutter was rather large and even new-from-the-showroom wow and flutter wasn't exactly small.

The wow and flutter even with short delays was IMO one factor that the Echoplex was so fat. It was "unintentional" delay-chorus effect because of mechanical defects.

Back in the 1970's I had a phone conversation with the fella who designed the echoplex, can't recall his name. He said it was originally designed as a guitar effect (though it was great on vocals and other instruments). It has an intentional low-bass rolloff and an intentiional high-mid boost. Which helps eliminate mud and adds clarity.

Early digital delay units with flat-frequency feedback and no wow-flutter were not nearly as "succinct" as echoplex with its frequency shaping and unsteady pitch. It was even worse with BBD analog delays which had such poor high freq response they couldn't even have much of a high-mid boost.

Heavy regeneration on Echoplex did not get "confused muddy cloudy" as did typical digital or analog delays. Every repeat loop loses more bass and gains another high-mid boost.

On the low-level distortion, a wild guess-- Tape would distort at high levels but had distortion on low level signals as well. The purpose of high-frequency bias tones mixed with the record signal in tape machines was to attempt to workaround severe natural low-level nonlinearity in tape.

So rather than a distortion curve that only distorts on overdrive such as guitar effects, possibly apply a non-linear curve to the entire dynamic range. Maybe the quickest first-try could be to exponentiate the feedback with an exponent near 1.0? Maybe too extreme or not extreme enough, but maybe

FeedbackSample = sign(OutputSample) * OutputSample ^ 1.1;
or
FeedbackSample = sign(OutputSample) * OutputSample ^ (1 / 1.1);

Dunno whether exponent > 1 or < 1 would work better. Or if either would work any good. It would at least have equal distortion all the way up and down the dynamic range.

So maybe an attempt at echoplex--

On the dalay buffer output sample (before feedback) apply a first order highpass rolloff, maybe 100 Hz, or maybe some other frequency. Apply a wide peaking high-mid boost centered at somewhere around 1500 to 3000 Hz. Apply a first-order lowpass rolloff maybe 5 or 10 kHz. Add a little noise. Then slightly distort it.

And then in the delay line, modulate the delay line read pointer with a random-like, smooth chaotic LFO, to emulate the wow and flutter. Alternately maybe mix a "wow" LFO with a "flutter" LFO etc. But chaotic LFO that always has the same amplitude but never has a steady frequency, I like it even if maybe it doesn't sound exactly like wow and flutter.

Last edited by jcjr; 06-29-2017 at 01:35 PM.
jcjr is offline   Reply With Quote
Old 06-29-2017, 02:05 PM   #20
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,592
Default

I don't know how to do it with programming but in a mix I'd do it with a feedback loop.

did a video on it, using eq and pitch shift to the loop, but you can do the same with a distortion.

http://reaperblog.net/2016/07/delay-feedback-effects/
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 06-29-2017, 09:08 PM   #21
SaulT
Human being with feelings
 
Join Date: Oct 2013
Location: Seattle, WA
Posts: 876
Default

I got the increasingly fuzzy effect by using a saturation curve that is more nonlinear the closer you get to zero. It isn't perfect, but it's interesting. If I was to do it over again I would use a steeper filter, but whatever.


http://forum.cockos.com/showthread.php?t=170874
SaulT is offline   Reply With Quote
Old 07-12-2017, 06:36 AM   #22
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,107
Default

ashcat, could you progress with this in any way meanwhile ?

My own delay effect is on hold currently facing exactly this problem.
nofish is offline   Reply With Quote
Old 07-12-2017, 09:56 AM   #23
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Quote:
Originally Posted by nofish View Post
ashcat, could you progress with this in any way meanwhile ?

My own delay effect is on hold currently facing exactly this problem.
Well, no...

Honestly I was "asking for a friend", and that thread kind of fizzled anyway. I got curious and wondered if the smart folks over here had got it. I'm intrigued by what SaulT posted above, but honestly haven't tried it yet.

SaulT, if you've got your ears on, can you help me sort out your non-linearity. Like, a desmos graph would be awesome.
ashcat_lt is offline   Reply With Quote
Old 07-12-2017, 02:28 PM   #24
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,773
Default

I definitively would try a wave shaping:

1) do a non distorting delay with feedback and other features you desire.

2) put a wave shaper function in the feedback.

For the wave-shaper I would read an array of - say - 32 values from a file and use linear interpolation (e.g. between -1 and 1). You might want to divide the values by e.g. 16 before.

With that a file containing
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

would create no distortion while e.g.


-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
-0.5
0
0.5
1
2
3
4
5
6
7
8
9
10
11
12
13
14

would add some compressing distortion to a soft signal, while

-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
0
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

would add some expending distortion to a soft signal.

You could think of lots of other distortion forms to try.

Maybe at best you would do the linear interpolation function (appropriately scaled) after a log() and then use an exp(). This would allow for more accurate defining the low level part.

Moreover supposedly it is not necessary to allow asymmetric behavior , so you could drop the negative part of the file.

-Michael

Last edited by mschnell; 07-12-2017 at 10:07 PM.
mschnell is offline   Reply With Quote
Old 07-12-2017, 06:08 PM   #25
jcjr
Human being with feelings
 
Join Date: Dec 2015
Location: SE TN USA
Posts: 77
Default

Ditto what mschnell advised. The simplest nonlinearity I can think of is what I earlier suggested. Maybe it would sound ok or maybe not.

FeedbackSample = sign(OutputSample) * OutputSample ^ 1.1;
or
FeedbackSample = sign(OutputSample) * OutputSample ^ (1 / 1.1);

Experiment with the exponent value. Closer to 1 makes less distortion and farther away from 1 makes more distortion. Exponent > 1 is zero-hold expansion. Exponent < 1 is zero-hold compression.

At any chosen exponent, I think the resulting distortion intensity ought to be exactly the same regardless of the audio level but could be mistaken. A -48 dB sine wave ought to get distorted exactly the same as a sine wave at 0 dB.

This is the same kind of distortion you can get by taking an analog compander circuit, either a wide-range compressor or a wide-range expander, and snip the smoothing capacitor out of the envelope follower. Sometimes analog distortion boxes have been made like this with an OTA or VCA. Make a compressor but don't smooth the sidechain.

I can't cite a specific reference but this style of distortion was sometimes used in vocoders and mutron-style envelope follower filters to add harmonics so that mellow instruments feed richer harmonics to to the filter. In that usage larger exponents were typical. I used it in the past for "analog style" envelope follower filter and vocoder. For a mutron or vocoder, added harmonics need to be about the same amount for either quiet or loud notes. Otherwise it can be hard to get the expected result. For instance a guitar note into a mutron gets quieter and mellower as the note decays, so if you want more harmonics to filter, need to distort both the loud and quiet parts of the note.

Large exponents can sound fairly rough. I never tried it for subtle distortion. Dunno how suitable it would be for subtle distortion. Would be real quick/easy to test.
jcjr is offline   Reply With Quote
Old 07-13-2017, 02:50 AM   #26
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 346
Default

Quote:
Originally Posted by jcjr View Post
FeedbackSample = sign(OutputSample) * OutputSample ^ 1.1;
or
FeedbackSample = sign(OutputSample) * OutputSample ^ (1 / 1.1);
Power-based transforms are volume-dependent - if the exponent is more than 1, it will always be unstable for loud enough inputs, and if the exponent is less than 1, it will amplify small inputs, so the feedback would never completely die away.

Quote:
Originally Posted by jcjr View Post
At any chosen exponent, I think the resulting distortion intensity ought to be exactly the same regardless of the audio level but could be mistaken. A -48 dB sine wave ought to get distorted exactly the same as a sine wave at 0 dB.
For this kind of feedback-echo scenario, I agree volume-independent distortion could be a good property to have. My first thought is to pick a distortion curve that uses log(abs(x)):

Code:
slider1:distortion_amount=0.15<0,2,0.01>distortion amount
slider2:distortion_scale=10<5,20,1>distortion bumpiness

@sample
function distort(x) (
	x*(1 + distortion_amount*sin(distortion_scale*log(abs(x)));
);
spl0 = distort(spl0);
spl1 = distort(spl1);
Here's a graph of what that looks like - it has the same amount of non-linear wobble in the response no matter how much you zoom in. You should be able to tweak those two parameters and see how it affects the response curve.

Another way to get constant distortion would be to constantly adapt the distortion level to match the input. This is something I've thought about before but never implemented, but it could look a bit like this:

Code:
slider1:period_ms=50<5,200,1>period (ms)
slider2:distortion_amount=1<0.1,2,0.01>distortion

@slider

period_samples = srate*period_ms*0.001;
average_factor = 1/period_samples;

@sample

// My favourite soft-clip function
function tanh(x) local(e2x) (
	(x >= 20) ? 1 : (x <= -20) ? -1 : (
		e2x = exp(2*x);
		(e2x - 1)/(e2x + 1);
	);
);

// Instantaneous energy measurement
sum2 = (spl0*spl0 + spl1*spl1)*0.5;
// Exponential moving average
energy += (sum2 - energy)*average_factor;
rms = max(sqrt(energy), 0.000001);

// Apply distortion
distortion_level = rms/distortion_amount;
spl0 = distortion_level*tanh(spl0/distortion_level);
spl1 = distortion_level*tanh(spl1/distortion_level);
(That particular implementation would end up distorting the beginnings of notes more, because the distortion threshhold would be set really low until the moving average caught up. I'm curious to hear what that sounds like, tbh.)

I haven't run either of those code examples, so there are probably bugs, but they hopefully illustrate the general idea.

Last edited by geraintluff; 07-13-2017 at 06:21 AM.
geraintluff is offline   Reply With Quote
Old 07-13-2017, 10:43 PM   #27
SaulT
Human being with feelings
 
Join Date: Oct 2013
Location: Seattle, WA
Posts: 876
Default

So the saturation function on mine is a variation of the LOSER/Saturation function, just done with an approximation of sin() instead of sin() itself. I think x-x^3/6 is the Taylor expansion of sin() around 0. I was pretty obsessed with this function and its variations, e.g. the cubic clipper (x-x^3/3, which is an approximation of tanh).

https://www.desmos.com/calculator/o8kbdto5ry


I've experimented with an RMS-dependent distortion myself, but I don't think I was super happy with the results. I'll see if I can dig it up.
SaulT is offline   Reply With Quote
Old 07-14-2017, 10:40 AM   #28
jcjr
Human being with feelings
 
Join Date: Dec 2015
Location: SE TN USA
Posts: 77
Default

Quote:
Originally Posted by geraintluff View Post
Power-based transforms are volume-dependent - if the exponent is more than 1, it will always be unstable for loud enough inputs, and if the exponent is less than 1, it will amplify small inputs, so the feedback would never completely die away.
Thanks geraintluff. Didn't think about the effect considering feedback. I still think (perhaps mistakenly) that the distortion waveshaping would be the same regardless of signal amplitude.

But as you say, gain would vary according to level. For instance with an exponent of 0.9-- An 0 dB sine input would have 0 dB gain (on waveform peaks). A -6 dB input would get about 0.6 db gain but a -90 dB input would have about 4.8 dB dB gain.

So to assure that the regeneration eventually decays to zero, if I'm thinking about it correctly, feedback gain would need to be less than -4.8 dB?

Agreed it seems not very suitable for feedback uses. Maybe could be fixed by clamping the distortion below some signal level-- Maybe trend toward linear below -48 dB or whatever? Tape echoplex probably had a noise floor higher than that. Probably some other method of distortion would be more suitable than the power-based transform.

Quote:
Originally Posted by geraintluff View Post
For this kind of feedback-echo scenario, I agree volume-independent distortion could be a good property to have.
Yes maybe an auto-level compressor before distortion. Then after distortion, multiply the distortion output by the reciprocal of the auto-level instantaneous gain to restore the distorted output signal to the approximate input signal level.

Maybe it could be optimized/simplified but I'm simple minded and would probably do the distortion with something like an interpolated gain table rather than a formula. So if the gain mapping table has been normalized for full-scale signals, an auto-level before gain mapping would be easy to understand.

Long ago when I was doing hardware hacking, built some devices that wrapped the functional circuitry inside an auto-level input and complementary expander on the output. Which was a "more extreme" version of 2:1:2 symmetrical compander systems. Just drive the output VCA with the same control voltage which drives the input auto-level VCA. Those old circuits were for auto-EQ functions and I wanted to auto-EQ the same for any level of signal. So putting the circuit inside the auto-level + expander supplied about the same audio level to the auto-EQ regardless of input signal level, but preserved the approximate input dynamics on the output.

One nice thing about companders, or the more extreme auto-level compander-- Distortion caused by the compressor envelope smoother was somewhat "un-done" by applying the same envelope smoother defects to the output expander.

Distortion caused by auto-level with an "instant attack" fast release envelope, could be mostly un-done by the expander driven by the reciprocal of that envelope. The envelope smoother could possibly be faster and sloppier than what would be tolerable in a musical compressor, with few ill effects. Am just saying, to avoid overshoots and pumping in the input auto-level, perhaps instant attack fast release peak envelope smoothing would be better than RMS in this case.

Just random thoughts for what its worth.
jcjr is offline   Reply With Quote
Old 07-14-2017, 11:00 AM   #29
Judders
Human being with feelings
 
Join Date: Aug 2014
Posts: 11,052
Default

JS Floaty Delay does this, no?

https://forum.cockos.com/showthread.php?t=26126
Judders is offline   Reply With Quote
Old 07-15-2017, 11:00 AM   #30
geraintluff
Human being with feelings
 
geraintluff's Avatar
 
Join Date: Nov 2009
Location: mostly inside my own head
Posts: 346
Default Added to Bad Connection

I've included this in v2 of Bad Connection. (That effect felt a bit too specific anyway, and I felt this was a good feature).

It includes a distortion section (with the log(abs(x)) response I thought about earlier) and a feedback delay line which includes the distortion and volume-variation inside it. I tried the RMS-tracked distortion, but I didn't like the sound as much as the log(abs(x)) curve, but that's just a personal preference.

More info/screenshot on this page, but here's an example with distortion, and one with volume variation in the feedback loop as well. You can (as always) install it via ReaPack or get it from the Stash.

Last edited by geraintluff; 07-15-2017 at 03:57 PM. Reason: Add second demo
geraintluff is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:21 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.