将字符串转换为 javascript 中的音高符号
Convert string to pitch notation in javascript
我有前任。字符串 t0 表示 高音谱号 在 0 位置。
在音高符号中是 B4
所以 t1 = C5 , t-1 = A4 , t-2 = G4...
我应该在数组中创建每个字符串来映射所有音符,还是可以轻松完成?
谢谢
我的乐理肯定也达不到标准,但如果我得到你所要求的,更多的是如何处理音符本身的识别和转换成不同的格式。
你绝对不需要映射所有的笔记。我会通过创建一个音符数组来着手,然后计算八度音阶和与基音的偏移量。从那里开始,它是一个简单的数组查找和字符串连接来获得八度音阶。
像这样:
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);
}
这是您要找的吗?
let curT = -22;
const letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
let result = {};
for (let i=0; i < 52; i++) {
const letNum = `${letters[i % 7]}${(parseInt(i / 7) + 1)}`;
result[`t${curT}`] = letNum;
curT += 1;
}
console.log(result);
我有前任。字符串 t0 表示 高音谱号 在 0 位置。 在音高符号中是 B4
所以 t1 = C5 , t-1 = A4 , t-2 = G4...
我应该在数组中创建每个字符串来映射所有音符,还是可以轻松完成? 谢谢
我的乐理肯定也达不到标准,但如果我得到你所要求的,更多的是如何处理音符本身的识别和转换成不同的格式。
你绝对不需要映射所有的笔记。我会通过创建一个音符数组来着手,然后计算八度音阶和与基音的偏移量。从那里开始,它是一个简单的数组查找和字符串连接来获得八度音阶。
像这样:
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);
}
这是您要找的吗?
let curT = -22;
const letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
let result = {};
for (let i=0; i < 52; i++) {
const letNum = `${letters[i % 7]}${(parseInt(i / 7) + 1)}`;
result[`t${curT}`] = letNum;
curT += 1;
}
console.log(result);