diff --git a/osu.Game/Beatmaps/WorkingBeatmap.cs b/osu.Game/Beatmaps/WorkingBeatmap.cs
index e61ec3f2a8..345220a3a3 100644
--- a/osu.Game/Beatmaps/WorkingBeatmap.cs
+++ b/osu.Game/Beatmaps/WorkingBeatmap.cs
@@ -105,7 +105,14 @@ public void CancelAsyncLoad()
public virtual bool TrackLoaded => track != null;
- public Track LoadTrack() => track = GetBeatmapTrack() ?? GetVirtualTrack(1000);
+ public Track LoadTrack()
+ {
+ // track could be changed, clearing waveform cache
+ waveform = null;
+
+ track = GetBeatmapTrack() ?? GetVirtualTrack(1000);
+ return track;
+ }
public void PrepareTrackForPreview(bool looping, double offsetFromPreviewPoint = 0)
{
@@ -172,12 +179,6 @@ protected Track GetVirtualTrack(double emptyLength = 0)
public Waveform Waveform => waveform ??= GetWaveform();
- ///
- /// Reloads waveform of beatmap's track even if one is already cached.
- ///
- /// Newly loaded waveform.
- public Waveform LoadWaveform() => waveform = GetWaveform();
-
#endregion
#region Beatmap
diff --git a/osu.Game/Screens/Edit/Setup/ResourcesSection.cs b/osu.Game/Screens/Edit/Setup/ResourcesSection.cs
index 36ac9883ba..ca0f50cd34 100644
--- a/osu.Game/Screens/Edit/Setup/ResourcesSection.cs
+++ b/osu.Game/Screens/Edit/Setup/ResourcesSection.cs
@@ -118,7 +118,7 @@ public bool ChangeAudioTrack(FileInfo source)
}
working.Value.Metadata.AudioFile = destination.Name;
- working.Value.LoadWaveform();
+
editorBeatmap.SaveState();
music.ReloadCurrentTrack();