-1

サウンドの単一のインスタンスをループして一種のサステイン効果を作成するオーディオワークレットを作成しようとしています。入力の何セクションをループしても、ブリップ型のスキップ音が聞こえ続けます。1 つのインスタンスはプロセッサへの呼び出しの数?

あなたにアイデアを与えるために、これは私がこれまでに持っているものです:

        constructor() {
            super();
            this.sound = [];
            this.count = 20;
            this.step = [0, 0];
        }
        process(inputs, outputs, parameters) {
            if (inputs && inputs.length) {
                for (var i = 0; i < inputs[0].length; i++) {
                    var input = inputs[0][i];
                    var output = outputs[0][i];
                    if (!this.sound[i]) {
                        this.sound[i] = [];
                    }
                    if (this.sound[i].length < this.count) {
                        this.sound[i].push([]);
                        for (var j = 0; j < input.length; j++) {
                            this.sound[i][this.sound[i].length - 1][j] = input[j];
                        }
                    } else if (this.sound[i]) {
                        var s = this.sound[i][this.step[i] % this.sound[i].length];

                        for (var j = 0; j < s.length; j++) {
                            output[j] = s[j];
                        }

                        this.step[i]++;
                    }
                }
            }
            return true;
        }

したがって、チャンネルごとに長さ N の配列で着信入力をキャプチャするという考え方です (私の場合は 2 つのチャンネルがあります)。次に、その配列がいっぱいになると、ノードが無効になるまで、その配列を循環して出力を埋めます。

4

1 に答える 1