GSoC 2024: Sprucing up the Video Sequencer (Weekly Reports)

Hello! My name is John Swenson, and over the summer I’ll be working on various improvements to the video sequencer, including linked strips, preview snapping, and more.

I’ve already implemented a couple changes for VSE, including a patch for snapping to markers and a bugfix for scene strip wireframe display.

You can check out a first draft of the features at my original proposal.

I will also update the proposal going forward based on the community’s thoughts/concerns at this dedicated feedback thread.

I look forward to improving the VSE experience this summer!


May 27 - 31

This week I started on the patch for snapping in the preview, since Aras and I agreed that it’s the least ambiguous feature with respect to UI issues and so would be good to tackle first (still need to figure out a clear design for active channels, which can come later). So far I have UI done, and I’m currently drafting changes to the internals in as simple a manner as possible.

Also submitted a fix for preview overlay polling, which makes it more obvious that preview overlays are disabled for different display types and reorganizes the overlay menu a bit (building on Pablo’s changes)


June 3 - June 7

I’ve been continuing work on snapping for the VSE Preview, and made quite a bit of progress.
In the meantime, I’ve been finding and fixing a few bugs related to snapping:

I plan to land VSE preview snapping next week so that it can be tested before moving on to linked strips (which should be easier to implement)


June 10 - June 14

I have finished writing the code for preview snapping and submitted the patch for review: #122759 - Add snapping in VSE Preview - blender - Blender Projects

Once a build is made, please give it a try and let me know what you think in the feedback thread. : )


June 17 - June 21

This week was mostly code review and changes to the preview snapping patch based on feedback.

I also started planning out a design for linked strips, and will likely have more updates on this in the coming weeks.


June 24 - 28

This week, while continuing linked strips progress, I found and fixed a number of bugs, improving retiming keys:

These fixes are all based on 4.2 and so should be included with the LTS version.

Linked strips functionality is nearly done and I expect to land it by next week.


July 1-5

A rough draft of linked strips is up! #124333 - WIP: VSE: Linked Strips Rough Draft - blender - Blender Projects


The code is not yet ready for review, since there’s still some bugs with icon drawing (unrelated to the PR) that will have to be fixed. Versioning will also need to be updated and I’ll merge main into the branch once everything is tidied up.

Additionally, there are already a couple operators in VSE that use the term “linked” – bpy.ops.sequencer.select_linked() and bpy.ops.sequencer.select_linked_pick().

I’d like further feedback from people on this point-- could we rename the front-facing names for these operators something like “Select Adjacent” and “Select Adjacent Pick”? As I mention in my feedback thread, the ‘select linked’ operators for VSE don’t operate on any kind of linked data, and only select strips that are directly bordering one another on the same channel, so it’s a bit of a misnomer in this case, IMO.

But please give me your thoughts:


July 8 - 12

This week I couldn’t do nearly as much as I wanted to since I was traveling for most of the week. However, I still managed to get some bugs squashed:

Here’s a comparison for the handle selection of adjacent strips now, taken from second PR (in both gifs I am clicking rapidly while moving my mouse cursor across. I have “Tweak Handles” turned off in settings to better demonstrate the bug):

Before After

Also, the consensus is that options to “Link” and “Unlink” strips would clash with the preexisting “link” concept in Blender, so I will be using the terms “Connect” and “Disconnect” strips going forward for that deliverable. GSoC 2024: Sprucing up the Video Sequencer (Feedback) - #44 by fsiddi


July 15 - 19

I’ve submitted a fix for the “strip linked time” option for the sequencer tweak tool. This one’s been broken for a couple years, but it’s enabled in the default keymaps as a ctrl select.

That means that you can now once again use the control key to

  • Select all strips that have the same start and end point
  • Select all handles at the same time

like so:

This is a little like “connected strips” behavior, but is a keymap-configurable option rather than a strip state. Connected strips won’t require a modifier key, will have an icon, and will support selecting offset strips together (e.g. audio slightly delayed or leading)

Connected Strips Update

Connected strips functionality is proving to be more involved than I expected it to be, since selection is quite complex and I want to make sure that the option works in all possible edge cases.
However, I continue to make steady progress towards completion. Will keep you all updated going forward.