小编bsa*_*bsa的帖子

这个简单的FM合成器设计出了什么问题?

我正在尝试使用Audiolet(一个综合库,http: //oampo.github.io/ )在JavaScript中实现Yamaha YM3812声音芯片(又名OPL2 http://en.wikipedia.org/wiki/YM3812)的一些功能.Audiolet/api.html)

Audiolet允许您将合成器构建为节点图(振荡器,DSP,包络发生器等).

OPL2有9个通道,每个通道有两个运算符(振荡器).通常,每个通道中的一个振荡器调制另一个振荡器的频率.为了模拟这个,我为每个频道建立了一系列节点:

Synth节点链(九个通道之一)

已实施OPL2频道

节点链创建和连接代码:

var FmChannel = function(audiolet) {
    this.car = new ModifiedSine(audiolet);
    this.carMult = 1;
    this.setCarrierWaveform(this.SIN);
    this.mod = new ModifiedSine(audiolet);
    this.modMult = 1;
    this.setModulatorWaveform(this.SIN);
    this.modMulAdd = new MulAdd(audiolet);
    this.carGain = new Gain(audiolet);
    this.carEnv = new ADSREnvelope(audiolet, 0, 0.1, 0.1, 0.1, 0.1,
        function() {
            this.carEnv.reset();
        }.bind(this)
    );
    this.carAtten = new Multiply(audiolet);
    this.modGain = new Gain(audiolet);
    this.modEnv = new ADSREnvelope(audiolet, 0, 0.1, 0.1, 0.1, 0.1,
        function() {
            this.modEnv.reset();
        }.bind(this)
    );
    this.modAtten = …
Run Code Online (Sandbox Code Playgroud)

javascript signal-processing sound-synthesis audiolet web-audio-api

38
推荐指数
1
解决办法
1474
查看次数

可以使用链接预取来缓存JSON API响应以用于以后的XHR请求吗?

给定一个JSON API端点/api/config,我们试图<link rel="prefetch" href="/api/config">在HTML文档的头部使用.当Chrome访问HTML中的链接标记时,Chrome会按预期下载数据,但是稍后会通过XHR从我们的脚本再次请求数据.

服务器配置为允许缓存,并Cache-Control: "max-age=3600, must-revalidate"在标头中进行响应.当Chrome再次请求数据时,服务器会以304 Not Modified状态正确响应.

用例是这样的:将始终使用XHR(AngularJS解析,如果相关)从我们的单页面应用程序中的Javascript请求配置端点.但是,我们的脚本非常大并且需要很长时间才能解析,因此在解析完成之前不会请求JSON配置.预取将允许我们使用一些解析时间来从API端点获取和缓存响应,否则必须等待脚本加载.

html javascript google-chrome prefetch browser-cache

14
推荐指数
1
解决办法
1704
查看次数

struct A数组的静态初始化,其中struct A包含指向struct B数组的指针(在C中)

给定以下typedef:

// Structures for kana to romaji conversion lookup
typedef struct {
  const u16 kana; // Kana codepoint
  const char* romaji;
} KanaSuffix;

typedef struct {
  // Kana codepoint is implied by position in array
  const char* romaji;
  const KanaSuffix* suffixes;
} KanaPrefix;
Run Code Online (Sandbox Code Playgroud)

是否可以KanaPrefix在一个步骤中静态初始化一个数组,其中数组的某些元素suffixes指向静态数组KanaSuffix

现在我这样做:

const KanaSuffix KANA_SUFFIXES_KI[] = {
  { 0x3030, "kya" },
  { 0x3032, "kyo" }
};

const KanaPrefix KANA_TO_ROMAJI[] = {
  { NULL, NULL },
  { "a", NULL },
  { "ki", …
Run Code Online (Sandbox Code Playgroud)

c arrays struct

3
推荐指数
2
解决办法
104
查看次数

阻止除触发器之外的列更新

是否可以配置Postgres数据库,使得特定的列只能由触发器更新,而仍然允许触发器本身响应角色的更新而执行,而无权更新该列?如果是这样,怎么办?

例如,给定的表和这样的触发器:

CREATE TABLE a(
  id serial PRIMARY KEY,
  flag boolean NOT NULL DEFAULT TRUE,
  data text NOT NULL
);

CREATE TABLE b(
  id serial PRIMARY KEY,
  updated_on DATE NOT NULL DEFAULT CURRENT_DATE,
  a_id INTEGER NOT NULL,
  FOREIGN KEY (a_id) references a(id)
);

CREATE FUNCTION update_aflag() RETURNS trigger AS $update_aflag$
  BEGIN
    UPDATE a
    SET flag = FALSE
    WHERE id = NEW.a_id;
    RETURN NEW;
  END;
$update_aflag$ LANGUAGE plpgsql;

CREATE TRIGGER update_aflag_trigger
  AFTER INSERT ON b
  FOR EACH ROW
  EXECUTE PROCEDURE update_aflag() …
Run Code Online (Sandbox Code Playgroud)

postgresql permissions triggers

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