• beep.beep

    @RonHerrema Hi there,

    I'm not the best person to answer your first question, as I myself have never tried to install a tcl plugin, but my uninformed guess would be that you need to add the tcl file to a path that is being searched by Pd at startup, such as the directory where Deken (the "Find externals" tool in the Help menu) can automatically create for you when you first install externals. Maybe check out this post?:
    https://forum.pdpatchrepo.info/topic/9960/tcl-for-a-rainy-day

    As for your second question: yes, the latest Pd vanilla (0.49) has new intelligent patching shortcuts built in, and they're awesome! Check out these links for descriptions & video demos:
    https://github.com/pure-data/pure-data/pull/374


    posted in technical issues read more
  • beep.beep

    @uptick Hello there,

    I took a somewhat similar path in that I began learning SuperCollider, and then found myself decisively drawn in to the world of Pd. From my experience, I'd say the suitability of either depends greatly on your background—would you consider yourself to be comfortable with coding, or does a visual dataflow language allow for more clarity? In my case, obviously the latter is true (which is why I took to Pd), but I have friends with coding chops that are able to realize their ideas in SC more easily/quickly/efficiently.

    The main breakthrough that I had as a Pd beginner was in studying the work of advanced Pd programmers (open source is a beautiful thing!), and discovering the power of abstractions. I spent hours/days/weeks/months connecting hundreds of objects together, copying & pasting, and debugging messy canvases before I learned how quickly the same work can be realized in minutes with a set of abstractions. I'm sure the same is true in SC, but I myself never got beyond the basics there.

    As for versions: definitely not Extended, it's no longer supported. I use vanilla, and download any externals that I need with the Deken plugin ("Find externals" option in the help menu). Purr Data is a great Extended alternative, with many externals already pre-installed, and an HTML5 gui. I use it for certain applications, but my main performance patch is vanilla-based.

    Learning resources: this forum & the Pd-list archives (which you can access through the top menu of this forum above) are good to search through for specific questions, sometimes via google. I also found this series of videos very helpful as a beginner:


    And don't forget to go to Pd's built-in help browser and check out Pure Data/2.control.examples & Pure Data/3.audio.examples (the latter of which teaches the basics of DSP programming in Pd, and also realizes more general computer music technique as presented in Miller Puckette's book.

    Enjoy!

    posted in technical issues read more
  • beep.beep

    Thank you both for the great ideas! Much simpler than what I was trying to do, so yes indeed, I had thought myself into a corner there....

    I like the simplicity of the [lop~] approach, however I'm guessing the dual [line] method will work best for me in terms of efficiency (I may eventually have hundreds of these running at once). Adding a multiplier sounds like a fine idea; I think I'll also shift the random range to be centered on zero (adding a [- 0.5] after [/ 1000]), so that the multiplier will expand the output in both directions.

    Again, many thanks!

    posted in technical issues read more
  • beep.beep

    Hi folks, I’m finding myself a bit stuck, and wondering if anyone might have an idea for an efficient way to emulate a certain physical behavior. Consider this example:

    [metro 1000]
    |
    [random 1000]
    |
    [/ 1000]
    |
    [pack f 1000]
    |
    [line]

    The output will be a series of random one second ramps between 0-1. This gives a rough impression of drifting/floating about the range, however the change in velocity between each ramp is instantaneous & jagged.

    What I’m wondering is: how can one smooth out the transitions between ramps, and give the output a sense of inertia/momentum, while preserving the unpredictable, random motion?

    I am aware of the pmpd library, which is a powerful tool for physical modeling, but I suspect there might be a computationally cheaper way to accomplish this task. (which is important for my use case)

    Do I need to break out the dusty old physics calculations & calculate acceleration/velocity/etc., or is there a simpler solution that has a similar effect? Perhaps using [line] is the wrong approach, since it outputs linear ramps… I wonder if I should be polling a value for current velocity with a metro, and then curving the change in velocity towards the new random position via table lookup or some [expr] function?

    Thanks in advance for any thoughts!

    posted in technical issues read more
  • beep.beep

    @th8a Cool! Glad that my past ineptitude led to a teachable moment for the both of us, at least. :computer: :thumbsup:

    posted in technical issues read more
  • beep.beep

    @mod Check out the help documentation for the {text} object. (assuming you're using the newest Pd vanilla)

    [text] has a lot (or perhaps all?) of the same functionality as the older {qlist] object, but there are many more ways of inputting/outputting/loading/saving content. The help doc has subpatches which demonstrate the various functionality. ({text define], [text set], [text sequence], etc.)

    I have seen external libraries which have a lot of sequencer-oriented abstractions, but I haven't personally combed through them enough to know whether there's a simpler solution for your use case.

    posted in technical issues read more
  • beep.beep

    @th8a I had this happen twice in the past... in my case the culprits were:

    1. a message box in a forgotten subpatch which was collecting midi note numbers for later use, using |add2 $1( with no |set( message to clear it. It would eventually grow so large that I would get audio dropouts.

    2. list-lifo & list-fifo, again collecting midi note information but neglecting to clear it every once in a while.

    I suppose some of the specific midi objects could be the problem in your case, for example if an object is expecting note offs but not getting them? (I sometimes get these warnings using maxlib/chord) If that turns out to be the problem, maybe cyclone/flush could help by providing the missing note off messages?

    posted in technical issues read more
  • beep.beep

    @Gabriel-Lecup
    Fascinating! You're correct, it looks like tabread4~~ is included in the zexy library (which is why you can load it in Pd-extended), but it doesn't show up in the Pd help browser for zexy since there is no help patch. (this solves an old mystery for me, as I couldn't figure out how tabread4~~ was the only iem_dp object I could get working, before successfully compiling the rest of the library)

    But indeed, that seems like a strange object to include on its own without the other double precision math objects. Maybe there's a simpler way to implement the dp looper that I'm not seeing, but perhaps more likely that tabread4~~ was included in zexy for a different use that didn't need phasor~~ et al.

    Not sure whether it'll work for you, but here is the version of iem_dp that I compiled for Mac if you'd like to give it a try:
    iem_dp.zip
    ***I'm running the latest Mac OS 10.13.4, Pd 0.48-1 64-bit, not sure if it will work on older OSes or 32-bit Pd.

    If I'm not mistaken, Pd-extended is 32-bit, and also no longer in active development... I would highly recommend migrating to the newest Pd vanilla. Deken makes installing most external libraries easy (which it sounds like you already know how to do), and then you can manually copy iem_dp to your externals directory (in my case, ~/Library/Pd). Be sure to add iem_dp to "Pd libraries to load on startup" in the Pd>Preferences>Startup... menu, then restart Pd to see if it loads for you. (the console will print "iem_dp (R-1.19) library loaded!")

    posted in technical issues read more
  • beep.beep

    Hi GL,

    I spent a good 2 solid weeks beating my head against this very issue recently, as I had the same wishlist as you mentioned (variable speed/direction, long buffers with no artifacts, click-free looping). I tried my hand at adapting B.16.long-varispeed.pd, but I couldn't make it work for dramatic speed changes.

    My solution was indeed to use tabread4~~ from the iem_dp library. (which, to my knowledge, is not on deken... I had to download it from github & compile from source... here's my post from a while back on the subject)

    My looper seems to work, although honestly I'm not sure why—I'd think that the weak link in this case is the precision of the number of samples output by soundfiler, if a very large file is loaded into the table (which can indeed be large if the -maxsize flag is used). I did use the double precision math objects to calculate phasor~~ frequency and tabread~~ read position, but as you can see, the rightmost (dp) inlets/outlets aren't being put to use for most of them. But, nonetheless, it seems clean to my ear!

    The windowing to prevent clicks is adjustable, and is in the {pd window} subpatch. I think I read of that idea on this forum, but I can't remember where... apologies to whomever suggested this great idea. I also added some calculations to adjust the window based on current speed of the playback.

    double_precision_looper.pd (requires iem_dp library)

    dplooper.jpeg
    looperwindow.jpeg
    If you have a more elegant solution/modification to put those math objects to better use, I'd love to see! I'm also crossing my fingers that someday the developers will decide to take the plunge & go full double precision natively in Pd, but I understand the headaches they're faced with in trying to ensure (most/some/any) backwards compatibility with older externals.

    posted in technical issues read more
  • beep.beep

    Thanks for sharing your patch! I can see a lot of possibilities in being able to recognize different data "shapes" like this.

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!