<div dir="ltr">Thank, Albert and Ico,<div><br></div><div>This is enlightening information about the lower-level state of things.</div><div><br></div><div>So what do you guys use to get game controllers to work with your patches if not [hid]?</div><div><br></div><div>Any idea what's up with [cyclone/mousestate]? It loads without error but never produces any output, and I don't see anything in the DevTools console. Clicking [poll( sometimes produces these messages in the Pd console:<br><br>legacy tcl command at 473 of ../shared/hammer/gui.c: global hammergui_ispolling<br>legacy tcl command at 474 of ../shared/hammer/gui.c: set hammergui_ispolling 1<br>legacy tcl command at 475 of ../shared/hammer/gui.c: hammergui_poll<br></div><div><br></div><div>And yes, for Purr-Data 2.20, I tried removing the quarantine attribute first and it wasn't until I used spctl that I got it to work.</div><div><br></div><div>Thanks,</div><div><br>𐌌 </div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Jeff Morris</div><div><a href="http://morrismusic.org" target="_blank">http://morrismusic.org</a></div><div><a href="http://weblogmusic.org" target="_blank">http://weblogmusic.org</a></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 21, 2024 at 2:57 AM Albert Graef <<a href="mailto:aggraef@gmail.com">aggraef@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi Jeff,<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 20, 2024 at 7:15 PM Jeff Morris <<a href="mailto:jeff@morrismusic.org" target="_blank">jeff@morrismusic.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>I was able to get Purr-Data working finally using <span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11pt">sudo spctl --master-disable and it mostly works okay, except that it crashed upon quitting. The macOS console crash log shows the following. Looks like a memory segmentation fault experienced by nwjs.</span></div></div></div></blockquote><div><br></div><div>Completely disabling Gatekeeper shouldn't be necessary. At least with the latest 2.20.0 version, just removing the com.apple.quarantine attribute after installation should be enough (cf. <a href="https://github.com/agraef/purr-data/wiki/Installation" target="_blank">https://github.com/agraef/purr-data/wiki/Installation</a>):<br></div><div></div><div>sudo xattr -r -d com.apple.quarantine /Applications/Purr-Data.app</div><div><br></div><div>The nw.js crash-on-exit is a known bug: <a href="https://github.com/agraef/purr-data/issues/44" target="_blank">https://github.com/agraef/purr-data/issues/44</a>. You can work around the annoying popup message from the OS as described in the ticket. Other than that, this bug is mostly harmless since the nw.js crash happens after purr-data already went through its entire finalization sequence. And you can also avoid the bug by closing all patch windows before exiting the program. At least that works for me on Big Sur (old Intel MB) and Sonoma (MB M1), your mileage may vary.<br></div><div><br></div><div>As Ico already pointed out, there are various issues with the nw.js versions that we use. Probably the most serious regression is that NW2, the new browser window implementation being used as default in nw.js 0.42.4 and later, has some severe performance problems with dynamic code execution in the JavaScript interpreter. This makes rendering dynamic svg graphics on the canvas (such as array displays and pd-lua graphics) horribly slow, which is why both pd-l2ork and purr-data switch nw.js to the old NW1 implementation. (Ico first discovered this and reported it upstream some two years ago, but we still need to produce a minimal example for the issue before it will be considered.)</div><div><br></div><div>This in turn limits the nw.js versions that we can use, because anything past nw.js 0.67.1 has broken window management in NW1 mode. The crash-on-exit bug on macOS is also related to the use of NW1 AFAICT. Moreover, on Linux, nw.js 0.56.0 and later have another serious bug (nwworkingdir not working, which means that file dialogs will open in the wrong places) which AFAICT has never been fixed. Which is why I decided to go with nw.js 0.55.0 in purr-data 2.20.0, which is pretty much the last nw.js version that works without any serious regressions on all major platforms.</div><div><br></div><div>But note that purr-data also includes a little shell script which lets you experiment with different nw.js versions and switch between NW1 and NW2, to find out what works best for you. See <a href="https://github.com/agraef/purr-data/wiki/Installation#patching-purr-datas-nwjs" target="_blank">https://github.com/agraef/purr-data/wiki/Installation#patching-purr-datas-nwjs</a>. (I doubt that the script will work with pd-l2ork as-is, but you can probably adjust it if needed, if you know a little shell programming.)</div><div><br></div><div>HTH,</div><div>Albert<br></div></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Dr. Albert Gr"af<br>Computer Music Research Group, JGU Mainz, Germany<br>Email: <a href="mailto:aggraef@gmail.com" target="_blank">aggraef@gmail.com</a>, web: <a href="https://agraef.github.io/" target="_blank">https://agraef.github.io/</a></div></div></div></div></div></div></div>
_______________________________________________<br>
L2Ork-dev mailing list<br>
<a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
<a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
</blockquote></div>