• 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).

    posted in I/O hardware diyread more
  • 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...

    posted in I/O hardware diyread more
  • 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.

    posted in technical issues read more
  • 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:

    ADSR.zip

    Screenshot_2022-01-25_00-56-42.png

    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 :P

    posted in I/O hardware diyread more
  • bocanegra

    Here's the simplest ADSR routine I could come up with in a hurry:

    ADSR_Example.pd

    Screenshot_2022-01-24_23-18-53.png

    posted in I/O hardware diyread more
  • 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:

    scrsht1.png

    AttackRelease2.pd
    AttackRelease.pd (fixed mentioned mistake)

    Here is what their outputs look like:

    scrsht2.png
    scrsht3.png

    posted in technical issues read more
  • bocanegra

    You can use [cos~] for the "hanning" attack curve. Example:

    Screenshot_2022-01-24_19-33-45.png

    AttackRelease.pd

    posted in technical issues read more
  • 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.

    posted in technical issues read more
  • 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

    posted in technical issues read more
  • 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:

    Screenshot_2022-01-18_17-36-31.png

    Also check out [makefilename] for string (symbol) manipulation inside PD

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!