Project 50-something of 60-something: EnvGain

Details of features as they're being worked on or discussed internally.
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
forum
Site Admin
Posts: 74
Joined: Fri Jun 17, 2016 3:39 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Project 50-something of 60-something: EnvGain

Postby forum » Mon May 22, 2017 7:15 pm

I'm progressing with the addition of the default gain envelope EnvGain, which I'm now putting in every patch by default to 1) avoid the key-click you have on note-on and note-off when there's no envelope (or an envelope with an attack or release time of 0ms instead of say about 1/2 ms), and 2) save the user the trouble of having connect some envelope's Finished output up to Voice's Finished input.

The modification of Moselle only took 15 minutes. Then modifying about 500 patches I ship with Moselle, that are generated by a script from some other data, only took a couple hours. But I've spent two days now trudging through all the other demo and example patches. Basically, if they had a gain envelope, I'm renaming that to EnvGain, at which point the sound will be identical to before.

Most of the rest of the patches just automatically start using EnvGain to cut out key-click. That is great, but then the automated test procedure, which compares the output of every patch to reference copies, reports that the sound is no longer the same. Of course it's not the same--I've eliminated key click!--but the automated test doesn't know WHAT is different, which means I don't know if it even works any more. So I have to test 200+ patches by hand.

While doing so I found a tricky bug in the envelope. There was one line of code that I've had to "fix" 3-4 times before, and of course it turns out I wasn't fixing it, I was instead making it work for SOME patches while making it NOT work for some OTHER patches. I spent 45 minutes really studying this one line of code and realizing that "one size doesn't fit all." That line needed to do very different things in different kinds of envelopes. The Envelope now figures out which of two cases your envelope falls into and does the right thing for that kind of envelope.

Today I'm just too tired of testing patches, so I've been working on the actual manual. (Yes, there is a manual, about 123 pages so far!)

[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Return to “Developer's Blog”

Who is online

Users browsing this forum: No registered users and 4 guests