-
JJLloyd
@JJLloyd I think in future when writing new abstractions I might include a print object that gives its name and $0 number that is loadbang'ed. Then when a patch loads I will get a list of what abstractions being loaded. I did this just now and it helped with tracking down an annoying error as the console reports the $0 number not the abstraction name.
As an aside another useful tool was opening the abstraction in a text editor and searching for the error using the find option.
-
JJLloyd
@ddw_music + 0.5 then take int is the same as round
You need to scale by power of 10 according to number of decimal points as in the attached
Interestingly it looks like floats get rounded in display to 4 dp anyway ?
-
JJLloyd
Is there a quick way to get a list of all abstractions called within a patch?
Ideally in a recursive way
Thanks
Jim
-
JJLloyd
I guess it was a rather vague and general question, but in reply to myself I think I would now say if I was starting the project again I would plan to develop help patches and abstraction at the same time. Or even write the help patch first which would help to clarify in my mind exactly what I was trying to do and what the inputs / outputs and gui should be (like an advanced specification) - then write the bit of the help patch that would have the testing example. Then write the actual abstraction.
-
JJLloyd
@whale-av Thanks again.
Not sure if I fully understand, but I can see how it works. I have incorporated into my example:
-
JJLloyd
@jancsika I just noticed that when this problem occurs I can save the abstraction and then get the message on the console: "error: couldn't delete the iemgui drag handle!" - not sure if that help?
-
JJLloyd
... and I can't work out how to use a similar method for symbols. In other words how do you use [select] or [route] when the symbol you are trying to select for is the empty symbol? - how is the empty symbol represented?
-
JJLloyd
@whale-av Thanks David - I think I was coming to a similar conclusion. This is fine unless you actually wanted to pass 0 as an argument, but I don't think there is any way around that. See attached
-
JJLloyd
@whale-av Following up on this I have been trying to understand abstractions and arguments better. I have looked at your very helpful tutorial: https://forum.pdpatchrepo.info/topic/9774/pure-data-noob togther with the example at the bottom of that thread. One thing puzzles me though - how do you write an abstraction so that if arguments are omitted in the object box they still have defined default values? What values do $1, $2, $3 etc take when they are not defined in the object box (but appear in the abstraction).
Jim
-
JJLloyd
@whale-av Thanks David
I have been using Purr-data, but just had a look at Pure Data (0.49.0). This does have useful feature under the window menu that shows the open windows with subpatches / abstractions indented. But I can't see any arguments listed.
Purr data doesn't list the open windows - as far as I can see. It would be useful if it did
Jim
-
-
JJLloyd
Further to previous reply here is an example of readsf~ being used with a counter. Its adapted from something I have been working on,
-
JJLloyd
@thisguyPDs [readsf~] sends a bang when the sound file has finished playing - see the helpfile for details
-
JJLloyd
I am new to Pd
I have now written a few patches and when developing /editing them I find myself getting confused between sub-patches and abstractions. When editing a subpatch then only thing letting you know its a subpatch is that on the window heading the title does not have the .pd extension - when you save or save as, it applies to the whole patch. Also any changes only affect the one instance of the subpatch if it occurs multiple times on your patch.
On the other hand changing an abstraction might have unintended consequences in other patches using it, so I tend to keep renaming every-time I edit and end up with multiple versions, which gets confusing.
Is there anyway to make the distinction between a sub-patch and abstractions clearer?
(using Purr data 2.9.0 on Windows 10)
-
JJLloyd
@andresbrocco Yes I guess I am confusing " signal" and "signal with zero amplitude" ? - I suppose it depends on exactly what the original poster wants to do?
Jim
-
JJLloyd
Hi - I'm a beginner here so there's probably a better / simpler way , but this is what I came up with ...
-
JJLloyd
I am new tp Pd, but been working on a project for a few weeks gradually added different bits and learning as I go (the project translates bird song to human language - obviously not really)
Anyway I think I am near the end of this and thinking of the best way to document. I have been inconsistent in how I have placed comments. I wonder whether I should make a help patch for each main abstraction - maybe based on the template provided which describes the function and inlets/oulets. And then have briefer comments within the patch itself clarifying how it works.
Any guidance /tips on good habits / practice would be welcome
Many thanks
Jim
-
JJLloyd
@ingox Many thanks - really useful tip. I think getting clear in the mind about order and hot/cold inlets is critical for new beginners with Pd
Jim
-
JJLloyd
@Balwyn and others
Thanks for your thoughts.
uuumm ... going beyond my knowledge /skill level I think. Don't really understand what tcl is. My aim was just to make the screen with Pd GUI look as neat as possible for an art project. I guess the menu bar is not a big distraction anyway, so I think I will leave it until
there is a simple secure way to do it.Jim
-
JJLloyd
@whale-av Thanks David. I guess the same also applies to the hidden send and receives within GUI objects. These seem neat, although, I think maybe may risk being obscure when code is reviewed at some time after being written.
Jim