// === METHODS ===

    // Use this for initialization
    void Start()
    {
        renderSettings = FindObjectOfType <ISMRenderSettings>();
        // Plug the associated audio source to the given mixer group
        source = GetComponent <AudioSource>();
        AudioMixerGroup mixerGroup =
            renderSettings.mixer.FindMatchingGroups(mixerGroupName)[0];

        source.outputAudioMixerGroup = mixerGroup;
        // initialize impulse responses
        var irNumSamples = Mathf.CeilToInt(
            renderSettings.IRLength * AudioSettings.outputSampleRate);

        ir    = new float[irNumSamples];
        ir[0] = 1.0f;
        // Set up Convolution Reverb
        float fParamIdx;

        renderSettings.mixer.GetFloat(mixerGroupName, out fParamIdx);
        paramIdx = (int)fParamIdx;
        ConvolutionReverbInput.UploadSample(ir, paramIdx, name);
        nextSync = AudioSettings.dspTime;
        // Select random vectors as placeholders for the old positions
        oldSourcePosition = Random.insideUnitSphere * 1e3f;
    }
    public override void OnInspectorGUI()
    {
        // Get the object behind the GUI
        ISMRenderSettings targetScript = (ISMRenderSettings)target;

        // General settings
        EditorGUILayout.LabelField("General");
        EditorGUILayout.PropertyField(listener);
        EditorGUILayout.PropertyField(mixer);
        // Simulation settings
        EditorGUILayout.LabelField("Simulation");
        targetScript.Absorption =
            EditorGUILayout.FloatField("Absorption of walls",
                                       targetScript.Absorption);
        targetScript.DiffuseProportion =
            EditorGUILayout.FloatField("Diffuse energy proportion",
                                       targetScript.DiffuseProportion);
        targetScript.IRLength =
            EditorGUILayout.FloatField("IR Length", targetScript.IRLength);
        targetScript.NumberOfISMReflections =
            EditorGUILayout.IntField("num reflections",
                                     targetScript.NumberOfISMReflections);
        serializedObject.ApplyModifiedProperties();
    }