Event play cuts off sharply despite async

This is the setup. All the events have similar properties to the selected one. What I’m trying to do is loop between the various songs with the fade-in and fade-out from the AHDSR curves, and if I just let this play in Unity it works fine.

tracks.setTimelinePosition(milliseconds);

In Unity I use this code to change the timeline cursor’s position to the Song 1, Song 2, Song 3, etc, markers, to force a song change outside the already present logic.

When I do this, the release of the AHDSR does NOT play, and instead of a nice fade-out I get a jarring cut. What am I doing wrong?

Hi,

Thank you for the screenshot and the information.

Rather than using tracks.setTimelinePosition(milliseconds); could you try using a Transition Region. This should allow FMOD to transition the audio while also using the automation on the events.

If that does not solve the issue, would it be possible to get a copy of your FMOD project with the following settings:


Uploaded to your profile? Please note you will have to register a project with us before you can upload files.

Thank you for the reply.

I’ll follow your suggestions and let you know.

Since all songs should be able to transition to all other songs, that’s in this case 3 transition regions per song. Is there a less clunky way of doing it?

Hi,

Unfortunately, each transition region can only move to one marker so you will have to have a region per destination.

I’ve removed the system I had and replaced it with this:

All the transition regions have a similar setup (track number value 1 leads to song 1, 3 to song 3, etc), and they all move - but neither allow the release of the aforementioned AHDSR curve to play. The fadeout doesn’t happen.

I’ve been recommended to attempt magnet regions, see if they can do the job and I’ll go for that and post that result.

You asked me for a copy of my project with the settings - I’ll post that later today.

1 Like

Excuse the delay. I’ve registered the project and am pending approval. Once that’s done, I’ll upload the requested file.

1 Like

Hi,

You should have approval to upload the project now.

File uploaded.

1 Like

Hi,

Thank you for the project.

When in FMOD Studio I was able to hear the fade out between songs. Do you also hear it in Studio and not in Unity? Or do you not hear it at all?

What version of Studio are you using? I noticed there was a Transition Region only on the transition to song 4:


This may cause unexpected behavior when transitioning to song 4.

Hello,

Thanks for taking a look at the project and excuse the delay, I’m working on this as much as my time allows.

I should’ve been more clear: Inside FMOD it all works as intended, even when using only the variable to manipulate the playing. I can hear the fadeouts properly. It’s when I try the same thing in Unity it doesn’t work. This was true from the start.

What version of Studio are you using?

I’m taking this as an encouragement to update my FMOD. I’ll do that and get back to you.

I noticed there was a [Transition Region] only on the transition to song 4 :

Do you mean that you don’t see the transition regions to song 1, song 2 and song 3? Because they’re there and I see them (they are transition regions, right?).

This may cause unexpected behavior when transitioning to song 4 .

Transitioning to song 4 is something I haven’t tested and will test later on - not yet.

I’m taking this as an encouragement to update my FMOD. I’ll do that and get back to you.

Scratch that. My FMOD version is 2.02.04 which appears to be nearly the newest if not the newest.

Hi

The latest Unity Verified version is 2.02.19
image

Apologies, I meant Transition Timelines. If there is a transition timeline it is indicated by the circle on the transition region.

Using the following code:

public FMODUnity.StudioEventEmitter emitter;

// Update is called once per frame
void Update()
{
    if (Input.GetKeyDown(KeyCode.Alpha1))
    {
        emitter.EventInstance.setParameterByName("Track number", 0);
    }
	if (Input.GetKeyDown(KeyCode.Alpha2))
	{
		emitter.EventInstance.setParameterByName("Track number", 1);
	}
	if (Input.GetKeyDown(KeyCode.Alpha3))
	{
		emitter.EventInstance.setParameterByName("Track number", 2);
	}
	if (Input.GetKeyDown(KeyCode.Alpha4))
	{
		emitter.EventInstance.setParameterByName("Track number", 3);
	}
}

I will DM you a profiler recording of changing the tracks, please let me know if this is the expected behaviour.