はじめに #
みなさん、DTM、してますか?
私は絶対音感を持っておらず、いつもディグリーネームや Key=C でコード進行を認識しているので、Key=E とかでコード進行を説明されてもよくわかりません。
DTMにおいても、MIDIキーボードでの演奏やピアノロールでの入力は全て Key=C でできたらいいのになーと考えていました。
全て打ち込み終わってから移調するということも一瞬考えたのですが、本来鳴る音を最後にしか聴けないのは、それはそれで少し嫌です。
今回は、打ち込みは Key=C、音はトランスポーズされたキーで出す方法を見つけましたので、紹介します。
今回やること #
-
一か所の値を変えたら全体のキーが変わる
-
トラックによって適用するかしないかを選べるようにする(ドラムなどは除外できるようにする)
なお、今回は MIDI ついてのみ解説します。音声データのトランスポーズについては取り上げません。
環境 #
-
Windows 11
-
REAPER v7.47
手順 #
まず、全体のキーを変えるためのトラック Transpose と、キーを変えたいトラック(例:Piano)を作ります。
次に、Transpose トラックに ReaControlMIDI を追加します。
コントロールチェンジを有効にして、Rawモードにチェックを付け、一番上をCC 3に、他はなしに変更します。CC 3は64にしておきます。
Transpose トラックのルーティング設定を開いて、マスターへの送信のチェックを外します。さらに、センドの追加から、Pianoを選択します。
音声を無しにします。他はそのままでOKです。
次は Piano トラックを操作していきます。
Piano トラックにプラグインMIDI Transpose Notesを追加し、パラメータ→「パラメータ一覧」のパラメータモジュレーション/MIDI リンク→Transpose Semitonesを選択します。
パラメータモジュレーション/MIDI リンクも表示されます。Transpose Semitonesなら良いのですが、違う場合はパラメータ一覧と薄く書いているグループの方のパラメータモジュレーション/MIDI リンクを選択してください。
MIDI またはエフェクトパラメータとリンクにチェックを入れ、(無し)をクリックしてMIDI→CC→03を選択します。
オフセットは-50.5%、スケールは100%とします。
音源を追加する際は、MIDI Transpose Notes→ 音源 の順になるようにしてください。
これで完成です。
使い方 #
Transpose トラックの ReaControlMIDI の CC 3 の値を、64+(トランスポーズしたい半音数)にします。
例えば、全体の音を+4にしたいなら68、-5にしたいなら59と入力します。
ReaControlMIDI の CC 3の値を変更しないと MIDI データが送信されないので、適当に変更して送信してください。
複数のトラックに適用する #
Transpose トラックの MIDI をトランスポーズしたいトラックすべてにセンドし、トランスポーズしたいトラック全てで MIDI Transpose Notes を追加して パラメータモジュレーション/MIDI リンクの設定をすれば、複数のトラックが同じようにトランスポーズするようになります。
このようにすることで、グローバルトランスポーズを実現できます。
もちろん設定をしなければ何もされないので、ドラムなどがトランスポーズされることはありません。
どういう感じにMIDI信号が流れているの? #
Transpose トラックの ReaControlMIDI では、CC 3の値が変更されるたびにCC 3の値を送るようになっています。センドを Piano にしているため、Piano トラックに送信するようになります。
Pianoトラックでは、MIDI Transpose Notes の Transpose Semitones が CC 3 と連動するように設定したので、送られてきた CC 3 の値に応じて、演奏データがトランスポーズするようになります。
トランスポーズされた MIDI データはそのまま音源に入り、音声データになります。
さて、以上のことをまとめると以下のようになります。
結果として、ピアノロール上では Key=C で入力でき(画像右上)、実際にスピーカーから聞こえてくる音は Key=E になります(画像右下)。
CC 3 を使ってトランスポーズの情報を送りましたが、他の番号を使っても構いません。コントロールナンバー一覧を見ながら、よく使われる番号(11, 64など)を避け、一般に使われていない番号を使うといいでしょう。
オートメーション #
Transpose トラックの ReaControlMIDI をオートメーションで制御すれば簡単に転調ができます!!!
(転調しているのにピアノロール上ではずっと Key=C なのでちょっとだけ違和感はありますが)
Transpose トラックの TRIM から、エンベロープの設定画面に入ります。
CC 3の アクティブ をクリックすると、
トラックにエンベロープが追加されます。
これを変えていけば、時間経過に応じて自動でキーを変えられるようになります。
注意点 #
この状態だとキースイッチで入力した奏法もトランスポーズされてしまい奏法がおかしくなるので、別トラックで奏法のみを入力するなど工夫する必要があります。
例えば、Piano-Control トラックを新たに作り、音源は Piano-Control に挿入し、Piano トラックの MIDI データを Piano-Control トラックにセンドすると、音階の部分のみがトランスポーズされ、その後に奏法が入力されるため正常に演奏されます。
また、奏法のトランスポーズを回避する方法として、Reaticulate などを使ってトランスポーズしてから奏法を挿入する方法もあります。Reaticulate はとても便利なパッケージで、今回の方法とも相性が良いので、いつか紹介します。