/** * This method is public because looping sounds like the laser fences * need to call it periodically to check the listener position. */ public void CheckDistanceAndOcclusionToListener(AudioSource source) { bool occluded = true; Vector3 rayOrigin = source.transform.position; Vector3 rayDirection = listener.transform.position - source.transform.position; float distance = rayDirection.magnitude; RaycastHit hit; if (Physics.Raycast(rayOrigin, rayDirection, out hit, distance, layerMask)) { if (hit.transform.tag == Tags.mainCamera) { occluded = false; } } AudioLowPassFilter lowPass = source.gameObject.GetComponent <AudioLowPassFilter>(); if (occluded) { lowPass.cutoffFrequency = maxCutoffFrequency - ((distance / defaultMaxDistance) * maxCutoffFrequency); lowPass.enabled = true; } else { lowPass.enabled = false; } source.pitch = 1 - ((distance / defaultMaxDistance) / 10); // Debug. //print("low: " + lowPass.enabled + " occl: " + occluded + " frequency: " + lowPass.cutoffFrequency + " pitch: " + source.pitch + " dist: " + distance); }
private void SetOcclusion() { VariationUpdater.UpdateCachedObjects(); var doesGroupUseOcclusion = UsesOcclusion; if (!doesGroupUseOcclusion) { return; } // set occlusion default if (LowPassFilter == null) { _lpFilter = GetComponent <AudioLowPassFilter>(); if (_lpFilter == null) { _lpFilter = gameObject.AddComponent <AudioLowPassFilter>(); } } else { _lpFilter = GetComponent <AudioLowPassFilter>(); } // ReSharper disable once PossibleNullReferenceException LowPassFilter.cutoffFrequency = AudioUtil.MinCutoffFreq(VariationUpdater); }
/// <summary> /// Applies the audio effect. /// </summary> /// <param name="soundEmittingObject">The GameObject on which the effect is to be applied.</param> public void ApplyEffect(GameObject soundEmittingObject) { if (!isActiveAndEnabled) { return; } AudioSource audioSource = soundEmittingObject.GetComponent <AudioSource>(); if (audioSource == null) { Debug.LogWarning("The specified emitter does not have an attached AudioSource component."); return; } // Audio occlusion is performed using a low pass filter. AudioLowPassFilter lowPass = soundEmittingObject.GetComponent <AudioLowPassFilter>(); if (lowPass == null) { lowPass = soundEmittingObject.AddComponent <AudioLowPassFilter>(); } lowPass.enabled = true; // In the real world, chaining multiple low-pass filters will result in the // lowest of the cutoff frequencies being the highest pitches heard. lowPass.cutoffFrequency = Mathf.Min(lowPass.cutoffFrequency, CutoffFrequency); // Unlike the cutoff frequency, volume pass-through is cumulative. audioSource.volume *= VolumePassThrough; }
void AssignmentsAndComponentsSetup() { ReferenceCop(); // Register Checkpoint Locations: atmosphereCheckpointLocation = atmosphere.transform.position; waterSurfaceCheckpointLocation = waterSurface.transform.position; seaFloorCheckpointLocation = seaFloor.transform.position; // Retrieve AudioSource Components: atmosphereAudioSource = atmosphere.GetComponent <AudioSource>(); waterSurfaceAudioSource = waterSurface.GetComponent <AudioSource>(); seaFloorAudioSource = seaFloor.GetComponent <AudioSource>(); // Get Audio Clips For Splashes: submergeSplashClip = submerge.GetComponent <AudioSource>().clip; resurfaceSplashClip = resurface.GetComponent <AudioSource>().clip; // Set AudioSource RollOff Modes To Linear: atmosphereAudioSource.rolloffMode = AudioRolloffMode.Linear; waterSurfaceAudioSource.rolloffMode = AudioRolloffMode.Linear; seaFloorAudioSource.rolloffMode = AudioRolloffMode.Linear; submerge.GetComponent <AudioSource>().rolloffMode = AudioRolloffMode.Linear; resurface.GetComponent <AudioSource>().rolloffMode = AudioRolloffMode.Linear; // Generate & Disable Underwater Low Pass Filters For Later Use In Update: waterSurfaceBGM_LPF = waterSurface.AddComponent <AudioLowPassFilter>(); SubmergingSplashLPF = submerge.AddComponent <AudioLowPassFilter>(); waterSurfaceBGM_LPF.enabled = false; SubmergingSplashLPF.enabled = false; }
public override bool AttachToObject(GameObject gameObject, ArdenAudioFilterInstance instance) { if (instance.IsAttached(gameObject)) { return(true); } //Detect filter is already added if (gameObject.GetComponent <AudioLowPassFilter>()) { return(false); } AudioLowPassFilter filter = gameObject.AddComponent <AudioLowPassFilter>(); filter.cutoffFrequency = cutoffFrequency; filter.lowpassResonanceQ = lowpassResonanceQ; instance.Attach(gameObject, new List <Component> { filter }); RegisterInstance(gameObject, instance); return(true); }
/// <summary> /// Add effects knobs to panel. Attempts to recycle existing filters. /// </summary> /// <param name="select">Select multiple knobs via logical OR. /// e.g. Knobs.distortion | Knobs.reverb</param> /// <remarks>TODO Figure out a way to make filters chain (lowpass LAST).</remarks> public void AddKnobs(Knobs select) { if ((select & Knobs.distortion) == Knobs.distortion) { distortion = gameObj.GetComponent <AudioDistortionFilter>(); if (distortion == null) { Log.dbg("Adding distortion filter"); distortion = gameObj.AddComponent <AudioDistortionFilter>(); } } if ((select & Knobs.reverb) == Knobs.reverb) { reverb = gameObj.GetComponent <AudioReverbFilter>(); if (reverb == null) { Log.dbg("Adding reverb filter"); reverb = gameObj.AddComponent <AudioReverbFilter>(); } } if ((select & Knobs.lowpass) == Knobs.lowpass) { lowpass = gameObj.GetComponent <AudioLowPassFilter>(); if (lowpass == null) { Log.dbg("Adding low-pass filter"); lowpass = gameObj.AddComponent <AudioLowPassFilter>(); } lowpass.lowpassResonaceQ = 0f; } }
// Use this for initialization void Start() { filter = gameObject.AddComponent <AudioLowPassFilter>(); filter.cutoffFrequency = startCutoff; source = GetComponent <SoundEvent>(); source.volume = startVolume; }
public void SetChar(CharacterComponent myChar) { this.audioChar = myChar; this.myAudioSource = this.audioChar.GetAudioSource(CharacterComponent.AudioSourceType.Character); highPassFilter = this.myAudioSource.gameObject.GetComponent <AudioHighPassFilter>(); lowPassFilter = this.myAudioSource.gameObject.GetComponent <AudioLowPassFilter>(); distortion = this.myAudioSource.gameObject.GetComponent <AudioDistortionFilter>(); if (!highPassFilter) { highPassFilter = this.myAudioSource.gameObject.AddComponent <AudioHighPassFilter>(); } if (!lowPassFilter) { lowPassFilter = this.myAudioSource.gameObject.AddComponent <AudioLowPassFilter>(); } if (!distortion) { distortion = this.myAudioSource.gameObject.AddComponent <AudioDistortionFilter>(); } highPassFilter.cutoffFrequency = Main.ruVoiceSettings.highPassFilterValue; lowPassFilter.cutoffFrequency = Main.ruVoiceSettings.lowPassFilterValue; lowPassFilter.lowpassResonanceQ = Main.ruVoiceSettings.lowpassResonanceQValue; highPassFilter.cutoffFrequency = Main.ruVoiceSettings.highPassFilterCutoffFrequencyValue; distortion.distortionLevel = Main.ruVoiceSettings.distortionFilterValue; this.SetAudioPitch(); this.SetAudioVolume(); }
public void SetNextTarget(GameObject nextTarget) { cursorPosition = Cursor.transform.position; NextBox = nextTarget; audioSource = NextBox.GetComponent <AudioSource>(); lowPassFilter = NextBox.GetComponent <AudioLowPassFilter>(); lowPassFilter.cutoffFrequency = CalculateCutoffFrequency(Camera.main.transform.forward.y * 2, NextBox.transform.position.y); //Using Camera.main.transform.forward.y * 2 here because we want to approximate the height the úser is looking at at an distance of z=2 to be equal to the boxes position (z=2) if (Camera.main.transform.forward.z * NextBox.transform.position.z < 0) //Case when Box is behind the User (+*+>0 & -*->0 & +*-.<0 & -*+<=) { audioSource.volume = 0.0f; float crossProduct = Vector3.Cross(cursorPosition, NextBox.transform.position - cursorPosition).y; LineRenderer.material.color = Color.red; DirectionIndicatorObject.GetComponent <SpriteRenderer>().material.color = Color.red; targetBehind = true; middlePoint = NextBox.transform.position; middlePoint.z = 0; if (crossProduct <= 0 && cursorPosition.z > 0 || crossProduct > 0 && cursorPosition.z < 0) //Target left in global space { middlePoint.x = -1.5f; } else //Target right in global space { middlePoint.x = 1.5f; } middlePoint.y = (middlePoint.y + cursorPosition.y) / 2; middlePointToTarget = NextBox.transform.position - middlePoint; //Vector between NextBox and middlePoint } else //Box in front { LineRenderer.material.color = Color.green; DirectionIndicatorObject.GetComponent <SpriteRenderer>().material.color = Color.green; } }
public TreeNode <Room> BuildRoom(GameObject go) { Room roomVal = go.GetComponent <Room>(); if (go.GetComponent <Room>().sound.clip != null) { AudioSource source = go.AddComponent <AudioSource>(); source.playOnAwake = false; source.volume = 0; source.clip = roomVal.sound.clip; source.loop = true; source.priority = 0; AudioLowPassFilter lowPassFilter = go.AddComponent <AudioLowPassFilter>(); lowPassFilter.cutoffFrequency = this.defaultCutoffFrequency; lowPassFilter.lowpassResonanceQ = 0.5f; } TreeNode <Room> room = new TreeNode <Room>(roomVal); room.Value.roomName = go.name; for (int i = 0; i < go.transform.childCount; i++) { room.AddTreeNodeChild(BuildRoom(go.transform.GetChild(i).gameObject)); } return(room); }
// pauses all in-game audio except for UI and Music public void PauseInGameAudio() { pauseFilter = Camera.main.GetComponent <AudioLowPassFilter>(); if (!pauseFilter) { pauseFilter = Camera.main.gameObject.AddComponent <AudioLowPassFilter>(); } // loop through all audio sources pausedSources = Object.FindObjectsOfType(typeof(AudioSource)) as AudioSource[]; for (int i = 0; i < pausedSources.Length; i++) { // if audiosource is game Music, slap a low pass filter on it if (pausedSources[i].GetComponentInParent <AudioListener>() != null) { pauseFilter.enabled = true; pauseFilter.GetComponentInParent <AudioSource>().volume *= 0.5f; } else if (pausedSources[i] == UISoundSource) { // if the source is a UI sound, ignore it. } else { // otherwise, pause it pausedSources[i].Pause(); } } }
private void Start() { listener = GameObject.Find("CenterEyeAnchor"); lowPassFilter = listener.GetComponent <AudioLowPassFilter>(); highPassFilter = listener.GetComponent <AudioHighPassFilter>(); reverbFilter = listener.GetComponent <AudioReverbFilter>(); }
// Use this for initialization void Start() { audioSource = GetComponent <AudioSource>(); lowFilter = GetComponent <AudioLowPassFilter>(); audioSource.clip = backgroundMusics[musicIndex]; audioSource.Play(); }
private void OnTransformParentChanged() { if (transform.parent != null) { Filter = transform.parent.gameObject.AddComponent <AudioLowPassFilter>(); } }
private void Awake() { audioSource = this.GetComponent <AudioSource>(); if (!audioSource) { audioSource = this.gameObject.AddComponent <AudioSource>(); } audioSource.spatialBlend = 1; audioSource.playOnAwake = false; audioSource.spatialize = true; lowPassFilter = this.GetComponent <AudioLowPassFilter>(); if (!lowPassFilter) { lowPassFilter = this.gameObject.AddComponent <AudioLowPassFilter>(); } lowPassFilter.enabled = false; highPassFilter = this.GetComponent <AudioHighPassFilter>(); if (!highPassFilter) { highPassFilter = this.gameObject.AddComponent <AudioHighPassFilter>(); } highPassFilter.enabled = false; reverbFilter = this.GetComponent <AudioReverbFilter>(); if (!reverbFilter) { reverbFilter = this.gameObject.AddComponent <AudioReverbFilter>(); } reverbFilter.reverbPreset = AudioReverbPreset.Off; reverbFilter.enabled = false; }
public override void SetupOn(AudioSource source) { AudioLowPassFilter orMakeFilterOn = SoundFilter.GetOrMakeFilterOn <AudioLowPassFilter>(source); orMakeFilterOn.cutoffFrequency = this.cutoffFrequency; orMakeFilterOn.lowpassResonanceQ = this.lowpassResonaceQ; }
// Use this for initialization void Start() { listener = FindObjectOfType <AudioListener>(); source = GetComponent <AudioSource>(); lowpass = GetComponent <AudioLowPassFilter>(); distanceMax = source.maxDistance; }
private void Start() { camShake = Camera.main.gameObject.GetComponent <CameraShake>(); musicObject = transform.Find("Music").gameObject; reverb = musicObject.GetComponent <AudioReverbFilter>(); lowPass = musicObject.GetComponent <AudioLowPassFilter>(); }
void Awake() { noteObjectList = new List <NoteObject>(); camera = Camera.main; audio = GetComponent <AudioSource>(); lowPassFilter = GetComponent <AudioLowPassFilter>(); Transform beatDetectorObject = transform.GetChild(0); if (RuntimeData.useCustomMusic) { beatDetector = beatDetectorObject.GetComponent <BeatDetection>(); detectionAudio = beatDetectorObject.GetComponent <AudioSource>(); } else { beatDetectorObject.gameObject.SetActive(false); } //noteSpawnPosYMultiplier = Mathf.Tan(camera.fieldOfView / 2 * Mathf.Deg2Rad) * defaultNoteSpawnDistance; //noteSpawnPosXMultiplier = noteSpawnPosYMultiplier * camera.aspect; noteDestroyDistance = missDistance; noteSpawnPosXMultiplier = defaultNoteSpawnDistance / -camera.transform.position.z * noteSpawnDispersion; //noteSpawnPosYMultiplier = defaultNoteSpawnDistance / -noteDestroyDistance * noteSpawnDispersion; noteSpawnAdvanceTime = defaultNoteSpawnDistance / defaultNoteSpeed; }
// Use this for initialization void Start() { //Find the player/listener listener = GameObject.Find("FirstPersonCharacter"); lpFilter = GetComponent <AudioLowPassFilter> (); hpFilter = GetComponent <AudioHighPassFilter> (); sphereSound = GetComponent <AudioSource> (); /* * 1. Make our Collider a trigger * 2. Make it in same place as our source * 3. Audio Sources are Circular thus 3D curve is radius. thus size should be 2 * Radius (Essentially the diameter) */ TriggerBox.isTrigger = true; TriggerBox.transform.position = transform.position; TriggerBox.size = new Vector3((maxAudioDistance * 2f), (maxAudioDistance * 2f), (maxAudioDistance * 2f)); //Play the sound file, loop it, and specify volume. Change at will sphereSound.loop = true; //High Pass filter will kick in for the last 1/3rd distance away (as compared to max 3D Audio attenuation Curve) //Also Change .3f to whatever you wish. hpfdist = maxAudioDistance * .3f; hpfstartdist = maxAudioDistance - hpfdist; }
// Update is called once per frame void Update() { if (fade) { filter.cutoffFrequency += (Time.deltaTime / transitionTime) * (endCutoff - startCutoff); source.externalVolumeModifier += (Time.deltaTime / transitionTime) * (endVolume - startVolume); if (filter.cutoffFrequency >= endCutoff && source.externalVolumeModifier >= endVolume) { fade = false; print("custom fade complete"); Destroy(this); } } if (!source) { print("Sound Event = null"); source = gameObject.GetComponent <SoundEvent>(); source.externalVolumeModifier = startVolume; } if (!filter) { print("filter = null"); filter = gameObject.AddComponent <AudioLowPassFilter>(); filter.cutoffFrequency = startCutoff; } }
void OnTriggerEnter(Collider e) { if (e.tag != "Player") { return; } print("trigger "); for (int i = 0; i < triggerCube.Length; i++) { lowPass = triggerCube [i].GetComponent <AudioLowPassFilter> (); if (lowPass == null) { //print ("add component because colliding with "); triggerCube [i].AddComponent <AudioLowPassFilter> (); } else { triggerCube [i].GetComponent <AudioLowPassFilter> ().enabled = true; } lowPass = triggerCube [i].GetComponent <AudioLowPassFilter> (); lowPass.cutoffFrequency = frequency; } }
private void Awake() { source = GetComponent <AudioSource>(); if (source == null) { source = gameObject.AddComponent <AudioSource>(); } lowPassFilter = GetComponent <AudioLowPassFilter>(); if (lowPassFilter == null) { lowPassFilter = gameObject.AddComponent <AudioLowPassFilter>(); } source.loop = loop; source.ignoreListenerPause = ignorePause; if (playOnAwake && audioClips.Length != 0) { foreach (var _clip in audioClips) { if (_clip != null) { PlayClip(_clip); break; } } } }
void Start() { freqs = new float[1024]; samples = new float[16]; temp = new float[16]; trackCutoffs = new float[playlist.Length]; trackCutoffs[0] = 20000f; for (int i = 1; i < playlist.Length; i++) { trackCutoffs[i] = 770f; } onBeat = true; t_src = treble.GetComponent <AudioSource>(); t_lp = treble.GetComponent <AudioLowPassFilter>(); b_src = bass.GetComponent <AudioSource>(); b_lp = bass.GetComponent <AudioLowPassFilter>(); trackNumber = Random.Range(0, playlist.Length); t_src.clip = playlist[trackNumber].Treble; b_src.clip = playlist[trackNumber].Bass; t_lp.cutoffFrequency = 1400f; b_lp.cutoffFrequency = 160f; spectrum(); StartCoroutine(SyncPlayNextTrack(t_src, t_lp, playlist[trackNumber])); StartCoroutine(RefreshSpectrum()); }
// Use this for initialization void Start() { m_filter = GetComponent <AudioLowPassFilter>(); m_defaultCutoff = m_filter.cutoffFrequency; Glitch(); }
public void Deafness() { AudioLowPassFilter filter = earObject.GetComponent <AudioLowPassFilter>(); activeAudioDisorders.Add(filter); filter.enabled = true; }
// Use this for initialization void Start() { audioSource = GetComponent <AudioSource> (); audioFilter = GetComponent <AudioLowPassFilter> (); //open = 0; }
private void HandleLowPassFilter() { AudioCurveWrapper audioCurve = m_AudioCurves[kLowPassCurveID]; // Low pass filter present for all targets? AudioLowPassFilter[] filterArray = new AudioLowPassFilter[targets.Length]; for (int i = 0; i < targets.Length; i++) { filterArray[i] = ((AudioSource)targets[i]).GetComponent <AudioLowPassFilter>(); if (filterArray[i] == null) { m_LowpassObject = null; audioCurve.curveProp = null; // Return if any of the GameObjects don't have an AudioLowPassFilter return; } } // All the GameObjects have an AudioLowPassFilter. // If we don't have the corresponding SerializedObject and SerializedProperties, create them. if (audioCurve.curveProp == null) { m_LowpassObject = new SerializedObject(filterArray); audioCurve.curveProp = m_LowpassObject.FindProperty("lowpassLevelCustomCurve"); } }
public void Start() { var listenerObject = GameObject.FindGameObjectWithTag("Listener"); targetLowPassFilter = listenerObject.GetComponent <AudioLowPassFilter>(); targetHighPassFilter = listenerObject.GetComponent <AudioHighPassFilter>(); }
void Awake() { sampling_frequency = AudioSettings.outputSampleRate; lowPassFilter = GetComponent <AudioLowPassFilter>(); Update(); }