{"id":1172,"date":"2026-07-14T14:21:32","date_gmt":"2026-07-14T13:21:32","guid":{"rendered":"https:\/\/werwackfx.com\/?p=1172"},"modified":"2026-07-15T13:06:00","modified_gmt":"2026-07-15T12:06:00","slug":"thoughts-about-sounds-and-storyliner-non-linear-editing-approach","status":"publish","type":"post","link":"https:\/\/werwackfx.com\/?p=1172","title":{"rendered":"Thoughts about sounds and StoryLiner non-linear editing approach"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/werwackfx.com\/storyliner\/doc\/index.html\" data-type=\"link\" data-id=\"https:\/\/werwackfx.com\/storyliner\/doc\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">StoryLiner<\/a>, my Blender add-on, was designed to propose an efficient workflow to create previz and animatics, 2D and 3D. It&#8217;s whole approach is based on a non-linear editing of the shots defined in a Blender scene, this in real-time, directly in the 3D viewport. It works pretty well with images, most of the time it&#8217;s enough at these early steps of production, but when it comes to sound&#8230; That&#8217;s another story, and StoryLiner is not completely ready for this!<br><strong>The goal of these notes here is to share with you, dear StoryLiner users, everything I can think about to provide solutions that could help you in your specific use cases. I also try to see how I can improve the features of StoryLiner in the upcoming versions, including <a href=\"https:\/\/werwackfx.com\/?p=1127\" data-type=\"post\" data-id=\"1127\" target=\"_blank\" rel=\"noreferrer noopener\">V1.7<\/a> which is currently under development.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span class=\"highlight\">Note: this article is still being written<\/span><\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">A linear approach, based on a camera switch during the playback of a scene (that&#8217;s what Blender offers with the camera-markers binding), seems interesting at first but comes with strong constraints on the animation and is quickly limited to explore how the story can be told thanks to the edit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the contrary, 3D non-linear editing has far more flexibility: in particular it is possible to have time ellipses between shots, as well as time overlaps (the same part of the action can be displayed several times from several points of view). In other words it is exactly as if working in an editing software, except that you are not working with video clips but directly with the cameras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But&#8230; 3D non-linear editing comes with some constraints and limitations too, and one of them is about managing the sounds and the music. For example, what if you have a nice non-linear edit in your 3D scene and want to have a continuous soundtrack over it? This is technically not possible to achieve because the play head keeps going forth and back in time whereas the music has to be played linearly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">User expectations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most of the time, when users come to me with that question of how to deal with sounds, what they try to do is to be able to see the final edit &#8211; both in terms of images and sounds &#8211; in real-time in Blender. This saves rendering iterations and time and allows quick fine-tweaking directly in the scene.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are all kinds of use cases, depending on what you try to achieve and at which stage of the production.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examples of use cases:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Voices of characters in a dialog<\/li>\n\n\n\n<li>Music over the whole sequence<\/li>\n\n\n\n<li>Sound associated to a visual 2D FX that is only applied to a shot (such as during the <a href=\"https:\/\/www.youtube.com\/watch?v=JIKUGF5fdmc\" target=\"_blank\" rel=\"noreferrer noopener\">Predator thermal vision<\/a>)<\/li>\n\n\n\n<li>&#8230;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Preliminary tips<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Whatever you want to do at the end, there is one tip I believe is particularly important when using StoryLiner for non-linear editing:<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Make the action in the scene as continuous as possible.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In other words, avoid ellipses in the animation of the scene. You can do ellipses in the edit with the shots because they occur in the time of the edit. But if you have an action that is not continuous, you will have troubles to extend some shots if that&#8217;s needed at edit time. It doesn&#8217;t matter if you don&#8217;t plan to shoot some parts of the action, do a very rough animation there, but at least try to preserve an overall plausible time for the whole action duration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also:<\/p>\n\n\n\n<p class=\"has-text-align-center alignwide wp-block-paragraph\"><strong>Leave some time before starting the action in the scene (so that the first shot will not start at frame 0).<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s often very appreciated, for example, when late in the creation process you need to introduce more animation at the very beginning of the action. Or you need to make your first shot start earlier than expected.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Sound types<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In order to define how to handle the sounds in the scene, it is important to clearly understand, for each sound introduced in the project, how it is related to the action and to the final edit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sounds that are part of the action<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">They are related to the action in a way or an other: the voice of a character speaking, the roar of an engine, the woosh of an explosion, the poc of a glass put on a table&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When shooting an action from different points of view, the sound will match the action for each shot. When placed in the edit, those shots may be cut in such a way that there is some action overlap visible in the edit. So a part of the action can be screened several times. That works pretty well on the image side. But on the sound side, a sound may be cut at the end of a shot and played again &#8211; but earlier &#8211; in the next shot. That&#8217;s&#8230; physically correct. But in terms of perception, that just doesn&#8217;t work, and that&#8217;s why in movies the sound track is deeply reworked at edit time, once the cuts are correctly set up. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sounds that have to be continuous<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s typically the case of a music, or a voice over.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Examples<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Case<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Is part of the action time<\/strong><br>(= in the scene)<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Is part of the shot time<\/strong><br>(= held by the shot)<\/td><td><strong>Is part of the edit time<\/strong><br>(= in the sequence editor)<\/td><\/tr><tr><td>Character voice fitting a shot duration<\/td><td class=\"has-text-align-center\" data-align=\"center\">X<\/td><td class=\"has-text-align-center\" data-align=\"center\"><\/td><td>X (can be done at the edit stage instead)<\/td><\/tr><tr><td>Character voice or dialog lasting longer than a shot<\/td><td class=\"has-text-align-center\" data-align=\"center\">X<\/td><td class=\"has-text-align-center\" data-align=\"center\"><\/td><td>X (can be done at the edit stage instead)<\/td><\/tr><tr><td>Shot-specific sound that has to start with the shot start, not related to what is being recorded from the action<\/td><td class=\"has-text-align-center\" data-align=\"center\"><\/td><td class=\"has-text-align-center\" data-align=\"center\">X<\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Associating sounds with the <span style=\"text-decoration: underline;\">action<\/span> in practice<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Note that <strong>we are talking here only about StoryLiner shots that are of type &#8220;Action&#8221;. <\/strong>Indeed those shots are really made for shooting the animation occurring in the scene.<br>Shots of type &#8220;Storyboard&#8221; are, by design, not related to the action in the scene. They have their own local time reference. Offsetting a Storyboard shot in time will not change its content, that&#8217;s on purpose and that&#8217;s how these shots work. Having a local sound support for those shots is not available at the moment in StoryLiner. <br>See <a href=\"https:\/\/werwackfx.com\/storyliner\/doc\/entities\/shot.html\" target=\"_blank\" rel=\"noreferrer noopener\">Shot documentation<\/a> for more.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sequencer of the current scene<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Turn on the use of the Sequencer in the scene Render-&gt;Post-Processing property section. Then add a Sequencer editor to your current workspace and drag and drop sound clips in the channels. Sound strips are then created, and it&#8217;s pretty easy to place them accurately in time &#8211; which is the time of the action, since with this setup the sequencer content is associated to the scene.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"432\" height=\"113\" src=\"https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-1.png\" alt=\"\" class=\"wp-image-1180\" srcset=\"https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-1.png 432w, https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-1-300x78.png 300w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sound strips are closely associated to the action timing.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sound strips are played independently from the current shot, it is not possible to turn some of them off per shot.<\/li>\n\n\n\n<li>When a time jump occurs during the playback, sounds are sharply cut (which is expected but may not be clean in term of artistic diretion.<\/li>\n\n\n\n<li>Sound strips are not played in the sequencer of the main edit scene.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Speakers added to the scene<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Speakers can be a very interesting solution in some cases. At first, they can appear to be a bit awkward to use, especially when you start looking for a setting to control the start time of the sound. As explained in the <a href=\"https:\/\/docs.blender.org\/manual\/en\/4.0\/render\/output\/audio\/speaker.html\" target=\"_blank\" rel=\"noreferrer noopener\">Speaker documentatio<\/a>n, that start time is in fact controlled by the start time of the NLA sound block.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, most of the time you would not need to use the attenuation, so put its value at 0.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"486\" height=\"505\" src=\"https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image.png\" alt=\"\" class=\"wp-image-1178\" srcset=\"https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image.png 486w, https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-289x300.png 289w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Pros:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sound is a 3D entity belonging to the scene, so strongly associated to the action. When time is added or remove in the action at a global level (what can be done with the <a href=\"https:\/\/werwackfx.com\/storyliner\/doc\/feature-toggles\/retimer.html\" target=\"_blank\" rel=\"noreferrer noopener\">Retimer tool of StoryLiner<\/a>), the NLA block is also offset (internal note: to be confirmed since NLA support is tricky).<\/li>\n\n\n\n<li>Speakers can be placed in collections, those collections can be shown or hidden per shot (but apparently speakers are not turned off when the collection they belong to is disabled&#8230;)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cons:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Speakers are apparently not compatible with the use of a main edit scene in a Sequencer. From what I see, speaker sounds are not always played at the right edit time when the scene strip is moved in the edit. In fact, they seem to be played by the sequencer when the sequencer play head (so in the time of the edit scene) is at the time of the speaker sound (which is in the time of the 3D scene it belongs to, so the offset of the camera strip is not applied to the speaker sound). <\/li>\n\n\n\n<li>Managing many speakers in a scene is not easy.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:54px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">3. Associating sounds with the <span style=\"text-decoration: underline;\">shot local time<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Associating a sound with the time of the shot means that the sound will start relatively to the start time of the shot. If the shot is offset in the scene time, the sound will also be offset and will still start all along with the shot. Basically, it will work as camera background videos work with cameras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When importing a camera background media for the camera of a given shot, it is possible to also import the sound associated to the video. With StoryLiner V1.7 Alpha, it is also possible to import a sound media (mp3, wave), but it&#8217;s more a hack than anything at the moment, and the sound part still has several issues that have to be fixed.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"905\" height=\"539\" src=\"https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-2.png\" alt=\"\" class=\"wp-image-1181\" srcset=\"https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-2.png 905w, https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-2-300x179.png 300w, https:\/\/werwackfx.com\/wp-content\/uploads\/2026\/07\/image-2-768x457.png 768w\" sizes=\"auto, (max-width: 905px) 100vw, 905px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:29px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">See <a href=\"https:\/\/werwackfx.com\/storyliner\/doc\/feature-list\/camera-backgrounds.html\" target=\"_blank\" rel=\"noreferrer noopener\">StoryLiner Camera Backgrounds documentation<\/a>.<\/p>\n\n\n\n<div style=\"height:54px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">4. Using sounds in the final edit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Sequencer of Blender (aka the VSE, for Video Sequence Editor) support strips that are directly related to scene cameras. This is also a way to do non-linear editing in Blender, although not directly in a 3D view. Note that it is not really &#8220;real-time&#8221; since the output display, done in the Preview editor, lags so much that you sometimes wonder if it is usable at all. This said, thanks to some changes introduced in Blender 5, it is now possible to use a 3D view as toe output (mixing 2D and 3D strips is still painful though).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>One important rule to make a global edit that uses cameras from several scenes of the file is that none of those cameras should belong to the same scene as this edit. <\/strong>In other words, this edit must be done in a dedicated scene with no 3D content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In an upcoming StoryLiner V1.7 release, I will introduced, as part of the Experimental Features (so only available with the Studio edition) a module called StoryLiner Video Tracks. It is a set of tools lying in the Sequencer editor that considerably extend the editing capabilities of this environment. One feature is particularly interesting in our case here, it is the ability to import StoryLiner edits done in the scenes of the file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">More to come soon&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>StoryLiner, my Blender add-on, was designed to propose an efficient workflow to create previz and animatics, 2D and 3D. It&#8217;s whole approach is based on a non-linear editing of the shots defined in a Blender scene, this in real-time, directly in the 3D viewport. It works pretty well with images, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[3,8],"tags":[15,20,16,4,18,17,19,14],"post_folder":[],"class_list":["post-1172","post","type-post","status-publish","format-standard","hentry","category-blender","category-storyliner","tag-3d","tag-b3d","tag-beta","tag-blender","tag-previs","tag-previz","tag-storyboard","tag-storyliner"],"_links":{"self":[{"href":"https:\/\/werwackfx.com\/index.php?rest_route=\/wp\/v2\/posts\/1172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/werwackfx.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/werwackfx.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/werwackfx.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/werwackfx.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1172"}],"version-history":[{"count":12,"href":"https:\/\/werwackfx.com\/index.php?rest_route=\/wp\/v2\/posts\/1172\/revisions"}],"predecessor-version":[{"id":1191,"href":"https:\/\/werwackfx.com\/index.php?rest_route=\/wp\/v2\/posts\/1172\/revisions\/1191"}],"wp:attachment":[{"href":"https:\/\/werwackfx.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/werwackfx.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/werwackfx.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1172"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/werwackfx.com\/index.php?rest_route=%2Fwp%2Fv2%2Fpost_folder&post=1172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}