FMOD Event Waveform Visualization in Unreal Engine Sequencer

,

Hi FMOD team,

I recently joined a project as a cinematic artist and was asked to use FMOD for all audio work. I was surprised that FMOD Event Control Tracks in Unreal Sequencer do not show any waveform preview.

For cinematic work, this is especially important for placing dialogue and sound effects accurately against animation, camera cuts and timing.

I created an editor-only implementation that displays a real FMOD Event waveform directly in Sequencer. I also added the Event name, 2D/3D status, one-shot/looping status and duration in seconds.

The implementation uses a separate NOSOUND_NRT FMOD system and does not affect runtime playback, FMOD Play/Stop, assets or packaged builds.

It was developed and tested with Unreal Engine 5.7.4 and FMOD 2.03.11. I have attached a comparison screenshot with a standard Unreal audio track.

I would be happy to share the code or submit a pull request. Please let me know which repository branch and contribution method you would prefer.

Hi,

Thanks for the PR, I have added it to a test project and I am not getting the wave forms to show

Is there something I might be missing to get it to work?

Hi Connor,

Thanks for testing this. The issue was in the initial version: waveform discovery did not update when new FMOD tracks or keys were added to an already open Sequencer.

I originally developed and tested it using an existing Sequence where the FMOD sounds and playback keys had already been placed, so I missed this workflow.

This has now been fixed. The waveform is generated automatically when a new sound or playback track/key is added, without reopening Sequencer.

Compared with the initial version, I made four main improvements:

  • Adding new FMOD audio tracks or keys now refreshes the waveform immediately.
  • Looping sounds are now supported, including repeated waveform visualization and clear loop-cycle separators.
  • Sequencer playback can now start FMOD audio from any timeline cursor position instead of always restarting the sound from the beginning.
  • The confusing Sequencer track names were updated: the sound-selection track is now called Sound Track, and the Play/Stop/Pause control track is now called Playback Track.

The intended setup is:

  1. Expand the bound FMODAudioComponent in Sequencer.
  2. Add a Sound Track.
  3. Add a Playback Track.
  4. Add a key to the Sound Track and select the required FMOD Event asset.
  5. Add a Play command to the Playback Track at the frame where the sound should begin.

A Stop command is optional. It can be used to cut playback before the sound ends naturally, and it is also useful for defining where a looping sound should stop.

Several different sounds can be placed sequentially on the same FMOD Audio Component, as before. Each sound should have its own corresponding Play command.

I have attached screenshots showing the setup and updated the pull request with these changes.

Thank you for the update, testing the latest changes I am getting

Severity	Code	Description	Project	File	Line	Suppression State	Details
Error (active)	E1696	cannot open source file "LevelSequenceEditorBlueprintLibrary.h"	UE5_7	PROJECT\Plugins\FMODStudio\Source\FMODStudio\Private\FMODAudioComponent.cpp	20		

From commit 7e31dd119eb60296f217e196b9f9b2f860f75f06.

Is there something I am missing to include this?

Thanks for reporting this. I checked the current version of the code and the include is intentional: LevelSequenceEditorBlueprintLibrary.h is used for ULevelSequenceEditorBlueprintLibrary::IsPlaying() and is wrapped in #if WITH_EDITOR.

FMODStudio.Build.cs also already adds LevelSequenceEditor inside the Target.bBuildEditor block, so the module dependency should be correct.

Since the error is shown as Error (active) E1696, this may be a Visual Studio IntelliSense issue rather than an actual Unreal Build Tool compile failure.

Could you please:

  1. Confirm that your FMODStudio.Build.cs contains:
    PrivateDependencyModuleNames.Add("LevelSequenceEditor");
    inside if (Target.bBuildEditor == true).

  2. Regenerate the Visual Studio project files after updating the plugin.

  3. Build your Editor target through Unreal Build Tool and let me know whether it:

    • succeeds while Visual Studio still shows E1696, or
    • fails with a real C1083 error.

If UBT succeeds, the code and dependency are working and Visual Studio likely has stale IntelliSense data. If UBT fails, please send the first full C1083 error and the editor dependency section from FMODStudio.Build.cs, so I can compare your setup with mine.

Plugins\FMODStudio\Content\FMODSequencerTools\EUW_FMODSequencerTools.uasset

I also added a small Editor Utility Widget to make the most common FMOD workflows in Unreal Sequencer faster and less repetitive.

The widget is included directly in the FMOD plugin content, so it can be opened and used without setting up additional project-specific tools.

Main functionality:

  • Custom Start Time / Frame β€” optionally specify the exact frame or time in seconds where the FMOD Event should start.

  • Add New β€” creates a new FMOD object/track in the current Sequencer and adds the selected Event.

  • Add to Selected β€” adds another FMOD Event to an already existing selected FMOD track.

  • Stop Key β€” adds a Stop key at the current Sequencer playhead position, useful for trimming/stopping an Event at a specific point.

  • Attach β€” attaches one or multiple selected FMOD sources to a selected Sequencer object. It supports Actor Components, Skeletal Mesh sockets/bones and root attachment. Batch attachment is supported as well.

  • Select FMOD Folder β€” selects a folder containing FMOD Events and shows only the Events from that folder in the widget, which makes working with large FMOD projects much faster.

  • Name Filter β€” quickly filters the displayed Events by name.

  • Refresh β€” reloads the Event list when FMOD content changes.

The Attach workflow also includes validation to avoid invalid selections, attachment cycles and conflicting existing Attach sections. If one of the selected FMOD objects is already attached, the tool shows a message with the affected objects instead of silently changing the Sequencer data.

The implementation is editor-only and lives inside the FMODStudio plugin. It does not change normal FMOD runtime playback, UFMODAudioComponent, banks, event loading or packaged builds.

The goal is simply to reduce the amount of repetitive manual work required when authoring FMOD Events in Sequencer, especially for cinematic sequences with many sounds.

Awesome work! I was able to get that up and running in my project.

I will pass this onto a dev to inestigate further. We can keep this thread open for others who are looking for a similar solution.

Thank you again for taking the time to work on this feature and we greatly appriciate your work!