我有前任。字符串 t0 表示 0 位置的高音谱号。 音高表示法是 B4
所以 t1 = C5 , t-1 = A4 , t-2 = G4 ......
我应该在数组中创建每个字符串来映射所有音符,还是可以轻松完成? THX。
答案 0 :(得分:0)
我的音乐理论绝对不符合标准,但如果我得到你要求的东西,更多的是如何识别音符本身和转换成不同的格式。
您绝对不需要映射所有笔记。我会创建一个音符阵列,然后计算八度音和基音的偏移量。从那里,它是一个简单的数组查找和字符串连接,以获得八度音程。
这样的事情:
var notes = ['B','C','D','E','F','G','A'];
function stringtopitch(input)
{
// get the base value
num = parseInt(input.substr(1));
mod = 0
// correct for octaves as needed and identify them
while (num < 0) { num+=7; mod -=1; }
while (num > 7) { num-=7; mod +=1; }
return notes[num] + (mod+4);
}
答案 1 :(得分:0)
这是你正在寻找的吗?
var sConn : WideString;
begin
sConn := PromptDataSource(Form1.Handle, '');
end;
&#13;