Gen Param and initialization?

    Jan 23 2017 | 10:16 pm
    Hi, a question around genExpr "Param" object and initialization - see the attached patcher.
    When opening the patch you will get the message "gen~ * invalid attribute testy" - which I don't expect.
    You will also note that the genexpr Param object 'testy' is not initialized with the gen~ attribute value of 1000, as set in the gen~ object with "@testy 1001".
    However when you change the @testy attribute on the gen~ object, the value is reflected correctly.
    Also if you press the "testy" message, it is reflected correctly.
    So it seems only to fail during initialization - what am I doing wrong?
    "version" : "Version 7.3.1 (340a77a) (32-bit mac)", "platform" : "mac", "arch" : "x86", "osversion" : "Mac OS X Version 10.12.2 x86_64",

    • Jan 25 2017 | 3:37 pm
      My description was a bit clumsy. In short: I have a patch with an gen~ object that should be initialized through the use of attributes, like this:
      gen~ @testy 1001
      Inside the gen~ object there is a codebox declaring "Param testy(100);" in the first line.
      I would expect that when opening the patch containing the gen~ object, that it would just be initialized with the value '1001'. This is exactly what happens while I'm in edit mode - I can modify the value of @testy as I want and the change is reflected in the gen~ output.
      However when I open the patch for the first time, instead i see "gen~ * invalid attribute testy" in the max window. Also the value of @testy is not reflected in the gen~ output then.
      So I'm not sure if this is a bug or by design - but to me the behavior is unexpected. Otherwise there is some initialization order logic that I can't come up with a good way of adressing.
      Can anyone cast some light on this behavior? Thanks :)
    • Jan 25 2017 | 5:10 pm
      You don't declare the attribute in the gen~ object's argument. If you want to declare params in arguments, I think it works in gen~ subpatches, and not in the top-level gen~ object. But I haven't tried it. I do know, if you declare a Param in a codebox, these days you don't need to declare it outside the codebox for it to alias with the external environment, unless the codebox is in a gen~ subpatch.
    • Jan 25 2017 | 10:14 pm
      Thanks Ernest
      I think you would use setparam when communicating to a subpatcher, but I guess that's a bit different scenario than this.
      I just puzzles me that after opening the patch, changing the @testy value directly on the gen~ object does propagate to the codebox. So it seems that it is actually designed for that, but that the initialization order somehow is wrong. How to fix that though I don't know.
      Any other ideas?
    • Jan 25 2017 | 10:22 pm
    • Jan 26 2017 | 2:08 pm
      Thank you for the information. As I say, you dont need both declarations. I wont have anything further to say to you..
    • Jan 26 2017 | 3:55 pm
      np, thanks Ernest.
      Hope someone else in this forum can shed light on this behavior.
    • Jan 26 2017 | 11:03 pm
      Hi there,
      [gen~ @testy 1001] should work in the next update.
    • Jan 27 2017 | 7:24 am
      Awesome!! Thanks Graham.