// Use this for initialization void Start() { FmodEventSystemHandle handle = new FmodEventSystemHandle(); ReverbSettings.FmodReverbPreset globalReverbSetting = FmodReverb.GLOBAL_REVERB; m_globalReverb = FmodReverb.CreateInstance(typeof(FmodReverb)) as FmodReverb; GameObject obj = GameObject.Instantiate(Resources.Load("FmodReverbZone")) as GameObject; m_globalReverbZone = obj.GetComponent <FmodReverbZone>(); if (m_globalReverbZone == null) { Debug.LogError("Prefab for FmodReverbZone should have component FmodReverbZone !"); } m_globalReverbZone.SetGlobal(true); m_globalReverbZone.name = "Global Reverb"; m_globalReverb.Initialize(globalReverbSetting.Name, globalReverbSetting.Properties); m_globalReverbZone.SetReverb(m_globalReverb); m_globalReverbZone.Priority = 0; m_globalReverbZone.fadeTime = 0; m_currentZone = m_globalReverbZone; StackReverb(m_currentZone); handle.getEventSystem().setReverbImmediate(globalReverbSetting.Properties); handle.Dispose(); m_startProperties = globalReverbSetting.Properties; m_curProperties = globalReverbSetting.Properties; m_endProperties = globalReverbSetting.Properties; }
public static FMOD.REVERB_PROPERTIES getLerpedProperties(FMOD.REVERB_PROPERTIES a, FMOD.REVERB_PROPERTIES b, float coef) { FMOD.REVERB_PROPERTIES c = ReverbSettings.DEFAULT_REVERB_PROPERTIES; coef = Mathf.Clamp(coef, 0f, 1f); c.DecayHFRatio = Mathf.Lerp(a.DecayHFRatio, b.DecayHFRatio, coef); c.DecayLFRatio = Mathf.Lerp(a.DecayLFRatio, b.DecayLFRatio, coef); c.DecayTime = Mathf.Lerp(a.DecayTime, b.DecayTime, coef); c.Density = Mathf.Lerp(a.Density, b.Density, coef); c.Diffusion = Mathf.Lerp(a.Diffusion, b.Diffusion, coef); c.EnvDiffusion = Mathf.Lerp(a.EnvDiffusion, b.EnvDiffusion, coef); c.Environment = 0; // for USER, user-set value c.Flags = b.Flags; // can't interpolate on binary mask c.HFReference = Mathf.Lerp(a.HFReference, b.HFReference, coef); c.Instance = b.Instance; c.LFReference = Mathf.Lerp(a.LFReference, b.LFReference, coef); c.ModulationDepth = Mathf.Lerp(a.ModulationDepth, b.ModulationDepth, coef); c.ModulationTime = Mathf.Lerp(a.ModulationTime, b.ModulationTime, coef); c.Reflections = (int)Mathf.Lerp(a.Reflections, b.Reflections, coef); c.ReflectionsDelay = Mathf.Lerp(a.ReflectionsDelay, b.ReflectionsDelay, coef); c.Reverb = (int)Mathf.Lerp(a.Reverb, b.Reverb, coef); c.ReverbDelay = Mathf.Lerp(a.ReverbDelay, b.ReverbDelay, coef); c.Room = (int)Mathf.Lerp(a.Room, b.Room, coef); c.RoomHF = (int)Mathf.Lerp(a.RoomHF, b.RoomHF, coef); c.RoomLF = (int)Mathf.Lerp(a.RoomLF, b.RoomLF, coef); return (c); }
protected void loadReverbsFromFile(FmodEventAsset asset) { List <FmodReverb> reverbs = new List <FmodReverb>(); FMOD.REVERB_PROPERTIES curReverb = new FMOD.REVERB_PROPERTIES(); IntPtr curReverbName = new IntPtr(); string curReverbNameAsString; int numReverbs = 0; FMOD.RESULT result = FMOD.RESULT.OK; FmodReverb newReverb = null; result = getEventSystem().getNumReverbPresets(ref numReverbs); ERRCHECK(result); if (result == FMOD.RESULT.OK) { for (int i = 0; i < numReverbs; i++) { result = getEventSystem().getReverbPresetByIndex(i, ref curReverb, ref curReverbName); ERRCHECK(result); if (result == FMOD.RESULT.OK) { curReverbNameAsString = Marshal.PtrToStringAnsi(curReverbName); newReverb = ScriptableObject.CreateInstance(typeof(FmodReverb)) as FmodReverb; newReverb.Initialize(curReverbNameAsString, curReverb); reverbs.Add(newReverb); } } } asset.setReverbs(reverbs); }
public void setReverbImmediate(FMOD.REVERB_PROPERTIES targetProps) { FMOD.RESULT result = FMOD.RESULT.OK; FMOD.EventSystem evtSystem = getEventSystem(); if (m_eventSystemWasInit == false) { init(); } result = evtSystem.setReverbProperties(ref targetProps); ERRCHECK(result); result = m_system.setReverbProperties(ref targetProps); ERRCHECK(result); }
public void UpdateGlobalReverb() { if (m_currentZone == m_globalReverbZone && m_globalReverbZone != null && m_globalReverb != null) { FmodEventSystemHandle handle = new FmodEventSystemHandle(); ReverbSettings.FmodReverbPreset globalReverbSetting = ReverbSettings.Get().CurPreset; m_globalReverb = m_globalReverbZone.GetReverb(); m_globalReverb.Initialize(globalReverbSetting.Name, globalReverbSetting.Properties); m_curProperties = m_globalReverb.getProperties(); m_endProperties = m_curProperties; handle.getEventSystem().setReverbImmediate(m_curProperties); handle.Dispose(); } }
// Update is called once per frame void Update() { if (m_isInTransition) { FmodEventSystemHandle handle = new FmodEventSystemHandle(); m_curTransitionTime += Time.deltaTime; if (m_curTransitionTime >= m_curTransitionDuration) { m_curTransitionTime = m_curTransitionDuration; m_isInTransition = false; } m_curProperties = FmodReverb.getLerpedProperties(m_startProperties, m_endProperties, m_curTransitionTime / m_curTransitionDuration); handle.getEventSystem().setReverbImmediate(m_curProperties); handle.Dispose(); } }
internal ReverbProperties(ref REVERB_PROPERTIES props) : this() { // All field of REVERB_PROPERTIES are private in the wrapper, I had to modify the wrapper here to expose those fields DecayTime = props.DecayTime; EarlyDelay = props.EarlyDelay; LateDelay = props.LateDelay; HFReference = props.HFReference; HFDecayRatio = props.HFDecayRatio; Diffusion = props.Diffusion; Density = props.Density; LowShelfFrequency = props.LowShelfFrequency; LowShelfGain = props.LowShelfGain; HighCut = props.HighCut; EarlyLateMix = props.EarlyLateMix; WetLevel = props.WetLevel; }
private void _updateReverbStack() { if (m_reverbStack.Count == 0) { return; } m_reverbStack.Sort((x, y) => (int)(y.Priority).CompareTo((int)x.Priority)); FmodReverbZone newCurrentZone = m_reverbStack[0]; if (m_currentZone != newCurrentZone) // we should transition { float fadeInTime = newCurrentZone.fadeTime; // if we are transitionning from a zone back to the global zone, we use the previous fade time // to fade out if (newCurrentZone == m_globalReverbZone && m_currentZone != m_globalReverbZone) { m_globalReverb.Initialize(m_globalReverb.getName(), FmodReverb.GLOBAL_REVERB.Properties); fadeInTime = m_currentZone.fadeTime; } FMOD.REVERB_PROPERTIES targetProps = newCurrentZone.GetReverb().getProperties(); if (fadeInTime <= 0) { FmodEventSystemHandle handle = new FmodEventSystemHandle(); m_isInTransition = false; m_startProperties = m_curProperties; m_endProperties = targetProps; handle.getEventSystem().setReverbImmediate(targetProps); handle.Dispose(); } else { m_isInTransition = true; m_startProperties = m_curProperties; m_endProperties = targetProps; m_curTransitionDuration = fadeInTime; m_curTransitionTime = 0; } m_currentZone = newCurrentZone; } }
public void Initialize (string name, FMOD.REVERB_PROPERTIES reverb) { this.name = name; m_name = name; hideFlags = HideFlags.HideInHierarchy; Room = reverb.Room; RoomHF = reverb.RoomHF; RoomLF = reverb.RoomLF; DecayTime = reverb.DecayTime; DecayHFRatio = reverb.DecayHFRatio; DecayLFRatio = reverb.DecayLFRatio; Reflections = reverb.Reflections; ReflectionsDelay = reverb.ReflectionsDelay; Reverb = reverb.Reverb; ReverbDelay = reverb.ReverbDelay; ModulationTime = reverb.ModulationTime; ModulationDepth = reverb.ModulationDepth; HFReference = reverb.HFReference; LFReference = reverb.LFReference; Diffusion = reverb.Diffusion; Density = reverb.Density; }
public void CopyToProperties(ref FMOD.REVERB_PROPERTIES properties) { properties.Instance = this.Instance; properties.Environment = this.Environment; properties.EnvDiffusion = this.EnvDiffusion; properties.Room = this.Room; properties.RoomHF = this.RoomHF; properties.RoomLF = this.RoomLF; properties.DecayTime = this.DecayTime; properties.DecayHFRatio = this.DecayHFRatio; properties.DecayLFRatio = this.DecayLFRatio; properties.Reflections = this.Reflections; properties.ReflectionsDelay = this.ReflectionsDelay; properties.Reverb = this.Reverb; properties.ReverbDelay = this.ReverbDelay; properties.ModulationTime = this.ModulationTime; properties.ModulationDepth = this.ModulationDepth; properties.HFReference = this.HFReference; properties.LFReference = this.LFReference; properties.Diffusion = this.Diffusion; properties.Density = this.Density; properties.Flags = this.Flags; }
public PropertiesClass(FMOD.REVERB_PROPERTIES properties) { this.Instance = properties.Instance; this.Environment = properties.Environment; this.EnvDiffusion = properties.EnvDiffusion; this.Room = properties.Room; this.RoomHF = properties.RoomHF; this.RoomLF = properties.RoomLF; this.DecayTime = properties.DecayTime; this.DecayHFRatio = properties.DecayHFRatio; this.DecayLFRatio = properties.DecayLFRatio; this.Reflections = properties.Reflections; this.ReflectionsDelay = properties.ReflectionsDelay; this.Reverb = properties.Reverb; this.ReverbDelay = properties.ReverbDelay; this.ModulationTime = properties.ModulationTime; this.ModulationDepth = properties.ModulationDepth; this.HFReference = properties.HFReference; this.LFReference = properties.LFReference; this.Diffusion = properties.Diffusion; this.Density = properties.Density; this.Flags = properties.Flags; }
public RESULT getReverbPreset(string name, ref REVERB_PROPERTIES props, ref int index) { return FMOD_EventSystem_GetReverbPreset(eventsystemraw, name, ref props, ref index); }
private static extern RESULT FMOD_EventReverb_GetProperties(IntPtr eventreverb, ref REVERB_PROPERTIES props);
public RESULT getReverbProperties(int instance, out REVERB_PROPERTIES prop) { return(FMOD5_System_GetReverbProperties(handle, instance, out prop)); }
// Reverb api public RESULT setReverbProperties(ref REVERB_PROPERTIES prop) { return FMOD_System_SetReverbProperties(systemraw, ref prop); }
public RESULT getReverbProperties (int instance, ref REVERB_PROPERTIES prop) { return FMOD_System_GetReverbProperties(systemraw, instance, ref prop); }
private void CheckBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { EntityEditor ee = new EntityEditor(CurrentEntTool); if (rect != new RectangleF(0, 0, 0, 0)) { if (!RectIsEmrty) { rects.Add(rect); if (CurrectTool == Tool.Ent) { ee.ShowDialog(this); if (CurrentEntTool == "Trigger Change Layer") { ee.comboBoxType.SelectedItem = "Trigger Change Layer"; MoveDirection md = MoveDirection.NONE; TriggerType tt = TriggerType.Once; int layer = Convert.ToInt32(ee.numericUpDown1.Value); int tlayer = Convert.ToInt32(ee.numericUpDown2.Value); Enum.TryParse(ee.comboBoxDir.SelectedItem.ToString(), out md); if (ee.checkOneUse.Checked == true) { if (ee.checkBoxSide.Checked == true) { tt = TriggerType.One_Side_Once; } else { tt = TriggerType.One_Side_Multi; } } else { if (ee.checkBoxSide.Checked == true) { tt = TriggerType.Once; } else { tt = TriggerType.Multi; } } actors.Add(new Trigger_Change_Layer(tt, md, tlayer, CurrentTexture.image, layer, checkCollision.Checked, rect, checkSprite.Checked, false)); } if (CurrentEntTool == "Sound Reverb") { ee.comboBoxType.SelectedItem = "Sound Reverb"; FMOD.System system = null; this.Sound_System.getLowLevelSystem(out system); Reverb_Props_Presets preset = Reverb_Props_Presets.OFF; Enum.TryParse <Reverb_Props_Presets>(ee.comboBoxPreset.SelectedItem.ToString(), out preset); FMOD.REVERB_PROPERTIES prop = Reverb_Area.LoadPreset(preset); Reverb_Attributes ra = new Reverb_Attributes(Vector.ToVECTOR(rect.X, rect.Y, Convert.ToSingle(ee.textZ.Value)), Convert.ToSingle(ee.textMax.Value), Convert.ToSingle(ee.textMin.Value)); actors.Add(new Reverb_Area(ref system, ra, ref prop, CurrentTexture.image, CurrentLayer, checkCollision.Checked, rect, checkSprite.Checked, false)); } } else { actors.Add(new Actor(CurrentTexture.image, 0, checkCollision.Checked, rect, checkSprite.Checked, false)); } rect = new RectangleF(0, 0, 0, 0); RectIsEmrty = true; } } } Refresh(); }
private static extern RESULT FMOD_EventSystem_SetReverbAmbientProperties(IntPtr eventsystem, ref REVERB_PROPERTIES props);
private static extern RESULT FMOD_EventSystem_GetReverbPreset(IntPtr eventsystem, string name, ref REVERB_PROPERTIES props, ref int index);
public RESULT getReverbPresetByIndex(int index, ref REVERB_PROPERTIES props, ref IntPtr name) { return FMOD_EventSystem_GetReverbPresetByIndex(eventsystemraw, index, ref props, ref name); }
public RESULT getProperties(ref REVERB_PROPERTIES properties) { return(FMOD5_Reverb3D_GetProperties(handle, ref properties)); }
public RESULT getProperties(ref REVERB_PROPERTIES properties) { return(Geometry.Reverb.FMOD_Reverb_GetProperties(reverbraw, ref properties)); }
// Use this for initialization void Start() { FmodEventSystemHandle handle = new FmodEventSystemHandle(); ReverbSettings.FmodReverbPreset globalReverbSetting = FmodReverb.GLOBAL_REVERB; m_globalReverb = FmodReverb.CreateInstance(typeof(FmodReverb)) as FmodReverb; GameObject obj = GameObject.Instantiate(Resources.Load("FmodReverbZone")) as GameObject; m_globalReverbZone = obj.GetComponent<FmodReverbZone>(); if (m_globalReverbZone == null) { Debug.LogError("Prefab for FmodReverbZone should have component FmodReverbZone !"); } m_globalReverbZone.SetGlobal(true); m_globalReverbZone.name = "Global Reverb"; m_globalReverb.Initialize(globalReverbSetting.Name, globalReverbSetting.Properties); m_globalReverbZone.SetReverb(m_globalReverb); m_globalReverbZone.Priority = 0; m_globalReverbZone.fadeTime = 0; m_currentZone = m_globalReverbZone; StackReverb (m_currentZone); handle.getEventSystem().setReverbImmediate(globalReverbSetting.Properties); handle.Dispose(); m_startProperties = globalReverbSetting.Properties; m_curProperties = globalReverbSetting.Properties; m_endProperties = globalReverbSetting.Properties; }
private void _updateReverbStack() { if (m_reverbStack.Count == 0) { return ; } m_reverbStack.Sort((x, y) => (int)(y.Priority).CompareTo((int)x.Priority)); FmodReverbZone newCurrentZone = m_reverbStack[0]; if (m_currentZone != newCurrentZone) { // we should transition float fadeInTime = newCurrentZone.fadeTime; // if we are transitionning from a zone back to the global zone, we use the previous fade time // to fade out if (newCurrentZone == m_globalReverbZone && m_currentZone != m_globalReverbZone) { m_globalReverb.Initialize(m_globalReverb.getName(), FmodReverb.GLOBAL_REVERB.Properties); fadeInTime = m_currentZone.fadeTime; } FMOD.REVERB_PROPERTIES targetProps = newCurrentZone.GetReverb().getProperties(); if (fadeInTime <= 0) { FmodEventSystemHandle handle = new FmodEventSystemHandle(); m_isInTransition = false; m_startProperties = m_curProperties; m_endProperties = targetProps; handle.getEventSystem().setReverbImmediate(targetProps); handle.Dispose(); } else { m_isInTransition = true; m_startProperties = m_curProperties; m_endProperties = targetProps; m_curTransitionDuration = fadeInTime; m_curTransitionTime = 0; } m_currentZone = newCurrentZone; } }
// Reverb interfaces. public RESULT setReverbProperties(ref REVERB_PROPERTIES props) { return FMOD_EventSystem_SetReverbProperties(eventsystemraw, ref props); }
protected void loadReverbsFromFile(FmodEventAsset asset) { List<FmodReverb> reverbs = new List<FmodReverb>(); FMOD.REVERB_PROPERTIES curReverb = new FMOD.REVERB_PROPERTIES(); IntPtr curReverbName = new IntPtr(); string curReverbNameAsString; int numReverbs = 0; FMOD.RESULT result = FMOD.RESULT.OK; FmodReverb newReverb = null; result = getEventSystem().getNumReverbPresets(ref numReverbs); ERRCHECK(result); if (result == FMOD.RESULT.OK) { for (int i = 0; i < numReverbs; i++) { result = getEventSystem().getReverbPresetByIndex(i, ref curReverb, ref curReverbName); ERRCHECK(result); if (result == FMOD.RESULT.OK) { curReverbNameAsString = Marshal.PtrToStringAnsi(curReverbName); newReverb = ScriptableObject.CreateInstance(typeof(FmodReverb)) as FmodReverb; newReverb.Initialize(curReverbNameAsString, curReverb); reverbs.Add(newReverb); } } } asset.setReverbs(reverbs); }
private static extern RESULT FMOD_EventSystem_GetReverbPresetByIndex(IntPtr eventsystem, int index, ref REVERB_PROPERTIES props, ref IntPtr name);
public RESULT getReverbProperties (int instance, out REVERB_PROPERTIES prop) { return FMOD_System_GetReverbProperties(rawPtr, instance, out prop); }
public ReverbComponent(GameHandler game, string Name, Actor owner, Vector3 location, FMOD.REVERB_PROPERTIES reverbPropeties, float minDist, float maxDist) : base(game, Name, owner) { this.reverbPropeties = reverbPropeties; this.maxDist = maxDist; this.minDist = minDist; }
public RESULT getProperties(ref REVERB_PROPERTIES properties) { return FMOD_Reverb3D_GetProperties(rawPtr, ref properties); }
public RESULT setReverbProperties(int instance, ref REVERB_PROPERTIES prop) { return(System.FMOD5_System_SetReverbProperties(this.rawPtr, instance, ref prop)); }
private static extern RESULT FMOD_Reverb_SetProperties(IntPtr reverb, ref REVERB_PROPERTIES properties);
public RESULT setProperties(ref REVERB_PROPERTIES properties) { return Reverb3D.FMOD5_Reverb3D_SetProperties(this.rawPtr, ref properties); }
public RESULT getReverbProperties(int instance, out REVERB_PROPERTIES prop) { return(System.FMOD5_System_GetReverbProperties(this.rawPtr, instance, out prop)); }
// Reverb api. public RESULT setReverbProperties (int instance, ref REVERB_PROPERTIES prop) { return FMOD_System_SetReverbProperties(rawPtr, instance, ref prop); }
private static extern RESULT FMOD5_System_GetReverbProperties(IntPtr system, int instance, out REVERB_PROPERTIES prop);
private static extern RESULT FMOD_System_GetReverbProperties (IntPtr system, int instance, out REVERB_PROPERTIES prop);
public RESULT getProperties(ref REVERB_PROPERTIES properties) { return(Reverb3D.FMOD5_Reverb3D_GetProperties(this.rawPtr, ref properties)); }
public RESULT setProperties(ref REVERB_PROPERTIES properties) { return FMOD_Reverb_SetProperties(reverbraw, ref properties); }
private static extern RESULT FMOD5_Reverb3D_GetProperties(IntPtr reverb, ref REVERB_PROPERTIES properties);
public RESULT getReverbAmbientProperties(ref REVERB_PROPERTIES prop) { return FMOD_System_GetReverbAmbientProperties(systemraw, ref prop); }
public RESULT getProperties(ref REVERB_PROPERTIES props) { return FMOD_EventReverb_GetProperties(eventreverbraw, ref props); }
private static extern RESULT FMOD_System_SetReverbProperties(IntPtr system, ref REVERB_PROPERTIES prop);
public RESULT setReverbProperties(int instance, ref REVERB_PROPERTIES prop) { return(FMOD5_System_SetReverbProperties(handle, instance, ref prop)); }