Description
链接:https://pan.baidu.com/s/1GNkSPuYM6xxKISnJzuw3vA?pwd=etzv
提取码:etzv
视频是顺便录的,短的很,剪都没剪,主要是分享资源
代码很屎山,因为是一中午乱写赶出来的,也没有任何高深的算法,核心就是个简单的声学公式:
pitch(音高值) = 69 + 12 * log(2, ff(频率)/440),注意此处pitch为实数而不是A5、C#6这些符号(显然)。
其中pitch每相差1就对应一个半音,也与调音软件中的一个音高单位相对应。
代码也实现了将pitch转换为FL标准的A5这种字母+数字的符号形式,FL中C为C5,A=440Hz,
而关于A=432Hz等其他标准的事我不懂别问我。
代码是C++11,C++98请把第6~11行constexpr改为const,第22~26行范围for改为如下:
for(std::vectot<T>::iterator iter = expects.begin(); ++iter; iter != expects.end())
{
if(choice_var == *iter)
is_legal_input = true;
}
若还有地方需要更改欢迎大佬指出,我现代C++都用惯了,不过这年头应该也没人用古代C++了吧
Comments
坏了我刚做了一个音高转频率的 咱俩直接互相转换[doge][doge][doge][doge]
♥ 2 ↩ 7
《音mad给了我一个近乎完美的童年》
♥ 1
酷!支持up![打call]
♥ 1
好好好!
♥ 1
_(:з」∠)_
♥ 1
李海的(^・ω・^)
♥ 1
UP主加油!