purr-data issueshttps://git.purrdata.net/jwilkes/purr-data/-/issues2019-04-16T19:54:13Zhttps://git.purrdata.net/jwilkes/purr-data/-/issues/246times font has an offset in canvas labels2019-04-16T19:54:13ZAlexandre Porrestimes font has an offset in canvas labelshowdy, I was testing the help file of my new library in Purr Data and I noticed that the label's font had an offset, see image below (purr data on the left, vanilla on the right) - the font used is times
![Screen_Shot_2017-0...howdy, I was testing the help file of my new library in Purr Data and I noticed that the label's font had an offset, see image below (purr data on the left, vanilla on the right) - the font used is times
![Screen_Shot_2017-02-09_at_15.23.38](/uploads/c6c91938b15ed4c79615fa2bf0f73d8d/Screen_Shot_2017-02-09_at_15.23.38.png)
then I made a different test will all label font options, and found that only times had this offset, see image, again, Purr Data on the left, vanilla on the right, and the 3rd label from top down, marked with ===> is the times font
![Screen_Shot_2017-02-09_at_15.22.45](/uploads/9bdc0d17c95f190827aa36164a7b2b62/Screen_Shot_2017-02-09_at_15.22.45.png)
yep, I'm on a mac
https://git.purrdata.net/jwilkes/purr-data/-/issues/260Reloading the device tables in the prefs2019-07-24T21:35:53ZAlbert GräfReloading the device tables in the prefsI'm fairly sure that there's already code for that in the engine, so we might just have to expose that via the prefs dialog, by adding corresponding buttons on the Audio and MIDI tabs (something like "Rescan devices" in Reaper). Currentl...I'm fairly sure that there's already code for that in the engine, so we might just have to expose that via the prefs dialog, by adding corresponding buttons on the Audio and MIDI tabs (something like "Rescan devices" in Reaper). Currently the user must relaunch Purr after connecting external audio and MIDI gear like in good ol' vanilla, which is inconvenient.https://git.purrdata.net/jwilkes/purr-data/-/issues/261Add a Reset Preferences button or menu option2017-10-16T12:25:44ZAlbert GräfAdd a Reset Preferences button or menu optionAt present the user has to do that manually in a platform-specific way (cf. https://git.purrdata.net/aggraef/purr-data-intro/blob/master/Purr-Data-Intro.md#resetting-the-preferences), which might be more than users not proficient with th...At present the user has to do that manually in a platform-specific way (cf. https://git.purrdata.net/aggraef/purr-data-intro/blob/master/Purr-Data-Intro.md#resetting-the-preferences), which might be more than users not proficient with the command line or Windows registry can handle. We already know what the necessary incantations are, so we might just as well go the extra mile and add a button for it.
Of course, that button should look RED and DANGEROUS and maybe launch a confirmation dialog, so that the user only runs this when she *really* knows what she's doing. :)https://git.purrdata.net/jwilkes/purr-data/-/issues/262Intelligent patching: Improve or replace the 1:N and N:1 multi-connect options2017-10-16T12:25:44ZAlbert GräfIntelligent patching: Improve or replace the 1:N and N:1 multi-connect optionsCf. [intelligent-patching.pd](/uploads/394714a2a40f6901de41e93b5bf48566/intelligent-patching.pd)
Disclaimer: This is all IMHO, of course, we're talking about workflow here, which is something completely up to taste and habits, so ple...Cf. [intelligent-patching.pd](/uploads/394714a2a40f6901de41e93b5bf48566/intelligent-patching.pd)
Disclaimer: This is all IMHO, of course, we're talking about workflow here, which is something completely up to taste and habits, so please bear with me. In general Ico's intelligent patching (IP) works *extremely* well and lets you do complex patches with a speed which will make vanilla users turn green with envy. :)
However, the more complex modes (what I call 1:N and N:1 multi-connect, items 4 and 4' in the attached patch) are hard to understand IMHO, it's not easy to see when you'd want to use them, and in any case it's often really hard to predict what the result will be. At least that's my experience; whenever I try using this mode, I invariably end up with something totally unexpected. ;-) Maybe that's just my ham-fistedness, but in contrast I feel perfectly at ease with the 1:1 multi-connect (item 1 in the patch, where the user has exactly two objects selected). In my experience, the students tend to avoid the 4/4' mode as well, I've actually never seen them using it. @ico, do your students actually use this mode?
What I think would be much more useful, and which I already frequently wished I had available, would be some kind of "bipartite" N:M single-connect mode. The idea of that is that I have n+m selected objects (n,m>1), say A1..An, B1..Bn, arranged in two rows or columns. Then I'd like to connect one outlet O from, say, Ai to some inlet I of Bj, and have IP do the corresponding O->I connection for all (existing) pairs Ak,B[k+(j-i)] where k runs from 1 to n.
For the sake of a more concrete example, let's say I have this: (I use two rows here for illustration, but the As and Bs might as well be arranged into two columns instead):
~~~
[A1] [A2] [A3] [A4]
[B1] [B2] [B3] [B4]
~~~
And I'd like to turn it into this:
~~~
[A1] [A2] [A3] [A4]
| | | |
[B1] [B2] [B3] [B4]
~~~
Then I'd just select all of the As and the Bs, connect the desired outlet of A1 with the desired inlet of B1 and be done with it.
I can't tell you how often I need this. Of course I could start out with `[A1] - [B1]` and then just duplicate that as often as needed, but then I usually get it wrong on first attempt and have to redo the connections later anyway, so I'd much prefer to use IP there.
For the sake of an even more concrete example that I actually did with the students this semester, have a look at this patch: [intervals.pd](/uploads/d67219d712e2173acb5c3149b6388e78/intervals.pd). Note the two "ladders" of bangs/numbers/arithmetic under the columns "arithmetic" and "geometric", it's exactly like the situation above, albeit in columns and with three columns each. Screenie:
![Screenshot_2017-02-16_15.16.17](/uploads/ea2e1cedfc45bb33a8746a13feba113b/Screenshot_2017-02-16_15.16.17.png)
Now take this patch where the "ladder" connections have been removed, and show me how to redo them quickly with IP: [intervals-unconnected.pd](/uploads/c23444bd42bbf2aebe2e0c2781752fc5/intervals-unconnected.pd) None of the current modes will handle this conveniently.
![Screenshot_2017-02-16_15.19.16](/uploads/0d5b9e261885205dbfdcc5fd652690cb/Screenshot_2017-02-16_15.19.16.png)
With the mode sketched out above, this would be easy as pie (select the bangs and the numbers, connect the topmost bang to the topmost number and apply IP once, then do the same again for connecting the arithmetic tower starting with the `[100(` message to the numbers).
@ico @jwilkes Would you be ok if I try to implement the alternative IP mode sketched out above, do you think that it would be a useful replacement for the 4/4' modes? If not, then I might just add another fifth IP mode instead (maybe requiring a special shift key), but I feel that this would be stretching it.
As an aside, we should also add a help patch for IP allowing the user to practice intelligent patching. It's a real time-saver which we should brag about. :) I can take care of the help patch after I implemented the above.Albert GräfAlbert Gräfhttps://git.purrdata.net/jwilkes/purr-data/-/issues/264please port breakpoints / breakpoints~2017-11-02T03:52:19ZAlexandre Porresplease port breakpoints / breakpoints~please try to port these objects in purr data, they are from "tof" and based on envgen, which was already ported, so it could be really easyplease try to port these objects in purr data, they are from "tof" and based on envgen, which was already ported, so it could be really easyhttps://git.purrdata.net/jwilkes/purr-data/-/issues/267more flexibility for handling startup paths/libs2017-10-16T12:25:44ZJonathan Wilkesmore flexibility for handling startup paths/libsWe have two general ideas for adding some more ease to custom startup paths/libs:
Here's one from @aggraef
> I think that all this actually raises a more interesting question, namely how do we cater to individual users needs for a...We have two general ideas for adding some more ease to custom startup paths/libs:
Here's one from @aggraef
> I think that all this actually raises a more interesting question, namely how do we cater to individual users needs for a "bottled" personalized setup, and make that as easy and painless as possible? I can relate to that, it affects me as well. We use Purr Data for teaching, and sometimes we just need a customized setup so that we can have the students up to speed with the things we want to do quickly. That's certainly something that we can think about.
Here's a very quick idea from @jwilkes
> - Startup paths for libs that were default before Pd-extended got abandoned
> - Startup paths for all libs
> - Startup paths for no libs
> The first option should be default since there is still an enormous number of patches in the wild that depend on those paths being loaded by default.
Edit: originally pasted the wrong thing.https://git.purrdata.net/jwilkes/purr-data/-/issues/269automatically calculate actual font sizes for arbitrary fonts at startup2017-10-16T12:25:44ZJonathan Wilkesautomatically calculate actual font sizes for arbitrary fonts at startupCurrently we're using some hard-coded pixel font sizes in the GUI tailored to fitting DejaVu Sans Mono exactly into the maxwidth/sizes listed in sys_fontlist of s_main.c. By ignoring the fi_width and fi_height members on the C side, we ...Currently we're using some hard-coded pixel font sizes in the GUI tailored to fitting DejaVu Sans Mono exactly into the maxwidth/sizes listed in sys_fontlist of s_main.c. By ignoring the fi_width and fi_height members on the C side, we guarantee pixel-exact object/message/atom box sizing across all platforms.
This means that boxes aren't guaranteed to tightly fit around the text. For example, on Ubuntu 16.04 the font engine changed and happened to make DejaVu Sans Mono wider than previously. When we made a special hard-coded fix, it turned out that there is no pixel size that corresponds exactly to the previous size-- the new font engine quantizes the pixel sizes in a way that is incompatible with the previous font stack. So a message/object box with a long string of text in it under Ubuntu 16.04 will have some space left between the right edge of the text and the right side of the object box.
This may seem like a bug, but it's actually a feature. It prevents users under Ubuntu 16.04 from positioning boxes so tightly horizontally (or vertically) that they create collisions for users on the other systems.
To be able to support this for arbitrary fonts, we need to expand the HTML5 canvas font measuring trick in pdgui.js. Essentially, I think we need to do the following:
1. start with a suitably small actual font size guaranteed to fit the sys_fontlist spec.
2. write it to the HTML5 canvas and check if it fits into the maxwidth/maxheight for that sys_fontlist size
3. if it fits, double the actual font size and goto step 2
4. if it is too large, then make a "vice grip" with the current actual font size and the last known actual font size that fits
5. find the mid-point of the "vice grip" and goto 3
Now, figure out a reasonable number of times to loop 3-5. At the end of it, find the last known actual font size that fits and use that for the corresponding Pd font dialog size.
Then do the same thing for each other Pd font dialog size.https://git.purrdata.net/jwilkes/purr-data/-/issues/271add iemnet to externals2019-04-16T10:18:52ZJoão Paisadd iemnet to externalsiemnet's osc/udp objects seem to be the continuation of mrpeach's library. IOhannes should be able to explain why this library is more up to date than mrpeach.iemnet's osc/udp objects seem to be the continuation of mrpeach's library. IOhannes should be able to explain why this library is more up to date than mrpeach.https://git.purrdata.net/jwilkes/purr-data/-/issues/273Escaping of semicolon in post() and error()2017-10-16T12:25:44ZAlbert GräfEscaping of semicolon in post() and error()This is a minor thing I just noticed while playing with my upcoming pd-pure release. Calling post() or error() from C code with a string containing a semicolon, the semicolon gets escaped with a backslash. E.g.:
![error-msg-purr](/uploa...This is a minor thing I just noticed while playing with my upcoming pd-pure release. Calling post() or error() from C code with a string containing a semicolon, the semicolon gets escaped with a backslash. E.g.:
![error-msg-purr](/uploads/b8ba505eb1646e10afea1727b13a020a/error-msg-purr.png)
Note the message "warning: rule never reduced: foo x = bar (x-1)**\;**" there, of course this should actually be "warning: rule never reduced: foo x = bar (x-1)**;**".
Looking at the code of dopost() and doerror() in s_print.c, obviously there is some escaping of FUDI special chars (backslash, curly braces and semicolon) going on there, surely that shouldn't be needed in gui_vmess any more?https://git.purrdata.net/jwilkes/purr-data/-/issues/281purr data adds unnecessary width to GOP2019-04-16T11:43:08ZJonathan Wilkespurr data adds unnecessary width to GOPFrom the Pd forum:
>@jancsika That's great!, however I have another possible bug.
Create a GOP of 15 x 15 with name and args hidden add a 15 x 15 bang in the GOP square and save. Now open the patch and add an inlet or outlet and save, t...From the Pd forum:
>@jancsika That's great!, however I have another possible bug.
Create a GOP of 15 x 15 with name and args hidden add a 15 x 15 bang in the GOP square and save. Now open the patch and add an inlet or outlet and save, the GOP then grows to 19 x 15 with this warning:
"Warning: Adjusting canvas graph-on-parent area to accomodate its name. If you want to have a smaller graph-on-parent window, please hide graph text."
My response:
> @Balwyn Thanks for the report. It has to do with the value of SCALE_GOP_MINWIDTH. I'll have to investigate what that value is supposed to do and why it is set to 12.
Anyone know why `SCALE_GOP_MINWIDTH` is added in line 1220 of g_graph.c?https://git.purrdata.net/jwilkes/purr-data/-/issues/285feature request: CPU usage meter with differentiation between number/messages...2019-04-16T17:36:06ZEsa Ruohofeature request: CPU usage meter with differentiation between number/messages/sliders/artifacts/arrays/vd~ etcIt'd be absolutely lovely if there was some way of figuring out how much CPU a Purr Data patch is eating up right there and then. Would result in better optimization procedures instead of working in the dark. Ideally this CPU meter would...It'd be absolutely lovely if there was some way of figuring out how much CPU a Purr Data patch is eating up right there and then. Would result in better optimization procedures instead of working in the dark. Ideally this CPU meter would state how much CPU specific objects are taking - if possible.
Is something like this possible?https://git.purrdata.net/jwilkes/purr-data/-/issues/288need a widget to take text input from user2017-10-16T12:25:44ZJonathan Wilkesneed a widget to take text input from userWe need a core widget to take text input from the user in run mode.
Probably need both a single line and multi-line widget.We need a core widget to take text input from the user in run mode.
Probably need both a single line and multi-line widget.https://git.purrdata.net/jwilkes/purr-data/-/issues/290comments should have a dotted box around them in edit mode2021-04-11T15:23:46ZJonathan Wilkescomments should have a dotted box around them in edit mode'nuff said'nuff saidhttps://git.purrdata.net/jwilkes/purr-data/-/issues/291load all binaries with dsp on2017-10-16T12:25:44ZJonathan Wilkesload all binaries with dsp onThe CI builds aren't currently checking for crashers when creating objects with DSP turned on. Let's go ahead and add that as a test so we can start finding those crashers.The CI builds aren't currently checking for crashers when creating objects with DSP turned on. Let's go ahead and add that as a test so we can start finding those crashers.https://git.purrdata.net/jwilkes/purr-data/-/issues/292apple/sudden_motion_sensor2017-03-23T22:46:05Z60-hzapple/sudden_motion_sensor[apple/sudden_motion_sensor] is created but doesn't work.
error: [sudden_motion_sensor]: could not read device
Hitting "info" message give:
print: sensor SMCMotionSensor
Other objects from apple library works correctly.
OSX 10.9.5, Ve...[apple/sudden_motion_sensor] is created but doesn't work.
error: [sudden_motion_sensor]: could not read device
Hitting "info" message give:
print: sensor SMCMotionSensor
Other objects from apple library works correctly.
OSX 10.9.5, Version 2.1.2 (20170322-rev.6f652fe)https://git.purrdata.net/jwilkes/purr-data/-/issues/296dialog buttons should have a consistent interface2017-03-25T03:56:14ZJonathan Wilkesdialog buttons should have a consistent interfaceThere are various behaviors for the buttons in the dialogs:
* Iemgui dialogs
1. Ok - apply all settings and close the dialog
2. Apply - temporarily apply all settings, will be reverted if the dialog is canceled
3. Cancel - revert ...There are various behaviors for the buttons in the dialogs:
* Iemgui dialogs
1. Ok - apply all settings and close the dialog
2. Apply - temporarily apply all settings, will be reverted if the dialog is canceled
3. Cancel - revert any temporary settings, close the dialog
* Canvas/Array dialogs:
1. Ok - apply all settings and close the dialog
2. Apply - apply all settings and leave the dialog open
3. Close - close the dialog
* New Array dialog:
1. Ok - create a new array and close the dialog
2. Close - close the dialog without creating an array
* Preferences dialog:
1. Ok - apply and save all settings, close the dialog
2. Apply - apply settings, don't save them, don't close dialog
3. Close - close the dialog
* Font dialog:
1. Close - close the dialog
Ideally we would choose one of the following consistent behaviors:
1. make all dialogs behave like Iemgui dialogs, where "Cancel" undoes temporary settings and "Ok" confirms them
2. apply all form inputs in the dialogs *immediately* and have a single "Close" button at the bottom
Drawbacks:
* the Prefs dialog and Canvas dialog potentially do an enormous amount number of mutations to the running Pd instance and patch state. Getting them to successfully/deterministically undo these changes when clicking "Cancel" is tricky (e.g., consider what to do when undoing an array truncation). Also, applying changes immediately in the Audio Prefs dialog may connect/disconnect audio too quickly and causes unpredictable behavior. For those reasons the Prefs and Canvas dialogs have a "Close" button instead of a "Cancel" button-- i.e., there's no going back.https://git.purrdata.net/jwilkes/purr-data/-/issues/298OSX: "Auto-focus" "re-align to window" somehow buggy on osx el capitan 10.11.62019-04-16T21:09:36ZEsa RuohoOSX: "Auto-focus" "re-align to window" somehow buggy on osx el capitan 10.11.6Hi, I'm experiencing stuff like this:
![test__-__Users_esaruoho_Library_Mobile_Documents_com_apple_CloudDocs_pd_and_Untitled](/uploads/438b11dcb01694e0002a48d1ccb09d71/test__-__Users_esaruoho_Library_Mobile_Documents_com_apple_CloudDocs_...Hi, I'm experiencing stuff like this:
![test__-__Users_esaruoho_Library_Mobile_Documents_com_apple_CloudDocs_pd_and_Untitled](/uploads/438b11dcb01694e0002a48d1ccb09d71/test__-__Users_esaruoho_Library_Mobile_Documents_com_apple_CloudDocs_pd_and_Untitled.jpg)
what happens is that I'll be happily aligning stuff so it's all centered, yet when I move all the atoms down, the window "view" still "re-moves" itself so that the highest portion of the hslider is not displayed. Is it supposed to be such a snug fit that you can't even see the whole atom? This is in a subpatch.https://git.purrdata.net/jwilkes/purr-data/-/issues/307subpatch can't be closed: no such object2017-04-06T20:29:04ZXRoemersubpatch can't be closed: no such objectError Message:
[420] error: x75541e8: no such object
This error appears while closing a subpatch.
To reproduce: Open 0.all_msg.pd from Purr Data/doc/manuals/pd-msg/1.msg_and_patch.
Close 0.all_msg.pd
I discovered this error with one of...Error Message:
[420] error: x75541e8: no such object
This error appears while closing a subpatch.
To reproduce: Open 0.all_msg.pd from Purr Data/doc/manuals/pd-msg/1.msg_and_patch.
Close 0.all_msg.pd
I discovered this error with one of my patches, where I create objects on the fly. So I had a look into the examples and found the same error.
Tested on win7 and Purr Data 2.1.2https://git.purrdata.net/jwilkes/purr-data/-/issues/310setting an array with GOP by a loop freezes Purr Data2017-04-18T10:02:25ZXRoemersetting an array with GOP by a loop freezes Purr Data[notch-filter.pd](/uploads/9329b786637c5af87afba3a65edca27d/notch-filter.pd)
Setting the array by drawing to it's canvas works, whereas setting it by a loop, freezes Purr Data. (The core running PD uses 100%)
Try attached file.
Test...[notch-filter.pd](/uploads/9329b786637c5af87afba3a65edca27d/notch-filter.pd)
Setting the array by drawing to it's canvas works, whereas setting it by a loop, freezes Purr Data. (The core running PD uses 100%)
Try attached file.
Tested on win7 and win10 with Purr Data 2.1.2https://git.purrdata.net/jwilkes/purr-data/-/issues/315Load-meter with GOP? (attached a version)2019-04-16T21:07:25ZEsa RuohoLoad-meter with GOP? (attached a version)Hi, would it be possible to modify the current load-meter.pd so that it can be used inside a regular patch? I made a modification to it so it has a GOP ..
[loadmeter.pd](/uploads/50342c5bc347461c5e380e0a11b5303a/loadmeter.pd)
I tak...Hi, would it be possible to modify the current load-meter.pd so that it can be used inside a regular patch? I made a modification to it so it has a GOP ..
[loadmeter.pd](/uploads/50342c5bc347461c5e380e0a11b5303a/loadmeter.pd)
I take it something like this doesn't necessarily eat up a lot of CPU power, right? Think it'll really help me while tweaking my own main pd patch..
@jwilkes