• ben.wes

    actually, there has been quite some work on it in the recent months - including updates of the pd version (to 0.54 - so 0.55 is still due). the current builds on github are just 2 months old: https://github.com/agraef/purr-data/releases/tag/2.20.0

    ... there is no build for silicon mac yet though and i didn't attempt to build it myself - so unfortunately, i can't say anything about vstplugin~ in this version (only that it works perfectly well in vanilla for me, too).

    posted in technical issues read more
  • ben.wes

    also adding my attempt to create a software oscilloscope with Gem (trying to simulate some physical characteristics). Requires pmpd lib besides Gem: https://github.com/ben-wes/pd-osci_xy

    osci_xy_pmpd-screenshot.png

    posted in patch~ read more
  • ben.wes

    i just uploaded a spectrogram built with Gem. It's not very efficient and i might give it another try with shaders doing the drawing and logarithmic mapping. but anyway - seemed like an appropriate contribution to this thread:
    https://github.com/ben-wes/pd-spectro_tilde

    spectro~-screenshot.png

    posted in patch~ read more
  • ben.wes

    responding to myself here ... it's possible to iteratively append data to a top-level array with purest_json (which avoids the restriction to symbols of MAXPDSTRING size).

    that's not possible for nested keys though (which is a requirement in my case). i changed the purest_json code now so that i can add to nested keys via messages like array LoudspeakerLayouts.Loudspeakers $1. not sure if that's the "right" way and i'd still be curious if other people see better options in Pd for it!

    posted in technical issues read more
  • ben.wes

    i'm trying to use json-encode from the purest_json library to create config files for the IEM AllRADecoder. now it might be a questionable endeavor to do this with Pd in general - but i'd like to see if it's possible anyway.

    the aim is to create a file like https://plugins.iem.at/allradecoder/layoutWithAdditionalImaginaryLoudspeakers.json

    ... what i have so far works up until 10 speakers with some test data. but then, the symbol obviously gets too long and i get unnecessary escapings and the last parts of the data look like this:

    \"Channel\":11\\,*"}
    

    image.png
    any ideas on how to solve this?

    here's the patch.
    test-json-encode.pd (ATTENTION: this writes a test.json file on bang in the patch directory)

    posted in technical issues read more
  • ben.wes

    Has anyone implemented or experimented with the Fractional Fourier Transform (FrFT) in Pure Data and might point me to relevant resources? So far, I badly failed at implementing an external that would allow continuous rotation between time and frequency domains (see https://en.wikipedia.org/wiki/Fractional_Fourier_transform).

    I've heard about quite interesting musical applications of this in a talk and demos by Günther Rabl (who implemented this years ago in his own tools AMP/VASP) and would love to experiment with it in Pd.

    posted in technical issues read more
  • ben.wes

    @trummerschlunk said:

    hm, too bad. Same is true for the external, I guess?

    yep. vanilla patches are the only option for that ... but when it comes to 1-sample feedback without block~ 1, the only options are the filter objects (rpole~ etc.). i'm honestly not completely sure if this dynamic smoothing here could be achieved in some other way (like obtaining x[n-1] via rzero_rev~ 0) - but i don't think so.

    posted in technical issues read more
  • ben.wes

    ah - and i forgot to mention in the previous response: i made another little update to the abstractions so that you can set the channel count via a channels <count> message:

    unfortunately, it's necessary to set the count of send~ objects manually that way.

    posted in technical issues read more
  • ben.wes

    @trummerschlunk said:

    [...] Maybe because I am on a arm/silicon Mac?

    the builds include binaries for both, silicon and intel Macs (on M2 here myself - so that's even the only build that's actually tested ;) ).

    Would dynsmooth~ then be the accurate or the efficient version?

    dynsmooth~ initializes the accurate version. if you create dynsmooth~ -e, it'll use the efficient algorithm. also, you can initialize base frequency and sensitivity with creation args like this: dynsmooth~ -e 100 0.01 for example.

    Would it run in 'compiled mode' in plugdata?

    compiled mode only supports the object that are known by the heavy compiler:
    https://github.com/Wasted-Audio/hvcc/blob/develop/docs/09.supported_vanilla_objects.md

    ... unfortunately, block~ (for the 1-sample feedback) is not supported - so i'm afraid that it's not an option to use the abstractions in that mode.

    posted in technical issues read more
  • ben.wes

    @trummerschlunk said:

    Sorry, I am still very new to plugdata, and I get error messages with dynsmoth-abs-efficient~ -mc 32
    bad arguments for message 'f' to object 'objectmaker'

    ah, wait ... you don't need to do anything for multichannel support - it just takes multichannel signals as input and outputs the smoothed multichannel signal. but i only added that for the external (dynsmooth~) - for the abstractions, it would also be simple, i think - but i didn't attempt yet. would need to change the feedback to multichannel.

    Where exactly do I place your dynsmooth~ folder (downloaded from releases)? In Abstraction and Externals? Thanks a LOT!

    in any folder that pd knows. :) ... but externals would be fine, sure! and pd will automatically search in the dynsmooth~ folder for the external with the same name (for the abstractions, you'd need to use dynsmooth~/dynsmooth-abs~ unless you add the folder to the paths).

    posted in technical issues read more
  • ben.wes

    ... and probably the last update on this for the time being (unless people find errors, of course):

    the latest changes add multichannel support to the external (it might be nice to allow different base frequencies and different sensitivities for different channels - but i'll skip that for now).

    posted in technical issues read more
  • ben.wes

    @trummerschlunk glad to hear! i made another quick update. the abstractions are more properly named now (dynsmooth-abs*) and they also support creation args for basefreq and sensitivity. i removed the additional inlets ... all objects (including the external) are now expecting messages for those parameters (and for clear).

    i also added a basic readme and the new "release" (huge word for this little object) is also ready for download:

    posted in technical issues read more
  • ben.wes

    @trummerschlunk said:

    did you happen to make an external yet? ;)

    you can try this: https://github.com/ben-wes/pd-dynsmooth/releases/tag/0.1.0-test1 ... this is completely fresh and untested though. so no guarantees! and the help file currently relies on my show~ object which relies on pdlua. damn those dependencies. ;)

    anyway: it looks ok for me. that stuff isn't well organized though. i might invest a bit more time soon. also not sure if it's sufficient to control base frequency and sensitivity only via messages.

    it includes the abstractions as well ( @manuels: i'm referring to your patch there - let me know if this is ok for you, otherwise, i'll gladly change that).

    posted in technical issues read more
  • ben.wes

    for the sake of completeness (and thanks to @manuels' inspiring patch), i'm adding the "efficient" version here (not well tested neither):

    dynamicsmooth-efficient~.pd

    ... i really like this approach and i will create an external for it as well.

    posted in technical issues read more
  • ben.wes

    really cool stuff - had fun playing around with this! now i didn't understand the whole patch (which is insane) ... but it looks like you're checking the closest "pixels" only for each mass? seems like a great optimisation so that you don't need to check against every pixel. did i get that correctly?

    posted in patch~ read more
  • ben.wes

    oh ... i didn't see the discussion here ... just built a little (and certainly dirty) patch for this after the discussion on facebook:
    patch_n_bitmaps.zip

    image.png

    it obviously becomes very slow with lots of canvases (and i'm already omitting the white pixels):
    2024-09-21 22-46-18.mp4

    ... plugdata on the other hand can deal with these quite easily - i creates rounded cnv rectangles though. :)
    2024-09-21 22-58-59.mp4

    (i scale them in that video - so this is not a glitch, but many wide rectangles)

    EDIT: this patch only works with a specific 3x8bit bmp format. so it would certainly look a bit funny with other formats.

    posted in technical issues read more
  • ben.wes

    you can check the help patch of this simplex~ external here (it's also on deken) - it includes very basic vanilla 2d and 3d oscilloscopes: https://github.com/ben-wes/pd-simplex

    posted in patch~ read more
  • ben.wes

    i realized that i obviously didn't follow all categories on this forum - so i missed your post and this response comes a little late. anyway: thanks for sharing! it reminded me of my approach for a vanilla pitch tracker. i now also realized that i didn't need a [block 1] for a 1-sample delay (which was there until today), but could use [rzero~] instead:

    image.png

    patch: zc_pitchtrack~.pd

    posted in extra~ read more
  • ben.wes

    @manuels said:

    Could certainly be optimized in some ways (especially using ELSE objects). But does it even work? I don't have a good method to test it, unfortunately.

    nice! - i like this counter for samples per phase:

    Screenshot 2024-08-14 at 23.22.05.png

    ... from what i tested: it behaves perfectly well up to nyquist - although also in this range, there are sometimes consecutive non-zero samples (which i'm still not 100% sure if valid. see the 1, 1 in the middle below. the blue graph is the scaled offset per phase).
    image.png

    posted in technical issues read more
  • ben.wes

    here's a completely vanilla version of the delay variant avoiding [expr~] (with some rather ugly hacks to achieve exact values of -1, 0 and 1). it works for all frequency input < nyquist (for nyquist, the > 0.5 check fails):

    image.png

    velvet-delay-vanilla~.pd

    EDIT: seeing now that this doesn't really add anything to @ddw_music's approach at https://forum.pdpatchrepo.info/topic/13317/looking-for-velvet-noise-generator/52 - except for my failed try to achieve non-interpolated values with delread4~.

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!