|
|
|
02-25-2020, 03:41 PM
|
#41
|
Human being with feelings
Join Date: Oct 2018
Posts: 173
|
Hi all following this thread
Heres a weird thing. Ive been trouble shooting for hours and hours. And I finally got the Oversampled Sinner/Clipper to work when I duplicated SaulTs 4xlimiter-file and changed that to the code that I couldnt get to work earlier. I did it section by section to make sure that it would compile.
So its working now and theres significantly less aliasing - just like I wanted. Still cant figure out why the "regular way" didnt. I placed the library in all kinds of folder locations but no...
On another note regarding the JSFX editing window:
Is there a keyboard shortcut to comment out large chunks of marked code?
Is there a way to change the size of the code/text?
Many thanks + best regards /danerius
Last edited by danerius; 02-25-2020 at 03:45 PM.
Reason: typos
|
|
|
03-12-2020, 05:16 PM
|
#42
|
Human being with feelings
Join Date: Oct 2018
Posts: 173
|
Guys
I just noticed that my code doesnt null properly. So I made this simple gain thing to double check and indeed it doesnt. Theres a phasey treble happening instead
Any ideas what might be happening?
Many thanks + best regards /danerius
Code:
desc:Sinner Upsampled 0.3
// Oversampling library by Sault + Tale
slider1:1<0.5,2,0.01>Gain
import st-oversampler.jsfx-inc
@init
function process(spl,slider)
(
spl * slider1;
);
@slider
//threshold = 2 ^ (slider2/6);
@sample
s0 = spl0;
s1 = spl1;
os0.os_up4(s0);
os1.os_up4(s1);
os0.y3 = process(os0.y3,slider1);
os0.y2 = process(os0.y2,slider1);
os0.y1 = process(os0.y1,slider1);
os0.y0 = process(os0.y0,slider1);
s0 = os0.os_down4();
os1.y3 = process(os1.y3,slider1);
os1.y2 = process(os1.y2,slider1);
os1.y1 = process(os1.y1,slider1);
os1.y0 = process(os1.y0,slider1);
s1 = os1.os_down4();
spl0 = s0;
spl1 = s1;
|
|
|
03-12-2020, 10:17 PM
|
#43
|
Human being with feelings
Join Date: Oct 2013
Location: Seattle, WA
Posts: 876
|
St-oversampler does not null completely, maybe 20-30 dB depending on material. I have been searching for the correct technique to achieve that but I haven't found it yet.
Add
Code:
pdc_bot_ch = 0; pdc_top_ch = 2;
pdc_delay = 7;
To your @init section. This is the correct pdc_delay for the 4x code.
|
|
|
03-13-2020, 02:26 AM
|
#44
|
Human being with feelings
Join Date: Oct 2018
Posts: 173
|
Ooohhhh... of course. I forgot about the latency. That explains the phasing and that I couldnt really hear it when I wasnt nulling. Thats what comes from meandering to much with the code
Big thanks SaulT
Best regards /danerius
Quote:
Originally Posted by SaulT
St-oversampler does not null completely, maybe 20-30 dB depending on material. I have been searching for the correct technique to achieve that but I haven't found it yet.
Add
Code:
pdc_bot_ch = 0; pdc_top_ch = 2;
pdc_delay = 7;
To your @init section. This is the correct pdc_delay for the 4x code.
|
|
|
|
03-14-2020, 09:18 AM
|
#45
|
Human being with feelings
Join Date: Oct 2013
Location: Seattle, WA
Posts: 876
|
When I first coded everything a few years ago I didn’t know what I know now, so while there are solid design choices there are also missteps. There’s room for improvement. I need to do a major update across the board... not necessarily a complete rewrite, but I’ve written a lot more code, can’t even find some of it anymore, some of what I’ve written never found a use... and almost none of it has correct pdc_delay.
So I guess that will be a thing at some point. I’m starting to realize just how much I still need to learn. If anything, the list has gotten longer over the last few years...
|
|
|
03-14-2020, 01:54 PM
|
#46
|
Human being with feelings
Join Date: Oct 2018
Posts: 173
|
Regardless. Youre miles ahead of me
/danerius
Quote:
Originally Posted by SaulT
When I first coded everything a few years ago I didn’t know what I know now, so while there are solid design choices there are also missteps. There’s room for improvement. I need to do a major update across the board... not necessarily a complete rewrite, but I’ve written a lot more code, can’t even find some of it anymore, some of what I’ve written never found a use... and almost none of it has correct pdc_delay.
So I guess that will be a thing at some point. I’m starting to realize just how much I still need to learn. If anything, the list has gotten longer over the last few years...
|
Last edited by danerius; 03-14-2020 at 03:56 PM.
|
|
|
03-22-2020, 04:17 PM
|
#47
|
Human being with feelings
Join Date: Oct 2018
Posts: 173
|
Hi guys
Heres my progress so far. Ive been experimenting with two different waveshapes and this is the one that works. The other one distorts weirdly and I need to investigate further.
Ive also checked some other waveshaper/compressor plugins with nulling and Fabfilters Saturn was interesting. Most of the character options sounded like there was something time based going on. Im guessing like SaulT suggested with using an RMS window for processing. Ive been staring at that code but havent tried using it yet. Gonna get going with it asap
Best regards /danerius
Code:
desc:Sinner Upsampled 0.41
// Oversampling library by Sault + Tale
//slider1:1<0.5,2,0.01>Glue
//slider2:12<1,24,1>Peak Clip
slider3:2.6<1,3,0.1>Character
slider4:0.99<0,1,0.01>Headroom
import st-oversampler.jsfx-inc
@init
pdc_bot_ch = 0; pdc_top_ch = 2;
pdc_delay = 7;
function process(spl,slider)
(
spl = sin ($pi * spl / slider3)
);
@slider
//headroom = 2 ^ (slider4/6);
@sample
s0 = spl0;
s1 = spl1;
os0.os_up4(s0);
os1.os_up4(s1);
os0.y3 = process(os0.y3,slider1);
os0.y2 = process(os0.y2,slider1);
os0.y1 = process(os0.y1,slider1);
os0.y0 = process(os0.y0,slider1);
s0 = os0.os_down4();
os1.y3 = process(os1.y3,slider1);
os1.y2 = process(os1.y2,slider1);
os1.y1 = process(os1.y1,slider1);
os1.y0 = process(os1.y0,slider1);
s1 = os1.os_down4();
spl0 = s0 * slider4;
spl1 = s1 * slider4;
//Glue Experiment to be placed under "function process"
// (
//s = abs(spl);
//spl = pow(s,slider1) * sign(spl);
// );
|
|
|
05-08-2020, 04:50 PM
|
#48
|
Human being with feelings
Join Date: Jan 2017
Location: Los Angeles
Posts: 1,161
|
Quote:
Originally Posted by danerius
Ive talked to Chris from AirWindows regarding aliasing. He recommends raising the internal bit rate for distortion plugs. Oversampling doesnt help that much in his opinion.
|
Danerius, I'm really curious about this statement. Can you point me to the forum post or did you talk through email?
|
|
|
05-08-2020, 11:35 PM
|
#49
|
Human being with feelings
Join Date: Oct 2018
Posts: 173
|
Quote:
Originally Posted by ErBird
Danerius, I'm really curious about this statement. Can you point me to the forum post or did you talk through email?
|
Hi ErBird
Chris has a weekly live Q&A where he discusses all sorts of things. I asked him about upsampling once and thats when he told me he preferred upping the bitrate. All of his Q&As are on Youtube but God knows wich one this was. Maybe the auto-generated subtitles are searchable?
If you get the chance - join the livestream and ask him directly. Its mondays 16.00 GMT. Double check the exact time, my brains a bit fried at the moment.
https://www.youtube.com/channel/UCc5...2QOst6KZwhXjdw
Best regards
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 11:05 PM.
|