0

イベントパターンの使い方を学ぼうとしています。毎回 1 オクターブ下に「ジャンプ」するシーケンスを期待して、次のように入力しました。

p = Pbind(*[
    instrument: \mySynth,
    midinote: Pseq([108, 96, 84, 72, 60, 48, 36, 24, 12], inf),
    dur: 0.2
]);

SynthDef(
    "mySynth",
    {
        |midinote, gate = 1|
        var stereofreq = [midinote, midinote];
        var audio = Pulse.ar(stereofreq, 0.5, mul: 0.8);
        var env = Linen.kr(gate, 0.01, 1, 0.1, doneAction: 2);
        OffsetOut.ar(0, audio * env);
    }
).add;

p.play;

確かに降順になりますが、間隔はオクターブではありません。midinoteキーの詳細が不足していますか?

4

1 に答える 1

1

はい、何かが欠けています:パターンが演奏されると、midinoteキーのデータは魔法のようにキーのヘルツ値に変換されます。freqしたがって、synthdef を記述するときは、 を使用するmidinoteのではなく、 を使用してfreqください。

疑わしい魔法のように思えるかもしれませんが、次のように考えてみてください: を使用して SynthDef を 1 回記述すれば、パターン内でorまたはfreqを自由に使用でき、それらはすべて変換されます。 SynthDef を使用して、別の名前のコントロールを使用します。midinotefreqdegree

何が起こっているのかを理解するには、このページが非常に役に立ちます:パターンガイド 07: 値の変換

于 2013-07-28T19:49:55.833 に答える