Synth Sample Player issues in 4.17

Strange thing - after we upgraded to 4.17, everything worked fine…except for the Synth Sample Player component. All the graphics, MIDI processing, Modular Synth components, all fine; but the synth sample player doesn’t fire off any samples.

No errors or warnings, although it reports a sound wave duration of 0.0 after the sound wave has been loaded. I thought maybe I’d need to reimport the WAV assets that’d been imported under 4.16, but that didn’t help. Nor does activating in the construction graph rather than the event graph.

Disclosure: we’re using a slightly custom version of the Synthesis plugin (just to extend the ModularPresetBank, currently), but I saw this behaviour in both our custom version and the official version when testing in a separate, fresh, barebones 4.17 project.

Anybody else noticed this?

Still no luck getting Synth Sample Player to produce any audio in 4.17. Ultimately I want to be able to ask our lead programmer to customise it to produce an event on loop restarts, and maybe some kind of BPM pulse event to keep synthesised music sequences in sync, but I can’t propose that investment of effort until I can get Synth Sample Player to play samples properly.

I’m exploring good ol’ Sound Cues as a fallback, but there seem to be similar limitations in terms of using it for synchronising short musical loops, as well as the same amount of BP logic required to set up note->pitch/bpm/etc stuff as with the Sample Player.

I feel like Sample Player is a better fit for us, and gives us more scope for C++ customisation than Sound Cues, but this mysterious bug is presenting quite the obstacle… If anyone has any suggestions, or similar experience, I’d be grateful to hear about it!

Hello echolevel,

I’m personally not familiar with using the Synth Sample Player but we would like to look into getting a bug report in for this. Can you please make an Answerhub post in the Bug Reports section with a detailed reproduction case? If it can be done from a fresh project (even if it involves converting) that would be helpful. If you make an Answerhub post, please post a link to it here so I can immediately take a look.

  • thanks for the reply, but I’ve just this minute solved it! Well, sort of.

It works when the precise order is e.g. BeginPlay -> Activate -> Set Sound Wave -> Start

Previously, Set Sound Wave wasn’t necessary if your component had the sound wave set in the Details tab under Synth>Preset. You could set up the component with a sound wave and auto activation enabled, then all you’d need to do in the Blueprint was execute a Start.

So perhaps it was less strict in 4.16 than it should have been, or maybe it’s stricter now - but I feel like the old behaviour was more intuitive and Set Sound Wave was there in case you wanted to change your sound wave later on.

Whether or not it’s a bug depends on your perspective, I suppose :wink: As long as it’s known, and ends up in the documentation further down the line, it’s not a showstopper - but it would be nice to know whether it was intentional in case it gets ‘fixed’ later and I have to change my logic.

Thanks!

I fixed some serious issues with this for 4.17 and I may have accidentally made it more strict. I’d have to dig into it more to remember exactly what went down. But if I recall, there was a flaw with the sample player that prevented multiplicities of the same sample player from playing in one map.

Ah, thanks for the background info! The extra strictness is no problem (forces my BP logic to be a bit clearer to understand later on, which is no bad thing), and I guess even if the behaviour did revert in future, it wouldn’t affect any code that’d been changed to what I outlined above - my panic about that was a little unnecessary :slight_smile:

I won’t post a bug report unless you’d like me to; anyone who wonders the same thing will probably find this thread when they search for it.

Cheers!