Tea With Warriors

Music for Relaxation and Enlightenment

Improved ADSR Module

After playing with the Bidule ADSR and other envelope modules for a while, it seemed to me that they behave incorrectly. In particular, the decay and release times seem to interact with the sustain level, and with each other. I also thought it would be handy to have the sliders cover a wider range, and with a logarithmic response.

My ADSR module, "JN_ADSR.bgrp" incorporates the correct state logic, and exponential approach (like an RC response) to simulate a traditional ADSR. There are sliders for the settings, and the A,D, and R settings have a wide logarithmic scale to allow very fast and very slow times. I have commented the group to explain the workings. Basically, there is a value "g", which is just the gate input, and another I call "p", which goes from zero to one after the attack phase reaches its peak (and is reset to zero when a new note starts). Logical combinations of these determine whether we are in the A,D or R phase of the envelope. The accumulator is set up to make exponential approaches to 1, sustain value, and 0 for the three phases respectively.

There were some other odd behaviors worth knowing about, which I eventually traced to the note extractor bidules which are more obvious (and problematic) in monophonic mode. They can be summarized (I may have these switched; I don't have Bidule running in front of me as I write this) as:

1) In lowest-priority mode, "always retrigger" doesn't always retrigger;
2) in "always steal" mode, the gate does not always have a value of 1 when a key is held down. This seems to be the result of playing rapidly, where more than two keys are down at once, and is a repeatable bug.

These bugs can be circumvented by using two note extractors, and using opposite settings for note priority, and then using the gate output of one, and the trigger output of the other to get the correct behavior.

Members Area

Recent Blog Entries

Recent Videos

20 views - 0 comments