Why when changing the audio mixer game volume to 0 in script it's not changing it ?

I have this script in the game scene when I press on escape key it’s loading also the main menu scene so both scenes are loaded.

In the script after the main menu is loaded I’m trying to change the game music volume to 0 :

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class BackToMainMenu : MonoBehaviour
{
    public GameObject[] objsToDisable;
    public AudioMixer audioMixer;

    public static bool gameSceneLoaded;

    private void Awake()
    {
        gameSceneLoaded = true;
    }

    // Start is called before the first frame update
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (Time.timeScale == 0)
            {
                DisableEnableUiTexts(true);
                SceneManager.UnloadSceneAsync(0);
                Cursor.visible = false;
                Time.timeScale = 1;
            }
            else
            {
                Time.timeScale = 0;
                MenuController.LoadSceneForSavedGame = false;
                SceneManager.LoadScene(0, LoadSceneMode.Additive);
                SceneManager.sceneLoaded += SceneManager_sceneLoaded;

                Cursor.visible = true;
            }
        }
    }

    private void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1)
    {
        DisableEnableUiTexts(false);
        audioMixer.SetFloat("gamemusicvolume", 0);
    }

    private void DisableEnableUiTexts(bool enabled)
    {
        foreach (GameObject go in objsToDisable)
        {
            if (go.name == "Cameras")
            {
                foreach(Transform child in go.transform)
                {
                    if(child.name == "Main Camera")
                    {
                        if (enabled == false)
                        {
                            child.GetComponent<Camera>().enabled = false;
                        }
                        else
                        {
                            child.GetComponent<Camera>().enabled = true;
                        }
                    }
                }
            }
            else
            {
                go.SetActive(enabled);
            }
        }
    }
}

This is where I’m changing it to 0 in this event :

private void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1)
    {
        DisableEnableUiTexts(false);
        audioMixer.SetFloat("gamemusicvolume", 0);
    }

I checked with a break point it’s getting to this line and doing the line without any errors.
I also checked the float parameter name and it is “gamemusicvolume”

This screenshot show the game when both scenes are loaded after I pressed the escape key and also show the audio mixer. In the Game scene I have a gameobject name Game Audio with Audio Source component.

I can change the Audio Source component volume directly but I think I should do it through the Audio Mixer no ? Anyway it’s not changing the game music volume at all in the audio mixer :

And this is the Audio Mixer settings the parameters settings :
And I want to change the Game Music volume child under the Game Audio group :

I found the solution in the script I had to convert the float volume value to this :

audioMixer.SetFloat("gamemusicvolume", Mathf.Log(0.0001f) * 20);

and now it’s working. I hope it’s the correct solution.

Is my solution logic ?