View Single Post
Old 04-04-2019, 10:16 PM   #445
Human being with feelings
mrelwood's Avatar
Join Date: Nov 2006
Location: Finland
Posts: 1,365

Originally Posted by danerius View Post
Hi and thanks for explaining. I really have a lot to learn...
I have noticed that once the basics of coding started to feel natural, I was able to start thinking in code as well. Meaning that I was able to isolate the parts of what I want to achieve, and more importantly approach the goal through thinking how it would be best achieved in code.

Which brings me to the Averager. Pretty much ANYTHING can be done, but itís not always simple to translate the thought process from math to code. Iím doing my best (translating back and forth to my spoken language as well), because I think the JS is an extraordinary environment, and I would love to see more beginners to jump aboard.

The idea was to look ahead in time in order to get phase linearity.
Obviously the code canít look into the future. But that doesnít mean the end result is not achieveable! I donít know how to explain how linear time can be harnessed in code, but let me try to open some analogies I use.

One is a pile of papers. You read the topmost paper and find that it has math calculations. You read the paper row by row from top to bottom, and calculate everything. Once youre done, you put the paper to outbox and start reading the next paper in the pile. It has the exact same calculations, and you calculate all of them again. Thatís how the code reads every sample.

Then a running race track, each track representing a track in Reaper. Everybody runs at the same speed in a neat line. Now one of the runners tells everyone else to stay back and give him a 5 meter lead. They love to work together, so they do. Now others will see the one runner as being in the future, while actually heís not, everybody else is just in the past.

Thatís what the PDC does. It doesnít read from the future, but it tells everyone else to give it a head start. The end result is the same though, so phase linearity is achieveable since all other runners are on the same line

In order to calculate anything that involves samples from different positions in time, all the samples must of course be measured (and stored) first.
______Announcing__mrelwood plugins______
.. MacBook Pro 15" Late '13 .. Scarlett 6i6, Saffire Pro 24 DSP (+ADA8000) .. FCA610 .. EVE: SC207 .. Focal: Alpha 65, CMS 40, Listen Pro ..
mrelwood is offline   Reply With Quote