Tag: audioclip

AudioClip的频率和音高关系 – Unity3D

我试图仅使用6个音频剪辑重新创建全系列的吉他。 我想有一种设置音频剪辑频率的方法,但audio.frequency只返回基于压缩格式而不是实际音调的音频频率。 我知道我可以阅读GetSpectrumData,但是这个解决方案相当复杂,需要进行一些傅里叶变换分析或类似的东西。 影响音高,很容易改变音调,所以我可以上下,但是有办法弄清楚使用的步骤是什么。 void Update () { CheckAudio(KeyCode.Q, 1.0f); CheckAudio(KeyCode.W, 1.1f); CheckAudio(KeyCode.E, 1.2f); CheckAudio(KeyCode.R, 1.3f); CheckAudio(KeyCode.T, 1.4f); } void CheckAudio(KeyCode key, float pitch) { if (Input.GetKeyDown (key)) { audio.pitch = pitch; audio.Play (); } } 我听说听起来不对劲。 知道初始音调E4 329.63Hz,音高为1是否有任何影响音高的方程式,我会得到下一个键F4 349.23Hz(或足够接近)? 还必须考虑Unity AudioSource将音调限制在-3/3范围内(我认为这超出了需要)。 编辑:添加一些个人研究。 似乎音高1是初始音符,设置为2给出相同的音高一个八度。 由于半音阶(钢琴上的所有黑白音符)都是12个键,我假设每步使用1/12应该这样做。 听起来很接近,但我觉得它不太对劲。 这是新代码: [SerializeField] private AudioSource audio; float step = 1f/12f; […]