diff --git a/osu.Game.Rulesets.Mania/Objects/HoldNote.cs b/osu.Game.Rulesets.Mania/Objects/HoldNote.cs
index f72bed3142..103a33ce04 100644
--- a/osu.Game.Rulesets.Mania/Objects/HoldNote.cs
+++ b/osu.Game.Rulesets.Mania/Objects/HoldNote.cs
@@ -50,7 +50,10 @@ namespace osu.Game.Rulesets.Mania.Objects
///
/// The head note of the hold.
///
- public readonly Note Head = new Note();
+ public readonly Note Head = new Note
+ {
+ Samples = new Audio.SampleInfoList()
+ };
///
/// The tail note of the hold.
diff --git a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
index 47c4c4d05c..d960ab6b48 100644
--- a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
+++ b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
@@ -84,24 +84,27 @@ namespace osu.Game.Rulesets.Objects.Drawables
[BackgroundDependencyLoader]
private void load(AudioManager audio)
{
- if (HitObject.SampleControlPoint == null)
- throw new ArgumentNullException(nameof(HitObject.SampleControlPoint), $"{nameof(HitObject)} must always have an attached {nameof(HitObject.SampleControlPoint)}.");
-
- foreach (SampleInfo s in HitObject.Samples)
+ if (HitObject.Samples != null)
{
- SampleInfo localSampleInfo = new SampleInfo
+ if (HitObject.SampleControlPoint == null)
+ throw new ArgumentNullException(nameof(HitObject.SampleControlPoint), $"{nameof(HitObject)} must always have an attached {nameof(HitObject.SampleControlPoint)}.");
+
+ foreach (SampleInfo s in HitObject.Samples)
{
- Bank = s.Bank ?? HitObject.SampleControlPoint.SampleBank,
- Name = s.Name,
- Volume = s.Volume > 0 ? s.Volume : HitObject.SampleControlPoint.SampleVolume
- };
+ SampleInfo localSampleInfo = new SampleInfo
+ {
+ Bank = s.Bank ?? HitObject.SampleControlPoint.SampleBank,
+ Name = s.Name,
+ Volume = s.Volume > 0 ? s.Volume : HitObject.SampleControlPoint.SampleVolume
+ };
- SampleChannel channel = localSampleInfo.GetChannel(audio.Sample);
+ SampleChannel channel = localSampleInfo.GetChannel(audio.Sample);
- if (channel == null)
- continue;
+ if (channel == null)
+ continue;
- Samples.Add(channel);
+ Samples.Add(channel);
+ }
}
}
diff --git a/osu.Game/Rulesets/Objects/HitObject.cs b/osu.Game/Rulesets/Objects/HitObject.cs
index 5ecba7456e..e950516bf4 100644
--- a/osu.Game/Rulesets/Objects/HitObject.cs
+++ b/osu.Game/Rulesets/Objects/HitObject.cs
@@ -32,7 +32,7 @@ namespace osu.Game.Rulesets.Objects
/// and can be treated as the default samples for the hit object.
///
///
- public SampleInfoList Samples = new SampleInfoList();
+ public SampleInfoList Samples;
[JsonIgnore]
public SampleControlPoint SampleControlPoint;