Audio Pitch change in real time ,Sound Picht Change in Real Time
Hello everyone! So I have been trying to manipulate the pitch of a sound depending on the position of a game object, in this case, the height of a ball while it bounces. Basically I want the normal pitch while the ball is falling and the pitch to increase when ball is going up. I have tried placing the processing of the audio on the update method but it does not work and it seems to glitch.
Does anyone have a way to manipulate the pitch in real time, probably using the Update method? I am new to this and any help would be appreciated.
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class BallPosition : MonoBehaviour
{ public Transform ball; public float startingPitch = 2.0f;
AudioSource wooshSource;
void Start()
{
AudioSource[] allMyAudioSources = GetComponents <AudioSource>();
ballSource = allMyAudioSources[0];
wooshSource = allMyAudioSources[1];
wooshSource.pitch = startingPitch;
}
void Update()
{
if (ball.position.y > 3.0f) //as higher point of the ball is 3.5 I want the clip to play with original pitch
{
wooshSource.pitch = startingPitch;
wooshSource.Play();
}
if (ball.position.y < 0.2f) // as y position below 0.2 means it is hitting the ground and going up so I am trying to stop the sound and reinitialize it with new values coming from the ball position information.
{
wooshSource.Stop();
wooshSource.pitch += ball.position.y * startingPitch;
wooshSource.Play();
}
}
,Hello everyone! So I have been trying to manipulate the pitch of a sound depending on the position of a game object, in this case, the height of a ball while it bounces. Basically I want the normal pitch while the ball is falling and the pitch to increase when ball is going up. I have tried placing the processing of the audio on the update method but it does not work and it seems to glitch.
Does anyone have a way to manipulate the pitch in real time, probably using the Update method? I am new to this and any help would be appreciated.
public class BallPosition : MonoBehaviour
{ public Transform ball; public float startingPitch = 2.0f;
AudioSource wooshSource;
void Start()
{
AudioSource[] allMyAudioSources = GetComponents <AudioSource>();
ballSource = allMyAudioSources[0];
wooshSource = allMyAudioSources[1];
wooshSource.pitch = startingPitch;
}
void Update()
{
if (ball.position.y > 3.0f) //as higher point of the ball is 3.5 I want the clip to play with original pitch
{
wooshSource.pitch = startingPitch;
wooshSource.Play();
}
if (ball.position.y < 0.2f) // as y position below 0.2 means it is hitting the ground and going up so I am trying to stop the sound and reinitialize it with new values coming from the ball position information.
{
wooshSource.Stop();
wooshSource.pitch += ball.position.y * startingPitch;
wooshSource.Play();
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612191950im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Controlling Pitch of Audio Source with the objects Position (Y position) 2 Answers
How to keep the same yaw(right/left) and pitch(up/down) controls rotation as I roll ? 0 Answers
change sound pitch on object 0 Answers
Yaw And Pitch Switched When Rolled To The Side 0 Answers
unity microphone pitch detection 0 Answers