• beep.beep

    @Johnny-Mauser For sure... (at the risk of veering somewhat off of the original topic) Here's the 64-bit [helmholtz~] I compiled for Mac:

    helmholtz~.pd_darwin
    (by the way, @katjav included a README with build instructions in the helmholtz download, and it worked right out of the box for me, so I'd imagine you can compile for whichever platform/architecture you like)

    The only other two things I ended up recompiling for 64-bit Pd were [pvoc~] from the bsaylor library, and the iem_dp library for double precision operations within normal Pd. (funny that you should mention double precision as well... maybe the latter could be of use to current you, not just future you!) I uploaded both of those in previous forum threads:

    the pvoc~ one
    the iem_dp one

    posted in technical issues read more
  • beep.beep

    If I may weigh in (on both the pitch detection & 32/64 topics):

    I have tried all three of the aforementioned objects, and personally found [helmholtz~] to work best for my uses. I can't say I was extremely scientific in my comparisons, but I generally got the sense that it performs a bit better than [sigmund~].

    When I first began migration from extended to 64-bit vanilla, all of the 32-bit externals I was using needed to be replaced, and [helmholtz~] was the one I missed the most. I replaced it for a while with [sigmund~], but eventually I went & compiled a new [helmholtz~] from source against 64-bit vanilla, which is working fine.

    Now, as for comparing performance of 32 vs 64 bit Pd in general (very much FWIW... I'm on MacOS, not Windows, and I have no technical knowledge to back these observations up): a couple years ago I did test my most CPU-intensive patch in both 32 and 64 bit vanilla, and found a modest ~15-20% CPU performance boost (according to the load meter) when using 64-bit. I remember seeing some discussion of this on the Pd-list a while back, it might have been this thread. I did not compare memory usage between versions, so I can't speak to that.

    posted in technical issues read more
  • beep.beep

    @jacoblast I’m using the same setup (Mojave + 0.49-1). I find it to be pretty stable in general, and definitely more so than the combination I started with years ago (Lion + Pd-extended, vanilla 0.46-6). Back in those days, I had something similar to what you’re describing happen a lot, where Pd would freeze and a zombie process would gobble 100% of the CPU until I would manually kill it. I never did track down the absolute cause, but I suspect it might have been a tcl issue due to my inadvisably-huge GUI for my patch. I don’t recall opening/closing patches or switching DSP to be a problem, though.

    I suppose if I were troubleshooting this now I’d ask myself:
    -does it happen with any particular patch?
    -could it be an external library that I’m loading?
    -am I running any other audio software that might be locking up Pd?

    I believe you can start Pd from the command line with flags that post errors to the terminal, but I don’t remember offhand... I think -stderr is one (?), but can’t remember specifically at the moment. Maybe that could give you some insight into what’s happening once Pd hangs?

    posted in technical issues read more
  • beep.beep

    If you're using a recent Pd vanilla (0.49), you can do this easily using the built in [array] object. You can read more about it in the help browser: Pure Data/5.reference/array-object-help.pd

    If I were tracking the play counts of 200 audio files, I would use [array define playcount 200] for storage of the stats, with each index representing a specific track. When a track is played, get the previous count at that index using [array get playcount], then add 1 to that total and use [array set playcount] to update the index. Finally, when you want to find the index with the greatest number of plays, use [array max playcount].

    Things would get a little more complicated if you wanted a top 10 most played, etc., but totally doable either in vanilla or with externals.

    UPDATE: @whale-av edited his reply to mention this too!

    posted in technical issues read more
  • beep.beep

    I discovered by accident a while ago that this undocumented functionality is actually built in to the [gemwin] abstraction. (I can't test this on versions of Gem where [gemwin] is an object that cannot be opened, which I've come across in the past, maybe in Pd-Extended?)

    You can just do this (send "debug 1" message to turn on FPS output):

    |debug 1(
    |
    [gemwin]
    |
    [route real_fps]
    |
    |here'syourFPSoutput\

    @korakinos I haven't looked at your framerate patch, but as you mentioned, [avg~] as a smoother requires DSP... if the goal is to keep FPS high, you wouldn't want unnecessary calculation going on (indeed, if you're doing any audio at the same time as your visuals, best to run it in a separate Pd instance). The other external objects you mentioned would work, or there are a number of vanilla ways you could slow/smooth output in the control domain. I myself send the real_fps output to a vslider as my FPS meter—I don't use smoothing, but I only turn on the debug output for testing purposes, never in performance.

    posted in pixel# read more
  • beep.beep

    @jancsika Congrats, and many thanks for including the "diff view" idea we were discussing last week as a part of this!

    posted in news read more
  • beep.beep

    @jancsika Brilliant!

    Yes, I see how the situation becomes complicated very quickly—my original mental image was of a single Pd canvas with black (unchanged), green (new/modified), and red (deleted) Pd objects, perhaps with view filters to compare versions. But indeed, the question of how to handle canvas resizing, subpatch/abstraction changes, etc. within a single window sounds like a messy one to answer.

    Also, the notion of recording every canvas edit poses a useful question to me: what level of detail do I really want/need to save as I develop a project? There have certainly been times when I wanted quick access to an old version of a part of my patch, but if I were to comb through a sequence of hundreds of individual edits to find the right state, I could see this ultimately being more work than simply redoing the work anew. I assume this is the idea behind “commits” in Git, which represent meaningful milestones, so for now I’ll keep studying up & see if I can get a good workflow going that way.

    posted in technical issues read more
  • beep.beep

    @jancsika Thanks for your insights! That makes sense to be selective about which project files are tracked. I have a couple of subdirectories for saving more-or-less temporary txt & wav files, so perhaps I will .gitignore those. (I haven't tested, but I had considered the nightmare possibility that writing a huge wav file to the tracked repo would cause Git to gobble up resources/memory by trying to see changes in the file... but perhaps there are protections or file size limits for such scenarios?)

    And thanks also for the notion of writing descriptive commit messages, I can definitely understand the need for clarity, as I wouldn't be able to discern much more than a basic edit in looking at changes in Pd code. Although, as an aside, that thought does make me wonder what would be involved in creating a visual "diff" view of canvases within Pd's gui (or even a more complete built-in Git integration!). Easy for me to speculate, of course, I'm sure it'd be a ridiculous amount of work under the hood for questionable gains.

    posted in technical issues read more
  • beep.beep

    Hi all, I'd be curious to hear from anyone who uses Git for version tracking of their Pd projects. I'm a Git noob... just getting started with setting up a local Git repo on my computer (no need for Github in my case), and I have a couple of questions:

    -Is there any risk of Git causing issues if I run my Pd patches directly from a Git repo? Is it better to use a separate development repo/directory & then copy the latest version to a separate, non-tracked directory for actual Pd use in concert?

    -Is there a way in Git to associate evolving versions of all dependencies in various locations? In my case:

    • Pd performance patch directory (with subdirectories containing abstractions)
    • ~/Library/Pd (my externals directory)

    I suppose I could create a new repo, copy all of my files into it to begin version control, do all of my development there, and then copy/overwrite all files back to their original locations when I want to move from development to performance, but there's got to be a better/safer/neater way to do it all without shuffling files all over the place manually.

    posted in technical issues read more
  • beep.beep

    @cmovvv Hi there,

    Yes, the left inlet of most objects in Pd is the "hot" inlet, which means the object will output immediately when anything is sent to it. "Cold" inlets are for setting values without causing the object to output, which is why you can send floats to the middle/right inlets of [pack] without triggering your envelope.

    There are several ways to prevent immediate output, here are a few that come to mind:
    coldpack.png

    It's also worth noting that you have a problem with one of your number boxes (the one displaying "69.92" in your screenshot) in that you haven't defined the execution order being sent to [pack f f f}, Always use a trigger object to ensure that you're sending output in the correct order (as I did with my rightmost example), otherwise you will inevitably run into problems. I see that you have used several triggers elsewhere, but most of them look unnecessary — the top right one is sending the float first & then a bang second, but because the float has already been sent to the hot inlet of [* }, the bang is redundant. (if you check with [print] you'll find that you're actually sending the result of the multiplication twice, but in this case no harm done)

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!