• lacuna

    @jameslo For me it is difficult to understand. Maybe I am missing the whole point and all I say is off topic.

    First of all, I honestly don't understand why your left bang works

    click bang [o] (GUI always on block-boundary) > [spigot] opens > [bang~] bangs > [spigot] closes > [vline~] starts (still on same block-boundary).

    Similarly, in my first response to you, you can see in the snapshots that the bang from [delay 1.5 64 samp] is being processed during Ctrl 1, 32 samples before its real timing.

    This I don't understand.
    You use [rpole~ 1] as sample-counter, right? But [snapshot~] only snapshots on block-boundaries. (That's why there is [vsnapshot~], but that was buggy, when I last tried it.) [snapshot~] shows 64 samples, one whole block.
    If you snapshot later, you see [del 1.5 64] outputs bang after 96 samples:
    samplescounted.png
    ([sig~] also updates its output only on block-boundaries, not within the block.)

    @seb-harmonik-ar s [pip~] could be done with [bang~] and [timer], to measure the time that has passed into the block.
    Or for signalrate~ output~ with [rpole~ 1], to measure the samples past into the block.

    you don't need to predict the future to make it one block earlier

    So is it correct that you want to move the start of vline~ 'backward' ? To the start of the block? To the start of that block where [del] outputs later on a message to [vline~]?
    Clicking [o] bang at ctrl 0 > [del 1] outputs after 1 ms, where audio 0 is happening > [vline~] should have started before, at the beginning of audio 0 ?
    Is this what you want?

    moving.png


    Here is a paper where message- vs signal-domain and scheduleing are graphed. It is in German, maybe you can use a translator and the time-graphs on the last pages are english / self-explanatory. And you problably already know all of this.
    https://iaem.at/kurse/ss19/iaa/pdscheduler.pdf/view

    posted in technical issues read more
  • lacuna

    @jameslo Thought that's what you where looking for? 'block-quatizer'?
    But you want to move the output of [del 1] back to the start of the block?
    Interesting, but I think moving backward is not possible in realtime Pd ... (hmmm there is the [lrshift~] object for moving in a block... )

    Edit: My point was that this quantizes to (next) block boundary, and if already at it, it stays there.
    [del 0] Breaks the deterministic order ( [t b b] ect.), as [delay] and [pipe] always do, and moves to the last point after everything else deterministic is processed, but keeps at the same logical time (zero delay).
    But what was your point?
    Edit: Now I tried without [del 0] and everything is the same. So I completely missed your point??

    posted in technical issues read more
  • lacuna

    @jameslo said:

    :) :) :)

    In the middle of a message cascade you may schedule another one at a delay of zero. This delayed cascade happens after the present cascade has finished, but at the same logical time".

    Man, this got me excited because the only reason my bang quantizer outputs where it does and not one block earlier is because [bang~] for the end of the first block has already executed by the time my spigot opens and so we have to wait for the next audio block to complete. I was hoping [delay 0] would cause the bang from [bang~] to be rescheduled after my spigot opens, but it doesn't appear to.

    That works, screenshot when left bang is clicked:
    vline-blockquantize.png
    vline~blockquantizer.pd

    (thought [bang~] would be expensive, that's why I [switch~]ed it in the other patch.)

    posted in technical issues read more
  • lacuna

    @jameslo said:

    Is there a way to zero out that bang timing attribute, so that the bangs are quantized to block boundaries? Or some other way to force [vline~] to start at the beginning of the next audio block?

    Like this?
    vline~onnextblockboundary.pd
    vline-on-next-blockboundary.png

    Edit: it's not just bangs that have that intra-block timing attribute--you can see in my example that it's preserved through the message that's sent to [vline~]

    As far as I understand it now, some objects
    ([metro] [del] [pipe] [vline~] maybe[vsnapshot~])
    do intra-block-messaging/banging and some won't (like [tabwrite~] in my patch).

    The scheduler processes GUI and Midi i/o at block-boundaries.

    I am highly interested in how to sync or interface Reaper or other DAW with PD control rate sample-accurately intra-blocks.

    posted in technical issues read more
  • lacuna

    since Pd-list got an update in August 2024 it has moved? and links are broken. Not a big issue, as we can sill find it lists.iem.at

    posted in technical issues read more
  • lacuna

    Also IEM has list of Vanilla objects page online:
    https://pd.iem.sh/objects/

    posted in technical issues read more
  • lacuna

    @porres the "garbage-filter" since 0,49, as it won't show abstractions w/o helpfile. And the hiccup.

    @SCFan32 My recommendation for learning Pd is keeping it straight Vanilla and go the way @whale-av proposed: Learn the list of objects Vanilla vocabulary and learn thinking in Vanilla, instead of searching for objects. This would be the low-level Pd-Vanilla way.

    From what I have glimpsed SC is not so very low-low level.

    Searching objects of libraries can be done in Deken. Help > Find externals
    or deken.puredata.info where ctrl+f full text search helps, too.

    There are some libraries that make easy high-level patching possible. But the bigger they are, and the more libs you use, the more you have to search for objects.

    Searching this forum: https://forum.pdpatchrepo.info/topic/11732/commands-for-forum-search-engine/2
    Where in many cases newer posts are more valid, because Pd-Vanilla has developed a lot and solved many issues, added more objects ect.
    (keeping backward-compability).

    posted in technical issues read more
  • lacuna

    Mabye

    [symbol]
    |
    [float]

    does the trick?

    Pobably it is not encoded as float but neither has no symbol selector.
    A symbol without 'symbol' selector looks like a float but isn't.

    symbol without symbol looks like float but isnt.png

    (btw there is [int] but ints are floats in pd)

    posted in technical issues read more
  • lacuna

    I currently don't have Else lib installed, so no definetive answer, also I don't know those Else objects and did not look into their help-files ... only answering because noone did (EDIT well now I'm late), but looking at your patch:
    yourpatch.png

    • [print] helps debugging such things!
    • After [list prepend amp] you might need [list trim] to remove the 'list' selector from the message (check with [print]).
    • Cut the connection between [multi.vsl] and [bpbank~] !? Or why are they connected?
    • Vanilla-ways to build such a message as [amp 0 2 0 2 ( would be:

    Screenshot 2024-10-20 011637.png

    posted in technical issues read more
  • lacuna

    @dmanz sorry, I was wrong in a rush and corrected my last post now:

    [t b a] not [t a b]
    it is right to left order,
    first set the message (anything) then bang.

    posted in technical issues read more
  • lacuna

    @dmanz have a look at the messages-helpfile.

    msg-dollar.png


    msg-help.png

    Commata in messages separate messages,
    so

    
    #anything here
    |
    [set open $1, bang( 
    |
    [willbeovewritten(
    |
    [print]
    
    

    are two successive messages
    [set open $1( and [bang(
    same as

    #anything here
    |
    [t b a]
    ||
    |[set open $1(
    ||
    [willbeoverwritten (
    |
    [print]
    
    

    Delaying the bang with [del] breaks the deterministic order of operation!
    Usually this is bad practice.
    (Althought sometimes required, if you need exact timing or have to mess with other rare non-deterministic operations, such as [readsf~] loading from harddrive (Pd 0.55) f.e.)

    As you have mentioned, you can compose messages with lists, too.

    #anything here
    |
    [list prepend set]
    |
    [list trim]
    |
    [t b a]
    |/
    [willbeoverwritten(
    |
    [print]
    

    Data type String is called Symbol in Pd.
    You can cut the Symbol and List prefix / selector of a message with [list trim].

    posted in technical issues read more
  • lacuna

    Did anyone find an ideal screen size / resolution for Pd yet?

    I can not recommend:
    14 inch at 1920 x 1080 with 150 % scaling in OS
    15,6 inch at 1920 x 1080 with 125% scaling in OS
    Either needs zoom-in and there is not much space for patching left.

    Ideally the screen would sit below ear-level for great studio acoustics. But I probably have to reject this premise.

    (...while waiting for mouse-wheel zoom https://github.com/pure-data/pure-data/pull/1659 )

    posted in I/O hardware diyread more
  • lacuna

    Don't know what it used to be in Extended,
    but IEMlib has some [filter~], too.

    I guess, the reason why we surprisingly can not find that one in Deken, is because there is no separatre .pd abstraction, nor any help-file in the lib-folder.

    It is used for many different filters in IEMlib:

    filter~iemlib.png

    https://forum.pdpatchrepo.info/topic/14632/what-is-iemlib-s-filter

    posted in technical issues read more
  • lacuna

    [moses], you can use it to filter big jumps. Maybe use feedback to dynamically adapt the right inlet.

    moving-windowed-gate.gif

    moving-windowed-gate.pd
    moving-windowed-gate-help.pd
    (edit:small bug fix)

    posted in technical issues read more
  • lacuna

    @vulturev1 Use the right outlet of [sigmund~] with [>] and [spigot] to filter out "silence".
    Look at [moses], you can use it to filter big jumps. Maybe use feedback to dynamically adapt the right inlet.
    Also play with sigmunds window-size and hop-size.


    This is a Vanilla moving average (EDIT now with [arraysum]) :
    movingaverage3.gif

    movingaverage3.pd
    movingaverage3-help.pd
    Moving average is a low pass and it also distorts the good data portion.
    Reading your description, maybe a median filter with uneven windowsize is better suited, see this screenshot, made with else/median: https://forum.pdpatchrepo.info/topic/13849/how-to-smoothe-out-arrays/11

    EDIT: Pd 0.54 Also study helpfile with -minpower, -quality, tracks ect !

    posted in technical issues read more
  • lacuna

    Be aware of naming conventions:

    A subpatch is this: [pd sub]

    An abstraction is this: [abstraction] (calling another .pd file as object)

    Both, abstraction and subpatch, can have graph-on-parent.

    An abstraction may have arguments, such as [abstraction 1 2 3 hello]

    A subpatch can not have arguments.

    $0 in a subpatch is same as in it's parent patch.
    $0 of an abstraction is unique.

    For getting $0 of the parent patch inside of an abstraction, you can handle it as agrument, such as [abstraction $0]
    and poll it inside the abstraction with $1 (first argument).

    Getting $0 of an abstraction outside of the abstraction, at it's parent patch for example, is one of Pd's issues.

    One way to solve this is

    inside the abstraction:

    [loadbang]
    |
    [f $0]
    |
    [outlet]

    posted in technical issues read more
  • lacuna

    Impressive examples for struct patches:
    https://forum.pdpatchrepo.info/topic/10756/vanilla-struct-multislider-with-jump-on-click-and-drag

    @Balwyn
    https://forum.pdpatchrepo.info/topic/14009/hide-array-name/14
    https://forum.pdpatchrepo.info/topic/14037/plot-graph-a-way-to-display-waveforms


    Here is a workshop on data structures from some years ago (things might have changed in the meantime, but I don't know). Unfortunately the workshop-patches are not online, but you might ask João in the Pd-mailinglist.
    https://media.ccc.de/v/lac2018-26-understanding_and_being_creative_with_pure_data_s_data_structures#t=1633


    I am interested in how to pipe data from Pd to a fully equipped plotting-software?
    https://stackoverflow.com/questions/17543386/pipe-plot-data-to-gnuplot-script

    https://stackoverflow.com/questions/33457750/gnuplot-plotting-using-piped-input

    @katjav https://www.katjaas.nl/plot/plot.html


    (all of this is on my undone-list)

    posted in technical issues read more
  • lacuna

    text-floatandcomma-array.gif

    .
    or [text get] instead of [array get] or [tabread] instead of list-drip ....

    (late edit: [concat] related: https://forum.pdpatchrepo.info/topic/14944/route-behaviour/7 )

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!