purr-data merge requestshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests2022-08-26T03:22:21Zhttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/839Gem on the Mac2022-08-26T03:22:21ZAlbert GräfGem on the MacOk, here's my first go at it. This includes the necessary changes to build a working Gem library on macOS. The build works with both MacPorts and Homebrew now, but prefers Homebrew if it is installed. (As a working libquicktime is only a...Ok, here's my first go at it. This includes the necessary changes to build a working Gem library on macOS. The build works with both MacPorts and Homebrew now, but prefers Homebrew if it is installed. (As a working libquicktime is only available on Homebrew, the QT4L backends are disabled in the MacPorts build for now, but they work -- kind of -- in the Homebrew build.) All in all, this works quite well actually, but there are some known quirks, see below.
I also updated the Homebrew instructions in the toplevel README. And the MR contains a backport from upstream (vanilla) which improves diagnostics of library loading. While this is unrelated, it helped *a lot* to diagnose library issues which prevented this to work at first.
Known quirks:
- The gemmacoswindow (which is the default on macOS) doesn't work at present, at least not on anything that's more recent than Sierra. This is a known bug, see https://github.com/umlaeute/Gem/issues/257. The window backend which worked best for me (on Mojave at least) is the SDL2 window, so we (build and) default to that. Of course, this means that SDL2 must be installed (it's listed in the updated README). The SDL2 window does have some quirks of its own on the Mac, though. You can't close it, but you can open different patches in succession and have them render to the same window.
- Video loading and recording via QT4L works (in the Homebrew build), but the options are extremely limited. For one thing, it seems that there's no mp4v codec in the libquicktime from Homebrew, so no MPEG4 playback. In fact, there doesn't seem to be much of any of the video formats that people commonly use. Maybe we can fix that by building our own libquicktime or port one of the existing versions that are known to work, such as the one from Ubuntu. But that's something for another day.
On the bright side, basic OpenGL functionality, images, 3D models, and video capture all seem to work fine, so it's certainly usable (and better than not having Gem supported on the Mac at all).
I tested this with both Homebrew and MacPorts, both builds work fine for me. Test builds on Linux and Windows also continue to work.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/838Gem update2022-08-18T19:50:32ZAlbert GräfGem updateThis updates Gem to the latest from upstream + some required mingw compilation fixes, as discussed in pm.This updates Gem to the latest from upstream + some required mingw compilation fixes, as discussed in pm.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/837Improvements and bugfixes to autocompletion2022-08-18T19:48:59ZAlbert GräfImprovements and bugfixes to autocompletionOk, here's a last one for your perusal. :) @gabrielabittencourt submitted her awesome autocomplete feature (!808) in GSoC 2021. As is so often the case in GSoC projects, there were still a few minor quibbles which she didn't have the tim...Ok, here's a last one for your perusal. :) @gabrielabittencourt submitted her awesome autocomplete feature (!808) in GSoC 2021. As is so often the case in GSoC projects, there were still a few minor quibbles which she didn't have the time to address. I was hoping that we could work on this some more in this years' GSoC, but it appears that she is simply too busy with other things right now.
So here's my attempt at fixing what I consider the most important issues. This is based on my students' and my own experiences after using the new feature for a year. Specifically, this MR addresses the following:
- If autocompletion is enabled, make sure that the help index updates are performed in a timely manner. Previously the completions might be out of date or completely unavailable. This is because for technical reasons (speed, mostly), completion index generation is tied in with help index generation, so if the latter was out of date or non-existent, because the user didn't invoke the help browser, so was the former. This MR fixes that. The generation process now also properly deals with some special "umbrella" help patches which have the actual object names in the NAME field of the META data. E.g., my pet peeve there was `adc~_dac~-help.pd` which would show as an actual object name `adc~_dac~` in the completion; this is now fixed.
- Tab now cycles through all the completions in the autocompletion dropdown (similar to how autocompletion works in fish or emacs autocompletion mode), and all the different ways to initiate a completion (Tab, Return and mouse clicks in the autocompletion dropdown) work consistently. After a completion, the caret is positioned at the end of the textbox so that the user can start typing arguments.
- There's a new keyboard command (ctrl+y) which let's you "yank" (remove) an existing completion, for both object names and specific parameter completions. E.g., assume that you still have the bogus `adc~_dac~` completion in your completion index, or a combination of parameters for an object that you want to get rid of, such as `dac~ 1 3 2 4`. Then you can now just type or complete that text, press ctrl+y *twice* (the second time is for confirmation, any other key will abort the operation), and away it goes. Note that this decidedly uses a "low-tech", non-GUI keyboard interface with some helpful prompts in the Pd console. This is just quicker than having to get your hands off the keyboard and operate some fancy buttons, say, in the autocomplete menu. It also was much easier to implement. We might still revisit this at a later time if Gabriela ever gets working on the feature again, but that's what we have for now.
- I also added a binding for the Esc key which just makes the autocomplete popup go away until you start typing again. I find this convenient, e.g., if the popup obscures some part of the patch that I'd like to see without having to stop editing.
I already tested this on Linux and Windows, Mac will be next, and then I'll throw it up on the OBS. In the meantime, if you have any ideas or comments, please let me know.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/836Remove two debugging messages from pd_canvas.js2022-08-18T19:46:42ZAlbert GräfRemove two debugging messages from pd_canvas.jsThese were triggered when dragging the scrollbars. They have been around since 2019-20, so they survived the entire pandemic. :) Discovered by Jan, one of my students in a course this summer semester.These were triggered when dragging the scrollbars. They have been around since 2019-20, so they survived the entire pandemic. :) Discovered by Jan, one of my students in a course this summer semester.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/835Add document generation for ReadMe.html and Welcome.html2022-08-21T22:50:41ZAlbert GräfAdd document generation for ReadMe.html and Welcome.htmlThese two are now generated from Markdown source, using awk for preprocessing (macro substitution and selection of OS-dependent sections) and pandoc for formatting. A nice-looking GH-style-alike style sheet is also included. All this stu...These two are now generated from Markdown source, using awk for preprocessing (macro substitution and selection of OS-dependent sections) and pandoc for formatting. A nice-looking GH-style-alike style sheet is also included. All this stuff including the Markdown source can be found in packages/gendoc.
This replaces the jumble of echo commands in the packages/Makefile which was hardly maintainable and produced subpar results. The content of the ReadMe document was outdated as well, so I updated it.
The main advantages are that it is now much easier to edit these documents (simply edit the Markdown source in gendoc/ReadMe.md and gendoc/Welcome.md), replacement of version numbers and OS-dependent information is automatically performed by the awk script, and the resulting html documents produced with pandoc look much better.
I consider this important, since these documents (especially ReadMe.html) are pretty much the first bits of Purr Data related documentation the user sees when installing the package, on Mac and Windows at least where they are prominently featured during the installation. If ReadMe.html then looks like some webpage from the 1990s, with information that is hopelessly outdated, that doesn't make for a great onboarding experience. The new system solves this problem.
The only downside that I see is that this requires special tools, awk and pandoc. Awk is readily available on all platforms we support, but pandoc must be installed in the runners. Fortunately, pandoc is available from both Homebrew and MacPorts. For Windows there is a package from the [upstream website](https://pandoc.org/installing.html#windows) which works in msys2 just fine, if `PATH` is set up accordingly. On Arch and Debian/Ubuntu, pandoc is readily available in the official package repositories. So this shouldn't be a big issue.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/834Various fluid~ initialization fixes2022-08-18T19:16:17ZAlbert GräfVarious fluid~ initialization fixesFixed some errors in the fluidsynth settings, and made fluid~ a lot less chatty by setting up fluidsynth log callbacks. Even that doesn't prevent a lot of log messages from drivers (especially from ALSA on Linux), though, so as a last re...Fixed some errors in the fluidsynth settings, and made fluid~ a lot less chatty by setting up fluidsynth log callbacks. Even that doesn't prevent a lot of log messages from drivers (especially from ALSA on Linux), though, so as a last resort the final commit also temporarily redirects stderr to /dev/null to get rid of all that noise.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/833Update the installations instructions for the new JGU repositories.2022-08-08T01:19:15ZAlbert GräfUpdate the installations instructions for the new JGU repositories.Hi Jonathan, as promised, I updated all my own docs now so that they point to the new purr-data-jgu repositories. We still need to update the information in the toplevel README.md, though. This MR takes care of that.Hi Jonathan, as promised, I updated all my own docs now so that they point to the new purr-data-jgu repositories. We still need to update the information in the toplevel README.md, though. This MR takes care of that.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/832debuild: Another dependency name change in Debian Testing/Unstable.2022-08-08T01:18:07ZAlbert Gräfdebuild: Another dependency name change in Debian Testing/Unstable.There you go. I forgot to add that commit to !831, sorry about that.There you go. I forgot to add that commit to !831, sorry about that.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/831Debuild fixes2022-07-29T22:46:36ZAlbert GräfDebuild fixesThis corrects some broken dependencies on the latest iterations of Debian (Testing and Unstable) and Ubuntu (22.04). Fixes #874.This corrects some broken dependencies on the latest iterations of Debian (Testing and Unstable) and Ubuntu (22.04). Fixes #874.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/811Added link to GitLab repository2022-09-12T23:34:19ZPaarth AgarwalAdded link to GitLab repositoryAdded link to GitLab Repository in ReadMe for issue #856Added link to GitLab Repository in ReadMe for issue #856https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/810Windows fixes2022-02-06T22:39:08ZAlbert GräfWindows fixesI've had these two (unrelated) bugfixes sitting in my testing branch for a little while now, so here goes:
- rev. 79b614f993f621166c8219ee35016152ae49b9fa fixes a stack overflow with mrpeach/unpackOSC on Windows.
- rev. a7a97e2c4fb9e0b...I've had these two (unrelated) bugfixes sitting in my testing branch for a little while now, so here goes:
- rev. 79b614f993f621166c8219ee35016152ae49b9fa fixes a stack overflow with mrpeach/unpackOSC on Windows.
- rev. a7a97e2c4fb9e0b79e68b4e1518c846f165ff74b increases the MIDI device count to what vanilla nowadays uses. This will work across all platforms, but I first noticed this issue on Windows. (I'm now using an [iConnectivity mioXM](https://www.iconnectivity.com/mioxm) device as my central MIDI device hub, which lists a gazillion of different MIDI devices, overflowing Purr Data's MIDI device table on Windows. This commit fixes that issue.)
And, as a bonus:
- rev. e409c8056d8aa1b46ef5afad856f5d1222d47497 fixes the broken ASIO SDK download link which made the Windows build fail after a recent change at Steinberg's website.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/809Removed failed to load source map bootstrap warning2022-09-12T23:31:18ZPrakhar AgarwalRemoved failed to load source map bootstrap warningRemoved comment `/*# sourceMappingURL=bootstrap.min.css.map */` from bootstrap.min.css, bootstrap.min.js and popper.min.js to fix the web app not loading in safari and also to remove devtool warnings.Removed comment `/*# sourceMappingURL=bootstrap.min.css.map */` from bootstrap.min.css, bootstrap.min.js and popper.min.js to fix the web app not loading in safari and also to remove devtool warnings.https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/808Draft: Autocomplete feature2022-08-14T06:35:10ZGabriela BittencourtDraft: Autocomplete featureThis adds a dropdown menu with completions from the completion index
when the user creates a new object, message or comment, and starts
typing. Note that this index is initially populated with objects from
the search index of the help br...This adds a dropdown menu with completions from the completion index
when the user creates a new object, message or comment, and starts
typing. Note that this index is initially populated with objects from
the search index of the help browser. As the user types object names,
arguments, messages and comments, they will be added to the completion
index as well.
Entries from the menu can be chosen with the cursor up and down
keys. The enter key can then be used to select an entry and insert the
corresponding completion. Alternatively, clicking with the mouse also
selects an entry.
NOTES / TODO:
This is a very first implementation of autocompletion for purr-data, and
as such it still has a few minor quirks and shortcomings:
- Help index completions: Completions from the help browser's index will
only be available once that index has been built. By default, this
happens when the help browser is first launched. However, you can
change this so that the help index is automatically created when
purr-data launches, by ticking the corresponding checkbox in the GUI
preferences. This will make sure that completions from the help index
are always available, even before launching the help browser for the
first time.
- Prefix matches: As shipped, completions will encompass all matches of
the typed text, even within an index item. There is an option to
select prefix matches only in the code of the search_obj() function in
pdgui.js. Currently changing the code is the only way to get this
behavior; there should probably be a checkbox in the GUI preferences
to make this easier.
- Tab completion: There is no binding for the Tab key in order to select
a default completion yet, so currently you have to use the cursor keys
and enter or the mouse to select a completion. This will hopefully be
added in the future.
- Stale completions: At present, there is no way to remove "stale"
completion entries, such as obsolete entries from the help index, or
manually typed completions which haven't been used for a long
time. There should probably be a way to do this in a (semi-)automatic
fashion, but at present the completion engine offers no support for
this.
- Disabling option: At this MR the user won't have the option of disabling
the autocomplete feature. May be nice to have a checkbox in the GUI
preferences to enabling and disabling this feature.
**Note:** This MR shall be accepted after the MR !798 and a proper re-basing.https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/807Fixed padding of marks in console find2021-08-18T03:43:24ZPrakhar AgarwalFixed padding of marks in console findAdditional padding was getting created when traversing through search matches in console find. This MR fixes it.
**Before:**
![image](/uploads/964488f44404c9de09b4e1d8c83930a7/image.png)
**After:**
![image](/uploads/d228a74eaf55c7de54e...Additional padding was getting created when traversing through search matches in console find. This MR fixes it.
**Before:**
![image](/uploads/964488f44404c9de09b4e1d8c83930a7/image.png)
**After:**
![image](/uploads/d228a74eaf55c7de54ef9a3c8b0953c3/image.png)https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/806Fixed loading modal getting stuck (web app)2021-08-18T03:41:03ZPrakhar AgarwalFixed loading modal getting stuck (web app)I have changed the order of imports of bootstrap libraries to fix the problem.I have changed the order of imports of bootstrap libraries to fix the problem.https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/805Removed Web MIDI error alert on startup2021-08-18T03:39:36ZPrakhar AgarwalRemoved Web MIDI error alert on startupRemoved Web MIDI alert which shows on startup on unsupported browsers.Removed Web MIDI alert which shows on startup on unsupported browsers.https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/804Fixed console layout2021-08-05T16:38:08ZPrakhar AgarwalFixed console layoutRemoved the extra horizontal line below purr data logo
![image](/uploads/e288786e630b04e5906a293ec62cd539/image.png)
and fixed console header layout which gets affected after clicking Edit->Find.
![image](/uploads/beaa82d6f9843b6ad42715...Removed the extra horizontal line below purr data logo
![image](/uploads/e288786e630b04e5906a293ec62cd539/image.png)
and fixed console header layout which gets affected after clicking Edit->Find.
![image](/uploads/beaa82d6f9843b6ad427158ede745121/image.png)https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/803Changed web shortcuts for Editmode and Cut2021-08-05T16:35:14ZPrakhar AgarwalChanged web shortcuts for Editmode and CutChanged the shortcuts for editmode from "Ctrl/Cmd+Shift+E" to "Ctrl/Cmd+E" and cut from "Ctrl/Cmd+Shift+X" to "Ctrl/Cmd+X".Changed the shortcuts for editmode from "Ctrl/Cmd+Shift+E" to "Ctrl/Cmd+E" and cut from "Ctrl/Cmd+Shift+X" to "Ctrl/Cmd+X".https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/802Removed full screen option2021-08-05T16:32:54ZPrakhar AgarwalRemoved full screen optionRemoved lingering code left after removing full screen view option from global menu bar as it was giving a null exception.
![Screen_Shot_2021-07-26_at_10.27.27_PM](/uploads/995a759b36d8d0d8eb40dfd98ba69744/Screen_Shot_2021-07-26_at_10.27...Removed lingering code left after removing full screen view option from global menu bar as it was giving a null exception.
![Screen_Shot_2021-07-26_at_10.27.27_PM](/uploads/995a759b36d8d0d8eb40dfd98ba69744/Screen_Shot_2021-07-26_at_10.27.27_PM.png)https://git.purrdata.net/jwilkes/purr-data/-/merge_requests/801[pdcontrol] and purr-help patches2021-08-06T05:14:24ZIshan Kumar Kaler[pdcontrol] and purr-help patchesPR to add pdcontrol to Purr-data as discussed with Zack and Matt on discord. I've tested build on Win and linux and done testing with attached purr-help-patches. I believe pdcontrol is needed in Purr-data since its a default vanilla obje...PR to add pdcontrol to Purr-data as discussed with Zack and Matt on discord. I've tested build on Win and linux and done testing with attached purr-help-patches. I believe pdcontrol is needed in Purr-data since its a default vanilla object and its absence can hamper portability of patches across them.