Distinction between Designtime and Runtime versions of Factories

Designtime Factories

A Designtime Factory is a Factory that you can chage, delete, create, load and save to a file. The Nodes of these Factories are always grey. Factory-outputs and Node-inputs can have Default values or waves.

Runtime Factories

A Runtime Factory is a sort of a copy of a certain Designtime Factory. You cannot make changes to Runtime Factories. All factory inputs and -outputs and node-inputs and -outputs can have values and waves. The nodes of a Runtime Factory have one of the flowwing states:
  1. Not run: node is blue
  2. Running: node is yellow
  3. Runned succesfully: node is green
  4. Runned into an arror: node is red

After running the Factory, you can read the values of all inputs and outputs. When an input or output has a wave, you can play it, copy into a Wave Window, or delete the wave.

The Dynamics of a Factory

Create Runtime versions of a Designtime version of a Factory

Before running a choosen (Designtime) Factory, a Runtime version must be created before. This is the case when you choose to run a selected Factory, but also when a Factory inside another Factory is activated automatically. The newly created Runtime Factory is a sort of copy of the Designtime Factory.

The process of running a Runtime version of a Factory

Connections

A Connection is an arrow from a Source to a Target. A Source is a Factory Input or a Node Output. A Source can have multiple connections. A Target is a Factory Output or a Node Input. A Target can have at most one connection. When a Target has no connection it is undefines (has no Value), or has an Value. That Value is already defined at Designtime (The Designtime version of the Factory

Doing a "pull"

A pull is done by a certain Target:
  1. a Factory Output controlled by the system that use the Factory, or
  2. a Node Input controlled by the Node
A Target "wants" a Value or a Wave, so it pulls using the Connection, so the corresponding Source must deliver a Value of a Wave.
When the Source is a Factory Input, a Value or a Wave is already present (or is undefined) so the Target get the Value of Wave immediately (or it gets nothing).
When the Source is a Node Output, The node must running one time before it can deliver Values and or Wave to all Outputs of the Node. Then the Value or a Wave is delivered to the Target. When an Output of this Node is pulled another time, the Value of Wave is delivered immediatly without running the Node for a second time.

The whole cycle of running a Factory

The goal of running a Factory is that all outputs of that factory gets a Value or a Wave. Every Factor Output, having a connection, of the factory will do a "pull", one-by-one. There are execeptions, it is explained later.
When a connection is connected to an Output of a Node, that node is triggered and when that Node has Inputs, it will pull at every Input one-by-one until all Inputs are evaluted. At that time the Node in doing his thing (such a change the volume of the incoming Wave. All Outputs of the Node are evaluated, and the control goes to the other side of the connection.


Last updated: 12-11-2025