gpt4 book ai didi

c# - 音频编程,产生和谐

转载 作者:行者123 更新时间:2023-11-30 16:29:18 25 4
gpt4 key购买 nike

我正在尝试开发类似于 tonematrix 的应用程序在 C# 中。我首先尝试使用 .net 和 NAudio 库,现在我尝试使用 XNA,但似乎我所能得到的只是杂音。


使用 NAudio,我生成了 8 个具有不同频率的简单正弦波,从 (440hz * 1) 到 (440hz * 8) 不等。

XNA 中,我使用了同一音频文件(如钢琴的 D4 音符)的多个 SoundEffectInstance,每个都有不同的 Pitch 值;音高值最多可以升高或降低一个 Octave 。

在这两种情况下,当声音重叠时,我听到的是噪音而不是音乐。也许我全错了,这不是混合不同音调/频率的声音的问题。

我很难相信音调矩阵只使用了一个“简单的正弦波合成器”,因为声音非常丰富,当它们混合在一起时总是会产生谐波,而简单的正弦波总是听起来很丑对我来说是人工的。

我是否采用了错误的方法来营造和声?您知道 Tonematrix 使用的正弦波到底发生了什么吗?

最佳答案

我碰巧能够回答你的音乐问题,但这类问题最好在 https://music.stackexchange.com/ 上提问.

首先是规模。这些东西一般用一个pentatonic scales (来自维基百科:“这种规模的任何音高都可以以任何顺序或组合播放而不会发生冲突”)。根据评论,您链接的示例使用从 A 到 A 的 D 大调五声音阶。

你会发现它不是使用直线上升的正弦波,而是使用 ADSR envelope在开始时给它令人愉悦的“冲击力”,在结束时给它(假的)“回声”。这很容易实现,因为您只需要调制幅度。

据我所知,将波形混合在一起时并没有做任何特别的事情。很可能它正在做简单的加法。

至于实现,如果您有一种生成正弦波的方法,而不是尝试对样本进行音高移动,为什么不使用 DynamicSoundEffectInstance 并将您的正弦波提供给它呢?

XNA 的内置音高变换并不是很适合这项任务。您确定使用正确的值来调整它吗?

关于c# - 音频编程,产生和谐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6396229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com