• 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
  • bocanegra

    Yes because the graphics are told to update with every DSP block. Try something like this instead:

    Screenshot_2022-01-17_07-04-36.png

    posted in technical issues read more
  • bocanegra

    @MDobleZ it is unclear what you are trying to do. There is no [pb~] object in neither vanilla nor extended (that I know of).

    For continuous reading/writing from/to an array (FFT bins or other) no bangs needed, [tabreceive~] and [tabsend~] are your friends. Look at the FFT examples in the help browser to see how it is done, or read up on FFT ops here: http://www.pd-tutorial.com/english/ch03s08.html

    posted in technical issues read more
  • bocanegra

    The value of $0 is relative to the patch/abstraction. As [shepvoice] is an abstraction, $0 will have a different value in each instance. A way of circumventing this is to pass $0 in the abstractions arguments and invoking it inside the abstraction as $2 (or whichever # argument you reserve for it). Concrete example: [shepvoice 500 $0] and inside [shepvoice]: [r $2-pitch], [r $2-dropoff] etc

    posted in technical issues read more
  • bocanegra

    @jameslo said:

    for completeness I suppose one should mention using MIDI and audio loopback software,

    @parisgraphics said:

    I have access to PD on Linux

    In that case Jack server is your friend. Get QjackCtl for easy setup and patching. I do such things as control pd patches from my DAW via midi through jack to PD, translate midi messages from my keyboard in PD and route them to my DAW through jack, route audio from my DAW to PD for processing and back again through jack, the possibilities are endless...

    DAW's that work for these kinds of setups on linux (that I have worked with): Ardour, Qtractor, Reaper. Rosegarden - there are probably more. For the time being I prefer reaper

    @jameslo said:

    the flexible MIDI and audio routing capabilities in Reaper seem to make them unnecessary.

    I haven't been using reaper for a more than a couple of months, but at least on linux all external routing has to be patched through jack server

    posted in tutorials read more
  • bocanegra

    @raynovich we have no chance of knowing what is up or down in your patch without you sharing it. Soundfiler causing glitches upon loading is a well known "bug". It's not actually a bug. It's akin to [bang]->[until $1] where $1 is the number of samples in the file you are loading. PD wont do anything else until it has processed the entire file. You can make up for this by calculating how long your patch will be "offline" (something something buffer size / samplerate +/- cpu mubo jumbo) or have all samples loaded at startup in one huge file as @whale-av suggested.

    posted in technical issues read more
  • bocanegra

    @whale-av my example does account for upper or lower pitch, but it assumes that the inputs are already ordered as left neighbour, peak, right neighbour. So a smarter way of doing the presorting would be to identify the one loudest peak, then pair it up with it's two neighbours regardless of their 'loudness' before sending them to [example]

    posted in technical issues read more
  • bocanegra

    @jj37592 said:

    Let's say my finger applies the highest pressure somewhere between column A, B and C. - Could your patch determine the exact location and pressure applied between those 3 columns?

    i.e.
    crosspoint A1 = 75 pressure
    crosspoint B1 = 91 pressure
    crosspoint C1 = 83 pressure

    Clearly the highest pressure measured is at B1. But also the three values together indicate, that the actual point the highest pressure is applied lies "a bit further" from B1, in the direction of C1.
    This is what i think needs to be calculated in order to get a continuous pitch modulation, without steps (midi not 82, 83 etc.)

    You will want to keep your calculations "midi" (not stepped) all the way until your oscillator so as to keep all calculations linear. From your example here (3 points) you can measure which point is closest to the peak and how close (You can use the [min] object for this). Equal to peak should bend half a semi tone. And you need to set a threshold for how far apart in pressure they should be for no bend at all (half of peak?).

    Something like this maybe? example.pd

    Screenshot_2021-12-16_01-35-52.png

    posted in technical issues read more
  • bocanegra

    The colored diagram for guitar fingering is really neat! But aren't trigonometric calculations overkill? Moving one "degree" clockwise in the spiral is going up one semitone (adding 1). Computing the full set of one key is just adding 12 until you reach > 127. Transposing a scale x semitiones is just adding x (whole numbers) to it. Maybe I am missing something?

    posted in Off topic read more
  • bocanegra

    @Nullstrahler said:

    @bocanegra said:

    You can get the latest .deb files from debians website: https://packages.debian.org/search?keywords=puredata but that means you gotta figure out dependencies yourself

    Thanks. That is where problems start, as I do not understand exactly what this means or how to do this.

    I went over it some 6 months ago in another thread: https://forum.pdpatchrepo.info/topic/13499/couldn-t-create-sigmund/2

    Basically, you download all the packages named puredata something and run them with software center / synaptic or whatever

    " cd path/to/pd'

    "path/to/pd" is a generic placeholder and is meant ot be substituted with the actual path you installed pd to

    If there was any hints regarding the installation of pd 51-4 or some clearance where I am on the wrong path I still would be interested.

    THANKS!

    See the thread I linked to above. Otherwise there are repositories you can add manually: https://puredata.info/docs/faq/debian - the debian stable repo should work (same packages I am running on xubuntu 20.04)

    Adding apt.puredata.info manually
    You can either add this line to the bottom of /etc/apt/sources.list Or you can add it in the GUI administration program Synaptic (in the Settings -> Repositories menu, then the Third-Party Software tab). Choose the line for your version of Debian or Ubuntu from the options below:

    #Debian/stable
    deb http://apt.puredata.info/releases stable main
    

    After adding this repo and doing sudo apt update you should be able to install puredata 51.4 with apt install

    posted in technical issues read more
  • bocanegra

    @Nullstrahler said:

    Just did this on another system; worked fine, but still it is pd 50.2 coming with studio 20.04.
    I guess if I really would like to install pd 51.4 it is not working by running sudo apt install pure data , is it?

    You can get the latest .deb files from debians website: https://packages.debian.org/search?keywords=puredata but that means you gotta figure out dependencies yourself

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!