# FMOD Event Waveform Visualization in Unreal Engine Sequencer

**URL:** <https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440>\
**Category:** Unreal Engine\
**Tags:** cpp, ue5\
**Created:** [July 30, 2026, 11:28am UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440 "2026-07-30T11:28:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![pro1ife](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/pro1ife/32/10138_2.png) [@pro1ife](https://qa.fmod.com/u/pro1ife)\
**Post date:** [July 30, 2026, 11:28am UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440/1 "2026-07-30T11:28:46Z")

</div>

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.

> <https://github.com/fmod/fmod-for-unreal/pull/88>
>
> \## Summary
> 
> This contribution adds editor-only waveform visualization for FMOD… Event Control Tracks in Unreal Sequencer.
> 
> The waveform is generated automatically for FMOD Events referenced by Play keys and displayed directly inside the Sequencer section.
> 
> \## Motivation
> 
> Waveform previews are important when synchronizing dialogue and sound effects with animation, camera cuts and other cinematic timing. Standard Unreal audio tracks already provide this visual reference, while FMOD Event Control Tracks currently do not.
> 
> \## Features
> 
> \- Real FMOD Event waveform displayed in Sequencer
> \- Automatic generation without clicking the section
> \- Event name
> \- 2D or 3D status
> \- One-shot or looping status
> \- Event duration in seconds
> \- Stop keys limit the visible waveform range
> \- Duplicate Events are processed once per GUID
> 
> \## Implementation
> 
> Waveforms are generated using a separate editor-only FMOD Studio \`NOSOUND\_NRT\` system.
> 
> A DSP callback reduces the rendered audio to compact mono peak data. Full PCM audio is not stored. Sequencer only reads the cached peak data and renders it through Slate.
> 
> All changes are isolated to \`FMODStudioEditor\`.
> 
> The implementation does not modify normal FMOD runtime playback, Event instances, Play/Stop evaluation, FMOD assets, MovieScene serialization or the runtime FMOD system.
> 
> \## Current limitations
> 
> Waveform generation currently supports finite one-shot Events with a valid duration.
> 
> Looping Events, programmer Events and Events without a valid duration continue to work normally, but do not display a waveform.
> 
> \## Tested with
> 
> \- Unreal Engine 5.7.4
> \- FMOD Studio 2.03.11
> \- Development Editor build
> \- Automatic waveform generation when opening Sequencer
> \- Normal FMOD Play and Stop behavior
> 
> \## Screenshots
> 
> Comparison between a standard Unreal audio track and the FMOD Event Control Track with waveform visualization:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/7/7f39b6c10e076bd68e5afd3816bd56323c85cb1d.png)

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [July 31, 2026, 4:44am UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440/2 "2026-07-31T04:44:46Z")

</div>

Hi,

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

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/0/060ca30c3e4b7caed0960cfbb84450db54ae4aab.png)

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

---

<div class="post-metadata">

**Author:** ![pro1ife](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/pro1ife/32/10138_2.png) [@pro1ife](https://qa.fmod.com/u/pro1ife)\
**Post date:** [July 31, 2026, 2:04pm UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440/3 "2026-07-31T14:04:59Z")

</div>

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.

> <https://github.com/fmod/fmod-for-unreal/pull/88/commits/7e31dd119eb60296f217e196b9f9b2f860f75f06>
>
> This update expands the initial Sequencer waveform implementation with four main… improvements:
> 
> 1. Automatic waveform refresh
> 
> Waveform discovery now reacts when new FMOD tracks or keys are added to an already open Sequencer. Newly added sounds and playback commands generate their waveform automatically, without requiring the Sequencer to be closed and reopened.
> 
> 2. Loop waveform visualization
> 
> Looping FMOD sounds now display a repeated waveform across their playback range. Clear visual separators mark the beginning of each loop cycle, making repeated sections easier to read and edit. A Stop command can be used to define where the loop preview and playback should end.
> 
> 3. Playback from any timeline position
> 
> Starting Sequencer playback from the middle of the timeline now starts the corresponding FMOD sound at the correct internal timeline offset instead of restarting it from the beginning.
> 
> This supports one-shot sounds and simple looping sounds. Scrubbing does not trigger playback, and starting exactly on a Play key continues to use the normal Sequencer playback path.
> 
> 4. Clearer track names
> 
> The previous Event-based naming was ambiguous because the same term was used for both sound selection and playback control.
> 
> The tracks are now displayed as:
> 
> \- Sound Track — selects the FMOD Event asset to use.
> \- Playback Track — controls Play, Stop, and Pause commands.
> 
> The underlying property names, bindings, serialized data, and existing FMOD Event assets remain unchanged.

 ![Screenshot_1](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/6/6fa32b6d4d78d0cca85032a3329771085715cd6e.png)

 ![Screenshot_2](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/a/ad564cc0f359c918c0181a469e1c55b50537c510.png)

 ![Screenshot_3](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/4/49d02aa1fc5602b68f865052eaedc00646d0c786.png)

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [August 5, 2026, 6:10am UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440/4 "2026-08-05T06:10:26Z")

</div>

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

```auto
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](https://github.com/fmod/fmod-for-unreal/pull/88/changes/7e31dd119eb60296f217e196b9f9b2f860f75f06).

Is there something I am missing to include this?

---

<div class="post-metadata">

**Author:** ![pro1ife](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/pro1ife/32/10138_2.png) [@pro1ife](https://qa.fmod.com/u/pro1ife)\
**Post date:** [August 5, 2026, 7:11am UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440/5 "2026-08-05T07:11:57Z")

</div>

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:

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.

---

<div class="post-metadata">

**Author:** ![pro1ife](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/pro1ife/32/10138_2.png) [@pro1ife](https://qa.fmod.com/u/pro1ife)\
**Post date:** [August 7, 2026, 7:01am UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440/6 "2026-08-07T07:01:25Z")

</div>

![image](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/b/b30d96e8cd48b7a1e160825c30433af1641b6d3a.jpeg)

Plugins\FMODStudio\Content\FMODSequencerTools\EUW\_FMODSequencerTools.uasset

> <https://github.com/fmod/fmod-for-unreal/pull/88/commits/1f236674d755f979b2187a7b75bad3498e928b81>
>
> Added an Editor Utility Widget to simplify common FMOD workflows in Sequencer.
> …
> Includes:
> \- create a new FMOD track;
> \- add an Event to the selected track;
> \- add a Stop key;
> \- attach one or multiple FMOD sources to a selected object/component/socket;
> \- optional custom start time/frame;
> \- FMOD folder selection for faster event browsing.
> 
> The tool is editor-only and is intended to reduce repetitive manual Sequencer work without changing normal FMOD runtime behavior.

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.

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [August 13, 2026, 11:34pm UTC](https://qa.fmod.com/t/fmod-event-waveform-visualization-in-unreal-engine-sequencer/24440/7 "2026-08-13T23:34:29Z")

</div>

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!
