-
oid
@Oscillcreate The welcome to the forum thread pinned in the Technical Questions section is actually a thread about the importance of [trigger] and should answer your question.
https://forum.pdpatchrepo.info/topic/13320/welcome-to-the-forum -
oid
@porres A helpfile patch in the docs under 8. topics would probably get slightly more notice and it could also be a style guide/best practices for making helpfiles, maybe toss in a helpfile template in there as well to encourage those best practices.
-
oid
@rph-r [savestate] runs after the abstraction is created and before [loadbang], I used a [loadbang] in the abstraction to load arguments which ends up deleting the [savestate] information. I added a [spigot] after the [loadbang] in the abstraction and any information coming into the right inlet will now disable the [loadbang], I believe this will solve you issue? Assuming I understand the problem, if this does not solve the issue an actual example patch demonstrating the issue would be helpful.
list-store51.pdWe can also make [savestate] happen after the [loadbang];
[del] and [del 0] are not actually zero delay, they delay it one event in the scheduler so makes that list bang after the patches [loadbang] fires. Generally you would not want to use this method and simply fix the abstraction in question, but could be helpful when using an abstraction from a library since your patch will not mysteriously break when you update the library or reinstall. Ideally you will be able to let the maintainer of the library know about the issue and they will fix it, but that is not always possible. -
oid
@gentleclockdivider said:
I wonder , is there also an option to get it into the symbol object by other means and not by writing it as an argument ?
That is essentially what the others do, they just use a message since [symbol] can not construct a symbol, only store a symbol for later use. For most uses the first is generally what you want but the others each have their uses. The second lets you change the $0 with the right inlet of the [f ] which can be useful for communicating between abstractions. The third and fourth offer different ways of constructing the symbol when you have more than two arguments, [pack f s $0] for example, symbol and float can be changed as needed. [list] objects are handy in that they can provide a default set of arguments to start with which can be changed as needed [list $0 dollarzero 1 2 3] for example or generally more useful [list store $0 dollarzero 1 2 3] since it makes it easy to change a single element.
-
oid
@FFW You need to hide the gop and then show it to force redraw, send 0 then 1 to the third argument. You also will want to send [dirty 0( to the canvas or pd will think the canvas has been edited and prompt you asking if you want to save changes.
gop.pd
-
oid
@gentleclockdivider Your symbol should be [symbol $0-miditopitch].
-
oid
@willblackhurst Finally got a chance to finish this up. Got it working as an abstraction and added a few other features for both save and open dialogs. Also has the nice side effect that each instance remembers where in the file system it was when last used so decreases some of the headaches of [openpanel] and [savepanel]. Think I got all the bugs out. Requires [hcs/sys_gui] and a recent enough version of pd to have [file splitname].
spanel_opanel.zip
-
-
oid
@KMETE I did not implement the file playing, just the random file stuff but I think this should do you assuming you are using a somewhat recent pd. Added a toggle to delete the file from the list if you want it to never play the file a second time, wasn't sure if you wanted to avoid repeats or avoid ever playing a file twice.
rnd-file.pd
-
oid
@rph-r You sure it doesn't store like the original? Just redownloaded it and it seems to work for me. The right inlet is just a [send] which sends to all the internal [list store]s right inlets, while that send is also used for the internal logic that internal logic is quite simple and I can not think of a situation where it would fail. Check again and if it still fails redownload to make sure nothing corrupted, if it still fails upload a patch demonstrating the failure so I can fix it.