-
Project
-
the top-level context in which all edit work is done over an
extended period of time. The Project can be saved and re-opened. It is
comprised of the collection of all things the user is working on, it contains
all informations, assets, state and objects to be edited.
-
Session
-
the current in-memory representation of the Project when opened
within an instance of Lumiera. This is an implementation-internal term. For
the GUI and the users POV we should always prefer the term "Project" for the
general concept.
-
Timeline
-
the top level element within the Project. It is visible within a
timeline view in the GUI and represents the effective (resulting)
arrangement of media objects, resolved to a finite time axis, to be rendered
for output or viewed in a Monitor (viewer window). Timeline(s) are top-level
and may not be further combined. A timeline is comprised of:
-
a time axis in abolute time (WIP: not clear if this is an entity or just a
conceptual definition)
-
a PlayController
-
a list of global Pipes representing the possible outputs (master
busses)
-
exactly one top-level Sequence, which in turn may contain further
nested Sequences
-
Timeline View
-
a view in the GUI featuring a given timeline. There might be
multiple views of the same timeline, all sharing the same !PlayController. A
proposed extension is the ability to focus a timeline view to a
sub-Sequence contained within the top-level sequence of the underlying
Timeline. (Intended for editing meta-clips)
-
Sequence
-
A collection of MObjects placed onto a tree of tracks. (this
entity was former named EDL — an alternative name would be
Arrangement ). By means of this placement, the objects could be anchored
relative to each other, relative to external objects, absolute in time.
Placement and routing information can be inherited down the track tree, and
missing information is filled in by configuration rules. This way, a sequence
can connect to the global pipes when used as top-level sequence within a
timeline, or alternatively it can act as a virtual-media when used within a
meta-clip (nested sequence). In the default configuration, a Sequence contains
just a single root track and sends directly to the master busses of the
timeline.
-
Pipe
-
the conceptual building block of the high-level model. It can be
thought of as simple linear processing chain. A stream can be sent to a
pipe, in which case it will be mixed in at the input, and you can plug the
output of a pipe to another destination. Further, effects or processors can be
attached to the pipe. Besides the global pipes (busses) in each Timeline, each
clip automatically creates N pipes (one for each distinct content stream, i.e.
normally N=2, namely video and audio)
-
PlayController
-
coordinating playback, cueing and rewinding of a
PlayheadCursor (or multiple in case there are multiple views and or
monitors), and at the same time directing a render process to deliver the
media data needed for playback. Actually, the implementation of the
PlayController(s) is assumed to live in the backend.
-
RenderTask
-
basically a !PlayController, but collecting output
directly, without moving a !PlayheadCursor (maybe a progress indicator) and
not operating in a timed fashion, but freewheeling or in background mode
-
Monitor/Viewer
-
a viewer window to be attached to a timeline. When attached, a
monitor reflects the state of the timeline’s PlayController, and it attaches
to the timeline’s global pipes by stream-type match, showing video as monitor
image and sending audio to the system audio port (Alsa or Jack). Possible
extensions are for a monitor to be able to attach to probe points within the
render network, to show a second stream as (partial) overlay for comparison,
or to be collapsed to a mere control for sending video to a dedicated monitor
(separate X display or firewire)