小编rya*_*agz的帖子

网络音频:Hz和Cents

我正在尝试制作一个简单的振荡器程序,我可以改变Octave类型的Massive VST显示正负数的方式:

大规模振荡器

现在,我知道一个八度音程有1200美分(每个半音100美分).我遇到的问题是,在制作Osc代码时,我意识到它的音高是用Cents测量的.

ctx = new webkitAudioContext(); 
function osc1(pitch){ 
osc = ctx.createOscillator(), 
osc.type = 2; //0 = sine, 1 = square, 2 = saw, 3 = triangle, 4 = custom
osc.frequency.value = pitch; //in cents
gainNode = ctx.createGainNode(); 
osc.connect(gainNode); 
gainNode.connect(ctx.destination);
gainNode.gain.value = 1; 
osc.noteOn(0); 
};

osc1 (20);
Run Code Online (Sandbox Code Playgroud)

由于Pitch改变了音符的频率,我很困惑的是,没有MIDI键盘我怎么知道

  1. 正在播放什么音符?
  2. 正在播放音符的频率是多少?

此外,我怎样才能从这些波形中获得低音?我做了几个测试,产生1美分,2美分,5美分,20美分等声音,看看它们是如何发声的,当Osc以1美分的速度产生音高时,我得到的只是低咔嗒声,而2美分,我在4/4节拍中获得几乎相同的点击.根据我的理解,您可以在地图上查看像频率一样的频率,同样地,像这些点之间的距离一样.话虽如此,由于声音是直接从浏览器生成的,因此美分如何确定音符的频率?另外,如果它只是移动振荡器的音高那么简单,那么振荡器的启动是什么?换句话说,你在说什么"投球"?

我希望我写的内容很有意义,因为我自己很困惑.

感谢您的任何帮助和反馈!

html javascript audio html5 web-audio-api

3
推荐指数
1
解决办法
897
查看次数

你能创建一个 JSON 构造函数吗?

我知道 JSON 是用来交换信息的。让我感到困惑的是,如果可能的话,我希望能够使用 JSON 来存储和调用对象及其构造函数,但是由于 JSON 是文字符号,我想知道是否有办法用某种类型的填充 JSON 对象参数构造函数很像普通构造函数的工作方式。

我发现的最接近的事情是这样的:

普通构造函数:

var dude = function(name, age) {
this.name = name;
this.age = age;
}
var bro = new dude("chad", 22);
Run Code Online (Sandbox Code Playgroud)

JSON:

var bro = {
'name': "chad", 
'age': 22
};
Run Code Online (Sandbox Code Playgroud)

但是,即使考虑到您可以随时调用的构造函数var bro2 = new dude("tony", 21);,并dude在您想要的任何时候都有一个新实例,即使这些也不是完全相同的。您如何将这种类型的功能与 JSON 混合在一起?

javascript json constructor object

2
推荐指数
1
解决办法
8984
查看次数

标签 统计

javascript ×2

audio ×1

constructor ×1

html ×1

html5 ×1

json ×1

object ×1

web-audio-api ×1