• lacuna

    An explanation of [donecanvasdialog( for canvas properties, including and most important graph-on-parent:

    @Maelstorm wrote:

    You can use [donecanvasdialog( to change the gop properties. When you right-click on a patch and choose Properties, all of that stuff is contained in the [donecanvasdialog( message. The format is this:

    [donecanvasdialog <x-units> <y-units> <gop> <x-from> <y-from> <x-to> <y-to> <x-size> <y-size> <x-margin> <y-margin>(

    The gop argument is 0 = gop off; 1 = gop on, show arguments; and 2 = gop on, hide arguments.

    :hatching_chick: And there is a phenomenal patch-demo reposted by @whale-av

    https://forum.pdpatchrepo.info/topic/5746/change-graph-on-parent-dimentions-from-inside/2

    thx

    posted in technical issues read more
  • lacuna

    I have never been there but:
    py/pyext does not support Python >=3 yet

    @shakfu wrote on Discord:

    I have just updated my fork of Garth Zeglin's pdpython, an alternative python external for puredata. His original project is very cool but seems abandoned with no updates for 7 years. My fork makes the code python3 compatible and also updates the build system to use pd-lib-builder. Check it out if you are interested: https://github.com/shakfu/pdpython

    Also try sending the compatibility message to Pd with the version you have been using years ago:

    [compatibility 0.49(
    |
    [s pd]

    posted in technical issues read more
  • lacuna

    didn't really look into your patches, but will reply anyway:

    I would like to be able modify the output value to an exponential or logarithmic curve where you can set the curve steepness.

    [pow] needs an incoming range between 0 and 1 for this.
    You could cascade mapping/scaling:

    input
    map from input range to 0 till 1
    [pow]
    map from 0 till 1 to output range
    output

    Or use an array?

    Would be similar:
    draw an array with a transfer-function

    input
    map to x-size of array
    [tabread4]
    map from y-range
    output

    posted in technical issues read more
  • lacuna

    Update: only changed the outlet order, for being more pd-norm

    mydemux-helpupdated.gif
    mydemux.pd
    mydemux-help.pd

    posted in technical issues read more
  • lacuna

    this vanilla abstraction is what I use
    mydemux-help.gif
    mydemux.pd
    mydemux-help.pd

    @KMETE we assumed this would a control-object? not signalrate? please be more specific, as many of us aren't max-users

    posted in technical issues read more
  • lacuna

    @KMETE
    the Max patch looks like feedback-FM to me. For PM the + would be placed between phasor and circle, if I'm not mistaken.
    And with 1000 ms delay, as I read the Max patch? there would be no need for 1 sample-blocks.

    There are threads on this topic:
    https://forum.pdpatchrepo.info/topic/10864/fm-feedback-hack
    https://forum.pdpatchrepo.info/topic/6185/feedback-fm-algorithm

    DC-blocking you can do with [hip~ 20] for example (I'd put it in the feedback-loop).

    cycle object

    [cos~] ? Is a cosine-tabel, to get a sine you can drive it like this:

    [phasor~]
    |
    [-~ 0.25]
    |
    [cos~]

    Offtopic: Pd's cosine has a slight DC-offset.
    https://forum.pdpatchrepo.info/topic/13709/bug-osc-cos-circle-asymmetry-drifting-out-of-phase

    @alexandros said:

    Creating a one-sample delay is achieved by placing your objects in a subpatch and putting a [block~ 1] object in there. Then you have to use [tabsend~] and [tabreceive~] instead of [delwrite~] and [delread~] to achieve the one-sample delay.

    Yes. And be aware of the importance of creating [tabsend~] beforehand of [tabreceive~] . You can read about in the Pd documentation 3.audio.example > G05.execution.order.pd

    For feedback, I usually build subpatches with such a dummy-connection, save the patch, and delete the dummy cable lastly and save again, for perceving the execution order and avoiding a dsp-loop.

    [delwrite~] and [delread~] can become as short as 1 sample, too.

    In both [osc~] and [phasor~], the phase is set by control messages, but since you'll have a one-sample block size, that shouldn't be a problem, you can just set the phase to what ever you like and it will be reset at the next sample block (one sample later).

    This is one of the biggest myths in Pd (at least for me), but unfortunately not true. (Vanilla 52.2)
    See vphasor~-help : https://github.com/dotmmb/mmb
    Still the same, if you put it in a subpatch with [block~ 1].

    Documentation is lacking here. There are very few timing- sample- or phase-critical control-objects that are able to update (sub-)sample-accurately in-between block-boundaries of 64 samples minimum:

    I only know of [bang~], [metro], [delay], [pipe], [vline~]

    posted in technical issues read more
  • lacuna

    setdollar1.png

    setpack2.png

    packdirect.png

    or dig into [makefilename]

    posted in technical issues read more
  • lacuna

    there is a simple mapping abstraction:
    https://forum.pdpatchrepo.info/topic/12871/how-do-i-set-x-range-from-0-to-1-properties-for-a-graphic-array/10
    unlike common Pd conventions, all its' inlets are hot, you might change that.

    posted in technical issues read more
  • lacuna

    The [get_pos( message works from a parent patch in a sub-patch or abstraction with graph-on-parent, too: Moving the child, returns its' position in the parent. Just put the slider on top of the canvas.
    openthis_parent.pd
    canvas-test.pd

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!