-
Matt Stalcup
@alexandros thanks for replying! I am using [table], not [array]. I've experimented with hiding the tables in subpatches to get around the drawing CPU issue, but still had pops when the tables were hidden. This is an interesting question, though, because my CPU usage never really spiked any further than around 10% when playing with this-- are the issues with tables being redrawn a CPU draw issue or is it that the table's data set actually changes more slowly when they are graphically redrawn?
Unfortunately, I have edited the patch fairly intensely to implement my workaround- and the patch was complicated to look at to begin with. I did some testing in a more simple environment, but was still getting this issue. I'll throw together something soon to demonstrate what I'm talking about because I'd really like to understand what's going on.
-
Matt Stalcup
I have made a workaround basically by fading between an inactive and active table. It's good enough for my purposes but it feels like I ought to be able to do this more elegantly.
-
Matt Stalcup
In Pd's help files, it suggests table switching with [tabosc4~] to avoid rewriting tables. However, when I do this, I get small pops in my audio upon switching. I assume these are from the tables switching when the values are far apart, causing the signal to suddenly jump.
Is there a way to make the table switch happen when the index of the table is at 0 where both tables have the same value (i.e. 0?)
-
Matt Stalcup
@oid, hey!
Sorry, life got busy and I stepped away from this damnable hobby for a while. Just wanted to say that, yes, I'm using Purr-Data. The version in the AUR must not be totally updated. Anyway, I have so many issues already with keeping all my packages up to date and in sync that it's not worth it to me to do an install outside the AUR.
Thanks a bunch for both your help (and you as well @whale-av. I've been able to figure out how to handle [text] sufficiently for my purposes.
-
Matt Stalcup
@whale-av, @oid, thanks for the pointers. I'll dig into this soon.
Although I'm not sure why my install of PD is outdated. I've got the most recent version through AUR. Is AUR not updated?
-
Matt Stalcup
Hi, I'm just trying to figure out how to work with this object and the help file is really confusing to me
Firstly- can any kind soul point me toward a better resource for understanding how to use this object?
Secondly, I'm going to point out a few of my confusions with the help file, specifically in [text define]:
- "text define" maintains a text object and can name it so that other objects can find it (and later should have some, alternative, anonymous way to be found)."
-
- What does that second half mean? An "anonymous way to be found" sounds like an oxymoron to me.
- When i click the message box [write text-object-help.txt] that is connected to [text define -k text-help-1], I get an error in the console that reads "text-object-help.txt: write failed"
-
- Why should something in a help file fail like this? There's nothing apparent in the help file to explain the error. I'm running realtime Purr-Data on Manjaro's latest realtime kernel, everything is updated.
- Next to the message box [sort], there's just a comment that reads "comment"
-
- lol what?
- It seems like [text define] creates the text file with its third argument (e.g., [text define -k file-name-here]" However, the help patch is reading from a file called "text-object-help.txt" and when the file is opened, "text-help-1" is on the top of the window.
-
- Dear god, what is going on?
If anyone feels like helping me out here, I would gladly help put together a better help patch. Or maybe I'm just reading this totally incorrectly.
Thanks continually for all of your support, everyone!
-
-
Matt Stalcup
I've whipped up a little abstraction for this purpose. Posted to the abstraction section here.
-
Matt Stalcup
Based on the discussion here, I've made a small abstraction that checks for a threshhold of # of connections to its inlet and returns 0 or 1 based on whether or not that threshhold is met.
It's pretty simple but if you need it, it's here!
-
Matt Stalcup
Thanks @alexandros and @FFW, this is just what I needed! Seems like running a [metro 1] through a message to [canvasconnections] is even pretty inexpensive, so it's not hard to have this actively turn that spigot on and off depending on if a connection is made. Now to make this work constantly across a variable number of inlets!
-
Matt Stalcup
I made a simple abstraction for sending OSC data to Ardour a while back. Maybe it would be of some help to you.
https://forum.pdpatchrepo.info/topic/11728/abstraction-for-controlling-ardour-plugin-parameters
-
Matt Stalcup
I would like to be able to control a spigot based on whether or not there is a connection to an inlet. Basically, for a given inlet, I'd like to be able to turn off all other inputs if a connection is made to it, and open that back up when the connection is deleted.
This seems easy enough to do if I use lists to flag where connections are coming from and check for that "type" flag at the point of input, but the issue is when I get rid of that connection, there's no way to tell pd to switch back to accepting other inputs.
Does this make any sense? If there was an object that put out a 1 or 0 depending on if anything was connected to its inlet, I'd be all happy.
-
Matt Stalcup
Gosh, I really wish I had enough reputation to edit posts. Taking the wavetable off the abstraction graph-on-parent cut cpu usage some. I'm still getting little popping noises when I drag the xysl around fast enough, though.
also, @svanya, i forgot to tag you in the last post.
-
Matt Stalcup
Hey! Valuska-Yoshimitsu is my other account I made because I had temporarily lost access to the email for this one.
I've been playing with this and it sounds beautiful. Thanks for your work.
I made a couple of changes:
-changed the $1 arguments naming the wavetable to $0
-added [line] objects after the xysl router to smooth out transitions]
-added [tabosc4~] and accompanying outlet/inlet
-added an inlet for a xysl as it comes packaged. (i'm not sure why, but i can't get xysl to respond when it's in a subpatch or abstraction. Additionally, not sure how you got it to data scale the way you did, so I added glue in wavebypartial for data scaling)Here's the updated version-wavebypartial_b_2(viaxyslider).zip
Finally, I absolutely love the way this sounds: I want to run like 10 of them at once. Unfortunately, it's cpu expensive. My guess is that it's all of the sinesums going on.
I've thought for a while now that it could be possible to achieve this waveshaping effect by creating a huge bank of tables instead of running sinesum every time you want to switch. This is probably foolish, but I'm curious if you have any thoughts.
Thanks again!
-
Matt Stalcup
Oh my god it was because I was printing the lists. The moment I cut the cord to [print], i went from 97% on a single thread to >3% for all threads combined.
Thanks everybody for helping in this thread. I appreciate that the pd forum is a place where I can come to learn without worrying too much about having to know everything already.
-
Matt Stalcup
I don't have edit permission but I wanted to correct something, the script doesn't input ctrl+e when pure data is running, but rather when pure data is the active window.
-
Matt Stalcup
Hey everyone,
I wasn't sure where to post this, but I wrote a little bash script to make my mouse input ctrl+e only when purr-data is running.
In the hopes that this makes someone else's life a little easier, here's the script- you just need to bind it to your chosen mouse button using xbindkeys. (xbindkeys -k will pop open a little window where you can find out which button you're trying to assign, xev also works, but you'll need to download it as well) You'll also need to download xdotool if you don't have it already. I've included an xbindkeys config file as well.
note that you'll need to replace "purr-data" in the script at line S1='"purr-data"' with whatever the class of the windows are for the version of pd you're running. you can find this by running xprop in a terminal and clicking on pd, there should be a line with WM_CLASS. The text you want is what's in quotations after the third space in that line. The script will look for those quotation marks, so make sure you include them between the ticks!
If you're running purr-data and the button on your mouse you want to assign is somehow b:2, then this will work out of the box as long as you make the script executable and run xbindkeys -f /path/to/~xbindkeysrc
I know I've done a shoddy job explaining this, so please feel free to contact me if you want to get it working! I know it's saved me a lot of reaching to my keyboard when I'm disconnecting and connecting and testing things.~xbindkeysrc purr-data_editmodetoggle.sh
-
Matt Stalcup
@obineg, to your point: Adding a ton of numbers to my lists doesn't seem to increase load that much. Load increases a lot when I am running multiple instances of [line-inter] simultaneously. My goal is to interpolate between 4 lists plotted at corners of an xy field, which I can do but it turns out actually does spike my CPU to like 98 percent on Purr-Data's thread. Currently trying to hook up @jameslo's solution and see if it takes the load off.
My issue there is that I'd like to be able to dynamically set the number of floats in the array, so that's holding me back presently. Is it as simple as putting a $1 at the end of that array object? I don't know! Here I go to find out.
-
Matt Stalcup
Hey so I tried it out and I gotta say, this is a really pretty way to carve out some CPU.
I'm not sure what was going on with my system, but I think when I first made this post pd must have had some persistent hiccup (maybe an issue with connecting/disconnecting from Jack) that was causing the CPU spikes.
I have your solution saved and may return to it later, but for now it's just not much cheaper than [list-inter] so it'd be more of a headache to implement it into what I've already got than to push forward as is.
Sorry to waste your time (and anyone reading this) by making a post before just restarting my computer, but it really did seem like [list-inter] was causing massive spikes. Thanks a bunch, Jamesio!
-
Matt Stalcup
Hey thanks for replying, I'm gonna try out your method here and report back.
I messed up when writing the initial post, I was actually using [line $1 $2] to test things out and wanted to write it just with default arguments to show that I have the issue with defaults. Misremembered the first argument as the initial value instead of ramp length in ms.