What the hell does this mean ?

Discussion in 'REAKTOR' started by cookiemonster, Jun 19, 2006.

Thread Status:
Not open for further replies.
  1. cookiemonster

    cookiemonster NI Product Owner

    Hello out there,
    instead of continueing my ensemble-work I spent the last two days thinking about why the .... this mysterious thing occurs:

    The attached little example ensemble reconstructs the problem:

    From the few possibilities to change the status of a Core object I normally choose this one:
    "1" activates it.
    "0" deactivates it.

    When you open the CoreCell and the "????"-Macro, which is the one of interest, you will see two "buses", one including an ILatch, one including the "inner life" of an ILatch (forget about the other inputs, these are relicts from the structure which I am working on - so I set them to "0").
    Both are connected to the same constant "0".
    So they should show the same behaviour.
    If you look at at the two CoreSonde-GUIs ( this is no advertising thread ) you see that they don´t.

    Pushing the central button sends a "1" (activate). One second later this thing should be deactivated by automatically generating an "0".
    But - in only one case this works !!

    Even more weard:
    If I activate the DebugMode after a GeneralReset and put the cursor over the wire coming from the ReadModule the Quickbubble shows me a "1" !!
    What I am expecting is a "0" as the content of OBCs is set to "0" after a GeneralReset.

    And besides:
    Normally I choose the "inner life" variante and everything is fine.
    Two days ago I mentioned this strange thing for the first time.

    I think that this is a too basic thing to turn out as a PC-Mac-thingy like there is often one in Reaktor, - although - Herwig, who is running a Mac tried a similar example ensemble with again different, strange results.
    So - is there a wise person out there who can save me from getting mentally ill ?

    All the best, Gerald.

    Attached Files:

  2. lxint

    lxint NI Product Owner

    very strange -
  3. Justin C

    Justin C NI Product Owner

    I too thought it was strange, but did not want to also lose 2 days on it
    : ^)

    I tried it on a G4, the result was not 1, but 2^24.

    At the moment, I'd guess it has something to do with Integer and/or init. If any module in the path is float or if 1 more object is added as Int it works as expected. In this case it would be the ILatch Macro terminals that allow this behaviour to function as that object.

    It's good to know this happens.

  4. lxint

    lxint NI Product Owner

    can you give an ( other ) example ? I tried to replace the quick-constant 0 with a constant module ( set to float ) but this didnt change the behaviour - maybe it needs to pass a macro port ? and what other Int object did you insert - another read/write ?
  5. Justin C

    Justin C NI Product Owner

    lxint, I think you are speaking to me.

    If the merge or Read+Write are float it resolves itself.

    Or if you place anything downstream, Int or float it resolves itself. In the case of the ILatch, the terminals could serve that purpose.

    Here, inserting an add module between read and merge resolved it.

    The consant will not resolve it. Here, The behaviour in this regard is identical to yours.

  6. lxint

    lxint NI Product Owner

    yes, thanks
  7. herw

    herw NI Product Owner

    i have made experiments on my mac and discussed in the Deutsches Reaktor Forum (there is a download file too).
    Yes on mac you get 2^24=16777216. Try other constants for the memory especcially constants greater than 2^24!
    If you remove one of the merge modules you get the result you expect.
    My opinion is that the merge module extends for a moment the bus to differentiate the case of events at the same time on top and bottom. The debug mode shows only one of them or perhaps only a code which you don't have to interpret as a value.
    If you shift the definition of the constant outside to primary level you get the results you expect.
    So the debug mode only shows a code from which following modules choose the right value.
    Another simple trick to get the right values is to add a latch module behind the merge with inputs only from the merge's output.

    ciao herw
  8. cookiemonster

    cookiemonster NI Product Owner

    I think there are two different things that should not get mixed.

    The Quickbubbles are the only "onboard" means for debugging. The help they offer is limited anyway - but I´d never have expected them to show a value which is definetly wrong. Sorry, a "0" is a "0" and not a "1" or 2^24.
    If their information is wrong but the right value is processed it doesn´t destroy the structure but of course it is really annoying.
    This is what the example ensemble downloadable from the "Deutsches Reaktor Forum" does.

    The behaviour of the Read/Write-connection in WhatTheHell.zip means a contradiction to the manual (CoreTutorial p.68 !) like it can´t be stronger at all.
    This is not a bug. This is a faulty behaviour of an absolutely basic implementation.
    I mean, if I can´t rely on such what can I rely on anyway ?

    Don´t get me wrong. Reaktor is the only love-at-first-sight in my life that hasn´t cooled down after some weeks.
    After years I still am really grateful for this means that enables me to build the application that I want.
    But now I also remember structures that I have thrown away and built again from scratch blaming my limited brain for being unable to handle its´ complexity.
    Maybe everything was o.k. with them.

    Core is out for more than a year now. That should be time enough for checking even more than the basic implementations and to hint at certain inconsistencies so that users are not led onto a wrong path.

    I am really disappointed (for the first time). All the best, Gerald.
Thread Status:
Not open for further replies.