Process. Association of a curve and an address, it represents a remote value as function of time. Each segment can have is own style (linear, exponential, …) .
Minimal element of a device, it’s a particular node that correspond to a remote variable. An address can be :
- write only (message)
- read only
- read and write (parameter)
other settings are available, some are depending of the protocol used.
Boolean expression carried by an event. Default is TRUE. When a timenode is launched, we check the conditions of all of its events. For each, if True, the states of the event are launched, else they are disposed.
Non-punctual temporal object. It forces chronology between two states, by setting a min and a max duration to wait between the execution of the states. It can contain processes.
About processes : The constraint is a local time master : launch processes, can force them to stop. At each tick of his own clock, constraint ask processes for their states.
About duration :
- When min = max, we talk about rigid constraint (as in previous image). Otherway it’s flexible.
- min can be null, max inifinite
- In i-score there’s a default duration, used for displayed purpose AND for ‘play from here’ feature
We name ‘Device’ a remote object represented by list of readable/writable/listenable parameters. Example : a Max/MSP patch, a MIDI instrument. We represent a device as a tree of node that can be addresses.
Punctual object, it contains a group of states (at least one) sharing a same condition. It’s carried by a timenode.
Panel containing device information. It shows the addresses as a tree, and columns contain settings for each one.
Constraint view model. Useful for edition when using hierarchical scenarios.
Panel containing information about the selected objects.
One of the supported protocol. Looks like OSC with a query system. More on github.
Minimal element of a device, it can have one (and only one) address. Other way, it should have child(ren). A node can have both children and an address.
One of the supported protocol. Ask the Internet for more.
A temporal element contained in a constraint. Some processes are already existing (like scenario, automation, JS) but more will come in the future.
Process View Model
In the future processes could have many kind of view, like a temporal and a logical view for a scenario. For now, there’s only one.
Process View are displayed in a slot.
Graphical element that contains one or many slots (one below the others), attached to a constraint.
The base. It’s the main process of i-score. It contains a temporal structure, made by states, events, constraints and timenodes.
The execution begin by launching a start Timenode. Then there is a propagation : the next constraints are played, ending by launching new timenodes and so on. It means that a timenode without previous constraint will never be played in execution.
Punctual object, it contains messages that will be send when the state is played. It’s a part of an event. It can have an only previous constraint and an only next constraint. Launching a state mean launching its next constraint.
Graphical element that contains one or many process views stacked, allowing to edit the topmost one. A slot is a part of a Rack.
Punctual object, it contains at least one event. Its exact date is not known on edition time, but it has an interval of possible date, depending of its previous contraints. In particular case of only rigid constraints, we can predict this date. Otherwise, we have to wait the execution. When the exact date is known and reach, the timenode stop the previous constraints and it launches the check of all conditions of his events.
It can be interactive with a trigger.
Boolean expression that can be carried by a timenode. When the timenode is in its interval of availability, this expression is checked each tick. When true, the timenode is launched : it’s date is fixed and his events are launched (depending on their own conditions).
A trigger without given boolean expression is TRUE.