ボイス・アサイナ

ボイス・アサイナ (9)

「ノートオン・カウント」を導入したシングル・アサイン・アルゴリズムでの「同音連打」の例を示します。 まず、ノートオン・カウントを書き加えた初期状態の図を下に示します。 「@1」のように表示してあるのがノートオン・カウントです。

ボイス・アサイナ (8)

今回は「シングル・アサイン」の場合を考えます。 シングル・アサインの場合には、同じ MIDI チャンネル、同じ音程の音に対しては、2つ以上のボイスを割り当てることはありません。 したがって、ノートオン・メッセージに対して、アクティブ・キューと、ホ…

ボイス・アサイナ (7)

「マルチ・アサイン」設定では、「同音連打」に対しても普通の音と同様に扱い、特別なことはしていません。 したがって、前の説明で尽くされていますが、一応、同音連打の場合についても簡単に説明しておきます。 まず、下の初期状態から始めます。

ボイス・アサイナ (6)

ボイスを「再利用」する実際的なアルゴリズムは次のようになります。 「同音連打」に対しては「マルチ・アサイン」を仮定しています。 入力データの同時発音数が、ハードウェアの同時発音数を越える場合については考慮してありません。

ボイス・アサイナ (5)

今回からは、リソースに制限のある現実の場合について考えます。 まず、2048 要素の 2 次元配列を用意するのは非現実的ですから、MIDI チャンネル番号か、ノート番号かの 1 次元配列に縮小することを考えます。 この場合、MIDI チャンネル番号をインデクスと…

ボイス・アサイナ (4)

グランド・ピアノには 3 本、アップライト・ピアノには 2 本か 3 本の「べダル」がありますが、その一番右側のべダルが「ダンパー・ペダル」で、そのダンパー・ペダルを踏み込むと、すべてのダンパー (damper) が一斉に持ち上がり、鍵盤を離してもすぐに音が…

ボイス・アサイナ (3)

前回の例では、同音連打でも、ノートオン/ノートオフ・メッセージが直接に1対1対応していて、ふたつの独立した音となっていましたが、可能性としては、MIDI データ上で、下の図のように、最初のノートオン (Note_ON1) の後にノートオフが来ないで、別のノ…

ボイス・アサイナ (2)

ボイス・アサイナを考える最初の段階として、実現可能性はともかく、プログラムおよびハードウェアのリソース (資源) が制約なく、無限に使える場合について検討してみます。 到着した MIDI ノートオン・メッセージ1個に対応して、1個の音を発音させるのが…

ボイス・アサイナ (1)

タイトルの「(ダイナミック) ボイス・アサイナ」(Dynamic Voice Assigner) とは、限られた数の「発音エレメント」(これをこの話題では「ボイス」と呼ぶことにします)を、各チャンネルの MIDI ノートオン・メッセージに対して、固定的ではなく、動的に柔軟に…