-
bocanegra
@ddw_music said:
Just last week I made a lincurve~ abstraction, http://github.com/jamshark70/hjh-abs (if I'm writing the address correctly from memory).
yes, I remember. I use similar concoctions of my own.
Btw the gymnastics at the top could be simplified a bit by [swap], no?
Yes, but for didactic reasons I think the trigger is more appropriate (transparent).
-
bocanegra
@chrisby you are welcome. I am just happy I didn't blow up your speakers with my first attempt
On a side note, this ADSR is pretty basic and lacking in features. Among other things it would be preferable to have exponential curves on each segment like most analog synths...
-
bocanegra
Adding to it: The benefits of in-synth EQ is that you can make it relative to the midi key pressed. Think of the HPF on a Juno. It's a simple 6db high pass filter with 4 settings: 0,1,2,3 corresponding to octaves relative to the note playing.
-
bocanegra
Ok so, my mash-up has some serious flaws. First of all the sustain part does not account the magnitude for the midi controller being > 1 most of the time >.<
Second, as is, you can only set attack/decay/release times to midi numbers ranging from 0 to 127 (ms). So here's a fix for that:
The [MinMax] module is a small abstraction included in the .zip. You could add any kind of math where the scaling is done. For example some sort of log-ish bending of the midi input might be useful, and since all controller values are now normalized, this should trivial.
Apologies for not getting it right the first time
-
bocanegra
Here's the simplest ADSR routine I could come up with in a hurry:
-
bocanegra
@Tombot7 It works like a traditional attack/release envelope. The gate inlet controls the on/off stages with 1 for on and 0 for off. The following two inlets set attack and release time.
The [cos~] object when receiving a straight line going from 0.5 to 1 produces half a sine wave going from -1 to 1 so it's output is scaled to be between 0 and 1.
The release stage uses some simple math to mimic the exponential decay of an RC filter. If you want hanning fades on the release part as well, the patch could be simplified drastically:
AttackRelease2.pd
AttackRelease.pd (fixed mentioned mistake)Here is what their outputs look like:
-
bocanegra
You can use [cos~] for the "hanning" attack curve. Example:
-
bocanegra
Random thoughts:
Aliasing can theoretically spread all the way to the lower mid range.
In a mix, most instruments / tracks benefit from some EQ
Especially FM synths benefit from low cuts
In practice I equip most synths with a final low cut but I think more specific EQ-ing is better done with a dedicated plugin relative to the mix I am working on. -
bocanegra
I was gonna suggest using [text] but didn't get as far as to implement it before @whale-av posted :D
As a footnote to his suggestion, be aware that [list-drip] is from the list-abs library (all vanilla abstractions) -> https://github.com/pd-externals/list-abs -
bocanegra
@fred_dev said:
I can use $ to add a float or integer, but when I need to use a string I cannot get it to work (or understand how to make it work).
I think [symbol] might be what you are looking for (?). Consider the following:
Also check out [makefilename] for string (symbol) manipulation inside PD