Page 1 of 1

mem connector anomoly / bus modules

PostPosted: Sat Feb 17, 2018 7:21 pm
by HughBanton
I discovered two useful (?) things today, totally unconnected ...

1) I was 're-wiring' my current project and noticed that I had accidentally disconnected a Mem>Mem link half an hour earlier. But to my amazement everything was still working normally! Whaaat?? However if I save the project like that and then reload it then, unsurprisingly, all is dead.

From which I conclude that a Mem connectors simply passes an address, rather than any data, and so even if you break the link this address is retained and hence things keep working. Anyone know if that's so?


2) The manual doesn't tell you, but the Bus Create and Bus Extract modules can use a Text module instead of a String (which needs all those commas) to specify the channel names.

As per the attached. It's a much easier way to enter & edit the channel names.

Only trivial I know, but every little helps!

H

Re: mem connector anomoly / bus modules

PostPosted: Sat Feb 17, 2018 8:49 pm
by KG_is_back
HughBanton wrote:1) I was 're-wiring' my current project and noticed that I had accidentally disconnected a Mem>Mem link half an hour earlier. But to my amazement everything was still working normally! Whaaat?? However if I save the project like that and then reload it then, unsurprisingly, all is dead.

From which I conclude that a Mem connectors simply passes an address, rather than any data, and so even if you break the link this address is retained and hence things keep working. Anyone know if that's so?


yes, mem connectors carry only the address, size in bytes and number of channels. They are rather buggy, so the behaviour you describe isn't all that surprising. What the mem connector does, it carries a trigger. When the mem changes it passes a trigger that causes streams to recompile, when it hits wave read prim. The address, number of channels and size actually gets hard-coded into the stream's code as literal values. You can see this by attaching analyser prim to wave read prim and inspect the code output.
HughBanton wrote:2) The manual doesn't tell you, but the Bus Create and Bus Extract modules can use a Text module instead of a String (which needs all those commas) to specify the channel names.

As per the attached. It's a much easier way to enter & edit the channel names.

Nearly all prims accept both text component and string. In fact, the only difference between them is that text field allows newline character while string doesn't. Most prims are smart enough to interpret newline the same way they interpret comma.