-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Override NRCS Data in the Sofie GUI #1121
Comments
Thank you for submitting this RFC! The Sofie Team thinks that this is a very interesting idea, it is something we've been discussing internally before as well. This type of change would likely affect a fairly large chunk of the ingest logic in Sofie, therefore we think that several workshops would be needed to make an implementation plan, to ensure we come up with something that works well and is sustainable. We propose a first workshop on Monday, January 22nd at 14:00 CET (13:00 GMT), where we can discuss the use cases and possible solutions. Agenda, Workshop 1
If anyone else wishes to join the workshop, pleas email me at johan.nyman@nrk.no |
Great to finally see our brand name in lights @hummelstrand - it's been a long-time coming (thinking back to those open CasparCG sessions in Birmingham and London in the previous decade!) |
Hi - just joining this thread. Great meeting today, thanks all. |
Meeting notes, Workshop January 22ndUse casesWe discussed and listed various possible use cases Editing Pieces
Editing Parts
Creating new content
Editing the rundown
Initial Architectural thoughtsA VERY short discussion on possible solutions. “Editing the Next PartInstance”Easy implementation, but very limited useability, might be a short term solution? “Instantiate the whole Rundown as PartInstances”Hard to envision how it could work? Likely a dead end? “Add manipulation stage(s) to the ingest data flow”A large addition to the data flow. “Rework the ingest data flow to have fine grained reactions to every NRCS update”A complete change in how we take in updates. “Write back changes to the NRCS”Keeps the "single source of truth". Other notes from the discussions
Next workshopAnother workshop is planned for Monday, January 29th at 14:00 CET (13:00 GMT). In preparation for next workshopBBC and NRK will rank the use cases from blocker → important → later → not important Agenda:
If anyone else wishes to join the series of workshops, please email me at johan.nyman@nrk.no |
Meeting notes, Workshop January 29thUse case prioritizationsBBC's priorities are
It was noted that side-effects (ie a mic fader changes due to a changed camera) are likely to happen in all relevant use cases. MOS PluginDiscussion on the subject of MOS Plugin support in Sofie to edit for example gfx Pieces.
Implementation optionsWe discussed briefly the options brought up last week.
seems to be the most feasible to continue thinking about. The other options where discarded. It was noted that there is a high likelihood that the implementation affects the implementation planned in #1126 . Care should be taken to coordinate implementation efforts. Technical workshopWe concluded that the next step is to have an in-depth technical workshop on designing the architectural structures. Questions to be answered by the technical workshop:
The technical workshop will be held this week, joined by @nytamin, @PeterC89, @Julusian, @mint-dewit and @jstarpl . Next workshopAnother workshop is planned for Agenda:
If anyone else wishes to join the series of workshops, please email me at johan.nyman@nrk.no |
Note: The next workshop is moved to Thursday, February 8th at 14:00 CET (13:00 GMT), to give the technical workshop group time to finish up. If anyone else wishes to join the series of workshops, please email me at johan.nyman@nrk.no |
Meeting notes, Workshop February 8thPresentation from the technical workshop groupA series of technical workshops have been held during the past week, which have resulted in the following proposal (presented by @mint-dewit and @Julusian on behalf of BBC). How Sofie works right now
Our proposalWe propose to add a second stage on the ingest side, and add a new Blueprint method which can selectively choose how to update the
Note: The With this proposal, the Blueprints will now have full control of the rundown data and have the ability to e.g. split stories into segments, reject updates or insert data freely. This change will be backwards compatible, as there can be implemented a simple fallback blueprint method with the functionality of simply "accept all data from the NRCS, and split stories into segments using the Blueprint helpersIn order to make it easier to write blueprints, we propose that we eventually add a few "helper function", to be used by the blueprints for common operations such as "basic editing of properties", "move a Part", "invert change/undo/redo". Not needed initially though. User ActionsBlueprints will now be able to define user-edit-action manifests on Parts and Pieces, allowing the Sofie GUI to provide the user with editing capabilities to match. The exact types of user-edit-actions and their UX is not handled in this RFC, but some potental ones are:
When a user makes an user-edit-action, the result is sent into 1.d step above, and so the Part will be regenerated downstream. Future
Questions
Next stepsWe consider the discussions on this RFC to be concluded for now. If anyone else have any opinions or questions regarding this, feel free to post questions in this thread, or contact me at johan.nyman@nrk.no. |
This branch has the basic proposed implementation: |
Thanks for the update! If anyone else wishes to join the workshop, please email me at johan.nyman@nrk.no |
I have opened up a new RFC for the UI/UX of the Overrides. |
Closing this RFC as concluded. This will be handled in the PR #1293 |
About me
This RFC is posted by SuperFly.tv on behalf of the BBC.
Use case
Background
Traditionally, the end users have not been able to modify or override any aspects of the rundown data. On behalf of the BBC, SuperFly.tv would like to add the ability for the GUI to modify aspects of the data coming from the NRCS. The initial set of features that we would like to add to Sofie can be described by the following four use cases, but we believe these need to be discussed with vested parties in order to find an optimal implementation strategy.
For this discussion, the term "override" will be used to indicate any data that doesn't have it's origin in the NRCS.
Use Case 1 – Editing Piece/Part/Segment Parameters
As a user I want to be able to interact with pieces/parts/segments in the GUI and override the following parameters:
Source Layer parameters
Timing parameters:
Start or end (the piece boundaries, editable by grabbing and dragging handles on either end of the piece).
Both start and end at the same time (preferably with a drag handle on the actual pieces).
In/out (for VT's and other types where the piece boundaries might not be identical to the content's in/outpoints). One UX idea here is to be able to set in/out point of a VT by marking them while hover-scrubbing.
Source Layer type (example: from a Camera to an AUX)
Mapping (example: Change Camera 1 to Camera 3). For certain types such as VTs, this will need to include a browser with search and filtering of some sort.
Setting the piece as one of Sofie's infinite types.
Deletion of a piece and possible even a part or segment.
Move piece to another part (either within the same segment, or freely using drag-handle).
The GUI for this will most likely be handles on the pieces in the views, in combination with some sort of Inspector panel that should probably live in the right Side Bar.
Upon push of MOS data from NRCS (e.g. due to the user saving the story) GUI-modified pieces and parts should revert to the NRCS version.
Options per source layer type should be configured via blueprints and be customisable per part / piece.
Use Case 1-specific Discussion Points
How does Sofie connect to and display the sources for parameters such as VTs which might be a list of thousands of results?
Should it be possible to multi-select and edit parameters of multiple items at once?
The current model for the Sofie GUI interaction is that you can't really change anything, so how do we avoid that a user inadvertently changes order and placement of pieces just by scrolling or moving the cursor of the GUI?
Could Duplication be a useful operation?
Use Case 2 – Locking Pieces/Parts/Segments
As a user I want to be able to prevent NRCS updates to selected pieces/parts/segments.
Where updates have been made to pieces or parts by manipulating them on the GUI, they should revert to the NRCS version upon a push of MOS data. This is desired behaviour, except sometimes during busy moments where the Sofie operator may have updated elements on the GUI, whilst the journalist is also resaving presenter scripts. We need a way for the operator to 'lock this element from NRCS update' and in doing this for the locked piece, part or segment to hold it's new/updated status, and to not revert to reflect the NRCS page upon a push of MOS data.
Locked items need to have their locked status displayed somehow, and their lock state needs to be editable in the GUI, most likely via the aforementioned Inspector panel.
Use Case 2-specific Discussion Points
Use Case 3 – Create Pieces from MOS Plugin
As a user I want to be able to add a new piece in a Sofie playlist/rundown by dragging it from a MOS-plugin directly into the Sofie GUI.
Use Case 3-specific Discussion Points
As the GUI needs to give the user a good understanding of where the new piece will be created -- possibly including giving a preview of the duration of the new piece influences the existing parts.
Just like with the other use cases; how are updates from the NRCS handled when the segment is floated/unfloated?
Should it be possible to create new parts and/or segments, or only to add to an existing part?
What about replacing one piece with the new piece? If that is possible, are there any parameters of the old piece that should be retained, for example duration?
General Override Discussion Points
Where would these overrides be stored in Sofie, and how would the data model need to be changed?
What current assumptions in Sofie need to be revisited if we abandon the "NRCS is King" model?
Could overrides be limited to Sofie instances, and could/should we instance the entire playlist? If implemented for only the current and Next part, the implications and development time might be significantly lower.
How are overrides they persisted?
Is write-back to the NRCS something to consider, either short-term or long-term?
Could copy/cut/paste be an alternative to drag-and-drop?
How to handle dragging items where the target is not visible within the current viewport?
Should there be a way for a user to see if any overrides have been applied to a playlist? If so, would that be shown in the Lobby view, too?
How does a user cancel/remove all overrides to go back to a playlist that reflects only the data originating from the NRCS?
Proposal
We would like to initiate a discussion around these topics in order to be able to assess the amount of work required.
Process
The Sofie Team will evaluate this RFC and open up a discussion about it, usually within a week.
The text was updated successfully, but these errors were encountered: