我正在尝试使用Audiolet(一个综合库,http: //oampo.github.io/ )在JavaScript中实现Yamaha YM3812声音芯片(又名OPL2 http://en.wikipedia.org/wiki/YM3812)的一些功能.Audiolet/api.html)
Audiolet允许您将合成器构建为节点图(振荡器,DSP,包络发生器等).
OPL2有9个通道,每个通道有两个运算符(振荡器).通常,每个通道中的一个振荡器调制另一个振荡器的频率.为了模拟这个,我为每个频道建立了一系列节点:
Synth节点链(九个通道之一)

节点链创建和连接代码:
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 = …javascript signal-processing sound-synthesis audiolet web-audio-api
给定一个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端点获取和缓存响应,否则必须等待脚本加载.
给定以下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;
是否可以KanaPrefix在一个步骤中静态初始化一个数组,其中数组的某些元素suffixes指向静态数组KanaSuffix?
现在我这样做:
const KanaSuffix KANA_SUFFIXES_KI[] = {
  { 0x3030, "kya" },
  { 0x3032, "kyo" }
};
const KanaPrefix KANA_TO_ROMAJI[] = {
  { NULL, NULL },
  { "a", NULL },
  { "ki", …是否可以配置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() …javascript ×2
arrays ×1
audiolet ×1
c ×1
html ×1
permissions ×1
postgresql ×1
prefetch ×1
struct ×1
triggers ×1