皆様こんにちは、梅田ロフト店デジタルアドバイザーの阪口です。
今回は前回掲載したところ様々な方から大変ご好評をいただきましたNative Instruments REAKTORの記事の続編をさっそく角出さんが作成してくださいましたので掲載させていただきます。
角出さんいつもありがとうございます!
今回は前回の内容に加えてさらに多くのシンセサイザーの基本的な部分の機能を追加できるように解説されており、前回の記事と合わせて実践すれば様々なモジュラーシンセを複雑にパッチングするのと同じぐらい、それ以上の多彩なシンセサイザーを作ることができるようになりますので、REAKTORをお持ちの方はぜひ試してみてください!
それでは以下より角出さんの記事となります~↓
前回のおさらい
前回は、Native Instruments REAKTORを用いて1からシンセサイザーを作ってみました。
初めてということもあり、前半は画面の説明などが主で、作ったシンセもかなりシンプルなものでした。
ご覧の通り、オシレータの波形の変調やミックスこそできますが、シンセには必ずといってある、LFOを使ったモジュレーションもなければフィルタもありません。
これをふまえて今回は、前回ご紹介しきれなかったLFOやフィルタを導入したシンセサイザーの制作例をご紹介します。
前回作ったものは流用しないため、このテキストから始めることも可能ですが、画面の説明や操作など省略する点があると思います。初めての方は前回のテキストを一度ご覧いただくとよいかもしれません。
シンセサイザーを作ってみよう その2
1.スペックを考える
今回もスペックから考えていきましょう。
とりあえず、LFOやフィルタを導入することは決まっています。オシレータをどうするか考えていきます。
1-1.オシレータについて
REAKTORで取り扱えるオシレータは、サイン波(“Sine”)やノコギリ波(“Sawtooth”)などベーシックなものから、2極性の矩形波(“Bi-Pulse”)やマルチステップのランプオシレータ(“4-Ramp”など)といった少し変わったもの、サインバンク(“Sine Bank”…100を超えるサイン波を1モジュールで同時に合成できる)といった個性的なものまで様々です。
その数はなんと40!なんとなくですが、それぞれのアイコンがどういう波形かを表していそうです。
もう少し見ていきます。
サイン波などのベーシックなオシレータには共通のものがあります。”◯◯FM”、”◯◯Sync”といったものです。それぞれどう違うのでしょうか?
上の図だと、下のモジュールほど機能が増えます。それぞれの入力ポートが持つ機能について説明します。カッコ内は補足です。
“P”はMIDIノートナンバーの入力ポートです(Pitch)。前回でも使いました。MIDIノートナンバーは一般的には整数(1,2,3…)ですが、この入力ポートは小数(0.25など)も受け付けるので、微分音といった半音より狭い音程などの表現も可能です。
“A”はMIDIのゲート信号の入力ポートです(Amplitude)。これも前回使いました。オシレータの最大振幅値を設定します。
“Out”はオシレータの音が出力されるポートです。
“F”は周波数補正です(Frequency)。正の数が入力されれば音程は上がり、負の数が入力されれば音程は下がります。単位はHzです。
“Snc”はシンク入力です(Sync)。入力値が0から正の数に変化する際に出力をリセッし、”Ph”
で設定された位相から出力を再開します。
“Ph”は位相補正です(Phase)。もともとオシレータはノートオン時、モジュールのアイコンが示すように「位相が0」の地点から信号を出力します。“Ph”はこの地点を変更することができます。
いずれの入力ポートも、入力が何もなければそこは「ゼロが入力されている」という認識になります。
“P”、”F”、”A”はいずれも使い方がなんとなく分かるのですが、”Snc”や”Ph”はどんな使い方が考えられるでしょうか?
1-2.ハードシンクとは?
シンセサイザーの機能で、「ハードシンク」というものがあります。ハードシンクとは、2つのオシレータを強制的に同期させることによって複雑な波形を作り出す機能です。
元のオシレータを同期用オシレータで強制的にリセットすることによって、複雑な波形になっていることがお分りいただけると思います。同期用オシレータは元のオシレータの出力をリセットするだけなので、オシレータ自体はサイン波でも矩形波でも構いません。しかし、出力される音の波長(または周波数)は同期用オシレータに従うため、音程は同期用オシレータで決まります。
先ほどの”Snc”や”Ph”は、シンセサイザーにこういった機能を付加するのに有効です。
ハードシンクを用いたパッチング例↑
せっかくなので今回のシンセサイザーは、ハードシンクを用いたものを制作してみましょう。
今回のスペックは以下を考えました。
①LFOを少なくともひとつ使用する。
②フィルタを少なくともひとつ使用する。
③ハードシンク機能つきのオシレータを使用する。
前回ご紹介したADSRなども、適宜盛り込んでいきましょう。
2.制作してみる
それでは制作していきましょう。今回も出音を確認しながら進めていきます。
2-1.オシレータ
ではまず、オシレータ部分から作っていきましょう。
ストラクチャ内で右クリックし、
”Built-In Module”→”Oscillator”→”Sine Sync”および”Impulse”
”Built-In Module”→”MIDI IN”→”Note Pitch”および”Gate”
”Library”→”01 - Debug”→”Scope”
以上を図のように結線します。なお、”Freq”というKnobモジュールと”1”というConstantモジュールは、それぞれの入力ポートを右クリックし、”Create Control”、”Create Constant”で作ります。
文字キーボードを押して音が鳴るでしょうか。確認してみましょう。
音が鳴りました。Scopeの”mSec”を変更していくと、波形も確認できます。
しかし、ここでひとつ疑問があります。”Freq”の値は0でオシレータの”P”に何も入力されていないのに、なぜ音が鳴るのでしょう?この時の”Sine Sync”の周波数はいくつなのでしょうか?
先ほど「いずれの入力ポートも、入力が何もなければそこは『ゼロが入力されている』」と説明させていただきました。”P”には何も入力されていませんが、実は「MIDIノートナンバー”0”」が入力されている状態なのです。試しに上図の”Out~Snc”間のワイアリングを選択し右クリック→”Delete Wire”で切ったのち、キーボードを押してみましょう。低音が鳴ることが確認できます。
ノートナンバー”0”はMIDIの規格で決まっています。最も低いC(ド)です。つまりこの”SineSync”から出力される音の周波数は「最も低いCの周波数+”Freq”の値」となります。
現状では、パネルに表示されている”Freq”の値と実際に出力される音の周波数が違うことになります。どうすれば一致させられるでしょうか。
そもそも、ノートナンバー”0”の周波数はいくつなのでしょうか?調べてみましょう。
ノートナンバーの値を周波数に変換するモジュールがあります。
”Built-In Module”→”Math”→”Expon.(F)”をクリックします。
これがノートナンバーを周波数に変換するモジュールです。
続いて”Built-In Module”→”Panel”→”Numeric Readout”をクリックし、図のように結線します。
パネルの錠アイコンをクリックしアンロックしたのち、”Numeric Readout”を移動します。
“8.1759”という表示がされています。もうお気付きの方もおられるかもしれませんが、これがノートナンバー”0”の周波数です。(”Expon.(F)”の”P”がゼロ入力されている状態なのです)
本当に正しいか、もう少し調べてみましょう。有名な「A=440Hz」で検証してみましょう。
”Numeric Readout”のプロパティウインドウ→”Function”タブ→”Range”→”Max”を、”1”から”1000”へ変更します。
”Expon.(F)”の”P”ポートを右クリック→”Create Control”をクリック。
パネルに表示されているノブなどを見やすい場所へ適当に移動させて、ロックします。
“Numeric”の値が440になるように”Pitch”ノブの値を変えてみましょう。
69でした。ネットなどで調べていただくとお分かりになると思いますが、ノートナンバー69はAです。
”Expon.(F)”の働きが確認できました。
最も低いC=8.1759…Hzということが分かったので、”Sine Sync”モジュールの”F”ポートでこの値をマイナスしてあげれば良さそうです。
実際にやってみましょう。
”Built-In Module”→”Math”→”Add”と”Multiply”をクリックし、以下の図のように結線します。”Pitch”ノブと”Numeric Readout”はもう使わないので、消してしまいましょう。”Multiply”モジュールの手前には”-1”の”Const”モジュールを設けます。
”Expon.(F)”モジュールの手前に、”0”の”Constant”モジュールを置きました。あとで見て分かりやすくする目的で設けたもので、絶対必要というわけではありません。
”freq”ノブを”0”にして文字キーボードを押してみましょう。
【注意】
大音量で鳴らすと、スピーカを傷める恐れがあります。適度な音量でご確認ください。
信号が変化しなくなったことが確認できました。まさに0Hzが出力されている状態です。これで”Freq”ノブの値と、実際にオシレータから出力される信号の周波数が一致しました。
”Freq”ノブが”0”の場合は、キーボードの音程に合わせて音を出力するようにしてみましょう。
”Expon.(F)”モジュールをコピーして、以下の図のように結線します。
“Add”モジュールはデフォルトでは2入力ですが、プロパティウインドウでポート数を変えることができます。
オシレータの”P”ポートを使わなくても、鍵盤の音を鳴らすことができるようになりました。
ハードシンクの機能を復活させましょう。“Impulse”と”Sine Sync”の間の結線を元に戻します。
音を確認してみましょう。キーボードを操作しながら”Freq”ノブをまわしてみます。
今、”Freq”ノブのプロパティをご覧いただくと、パラメータは最大が”5000”になっていると思います。最大まで上げるとあまり音程感がなくなってしまいますね。ステップサイズも”50”ですし、音楽的に使えそうなレンジだけ残して調整してみましょう。
パラメータの調整は、そのシンセの特徴を決めていく作業だと思います。これは製作者の想いで決めることができ、絶対的な正解があるものではありません。筆者は下図のような設定にしてみましたが、皆さん思い思いのパラメータを考えてみてください。
もう一度音を確認してみましょう。キーボードを操作しながら”Freq”ノブをまわしてみます。
かなり複雑な倍音を持つ音が確認できたと思います。
ポリフォニック対応にしてみましょう。この点の解説に関しては、前回詳しく説明させていただきましたので、今回は操作方法のみ説明させていただきます。
”Built-In Module”→”Auxiliary”→”Audio Voice Combiner”を2つ用意し、以下の様に結線します。
ストラクチャの背景をクリックしたのち、プロパティウインドウの”Function”タブ→”VOICES”→”Voices”を”1”から”4”へ変更します。(“4”は任意です。同時発音数なので3でも6でも構いません)
キーボードでポリフォニーの確認をしてみましょう。
シンセサイザーっぽい音に近づいてきました。
“Sine Sunc”以外にも、他のオシレータも実装してみましょう。
”Built-In Module”→”Oscillator”→”Tri Sync”、”Saw Sync”、”Pulse Sync”を、以下のように結線します。
それぞれのオシレータを切り替えられるようにしましょう。本テキストでは、1つでも多くのモジュールをご紹介したいので、それに則ってモジュールを選びます。
”Built-In Module”→”Signal Path”→”Amp/Mixer”をクリックします。これはモノラルのミキサーモジュールです。
4オシレータを入力できるようにしてみましょう。プロパティウインドウ→”Function”タブ→”RANGE”→”Min Num of Ports”の値を”4”に変更します。
以下の図のように結線します。”Lvl”ポートに接続されているコントローラは、ポートを右クリック→”Create Control”で作成したのち、それぞれのオシレータの名前(Sin、Tri、Saw、Pls)にリネームしました。
パネルをアンロックして、フェーダを並べてみましょう。
位相補正のコントローラも追加してみましょう。オシレータモジュールの”Ph”を右クリック→”Create Control”をクリックで作成します。
パネルを以下の図のように並べます。
パネルを再びロックして、音を確認してみましょう。かなり複雑な倍音成分を持つシンセになってきました。
スペックで決めた、
③ハードシンク機能つきのオシレータを使用する。
の条件をクリアしました。
2-2.エンベロープ
ADSRモジュールを用いて、音の大きさを制御できるようにしてみましょう。
前回ご紹介した内容と同じですので、作業の流れのみ説明します。
”Built-In Module”→”LFO, Envelope”→”ADSR”をクリックし、下図のように結線します。”Knob”モジュールは、各ポートの右クリック→”Create Control”のクリックで作成します。
※今回、エンベロープのグラフ表示は省略します。
2-3.フィルタ
いよいよフィルタを実装していきましょう。
オシレータと同様、フィルタも多くの種類があります(23種類)。今回はレゾナンスが付属されているローパスフィルタから選定します。
”Built-In Module”→”Filter”→”Multi 2-Pole FM”をクリック。
フィルタのモジュールを見ると、オシレータのように色々な入出力ポートが確認できます。それぞれのポートについて説明します。
“P”、”F”はオシレータと同じです。この2つでカットオフ周波数を決定します。
“Res”はレゾナンスです。最大値は0.98と定められています。入力が1を超えると発振します。
“In”は音声信号入力です。
“HP”、”BP”、”LP”は、それぞれのフィルタを通過した信号が出力されます。
今回は、このモジュールのローパスフィルタを使ってみましょう。
”Multi 2-Pole FM”を、以下の図のように結線します。”Reson”ノブは、ポートを右クリック→”Create Control”で作成します。
入力されるノートの音程に追従して、フィルタが開閉するようになりました。視覚的に確認してみましょう。
”Multi 2-Pole FM”モジュールのプロパティウインドウ→”View”タブ→”VISIBLE”→”On”チェックを入れます。
パネルロックを解除し、モジュールを移動させます。
パネルをロックし、キーボードを使って動きを確認してみましょう。
キーボードに追従して、フィルタが開閉することが確認できました。
フィルタのカットオフ周波数を任意に変更できるよう、”Knob”モジュールを追加してみましょう。
現在、”Multi 2-Pole FM”モジュールの”P”ポートには、MIDIノートナンバーが入力されています。
”Knob”モジュールと”Add(足し算)”モジュールを使って、MIDIノートナンバーに足し算をすれば、任意にカットオフ周波数を変更できそうです。やってみましょう。
”Built-In Module”→”Math”→”Add”をクリック。
以下の図のように結線します。
”Add”ノブは、”Add”モジュールの入力ポートを右クリック→”Create Control”で作成します。
“Add”ノブの名前とレンジなどのパラメータを調整してみましょう。名称は”CutOff”、パラメータは以下の図のように設定しました。
パネルロックを解除し”CutOff”ノブを移動、再びロックしてフィルタ開閉の確認してみましょう。
フィルタ開閉が確認できました。
今、このシンセから鳴る音は常にフィルタを通過する状態になっています。
フィルタをスルーするスイッチを設けてみましょう。
”Built-In Module”→”Panel”→”Switch”をクリック。
この状態では、入力ポートが1つしかありません。2つに増やして切り替えられるようにしてみましょう。
“Switch”モジュールのプロパティウインドウ→”Function”タブ→”RANGE”→”Min Num of Ports”の値を”2”に変更します。
パネル上のスイッチを移動させてみましょう。パネルロックを解除し、移動させてみましょう。
移動し終わったら、再度ロックします。
パネルに表示される文字を変えてみましょう。モジュールの各名称部分をダブルクリックし、“Switch”を”Filter”に、1つ目の”In”を”Off”に、2つ目の”In”を”On”に変更します。
名称が変更されました。続いて以下の図のように結線します。
“On”スイッチを押すと”Multi 2-Pole FM”からの信号が、”Off”スイッチを押すと”Amp/Mixer”からの信号を受け取るようになりました。
パネルロックされていることを確認し、音を鳴らしながら確認してみましょう。
フィルタのオンオフ確認ができました。
フィルタセクションの最後に、エンベロープを追加してみましょう。
”Built-In Module”→”LFO, Envelope”→”ADSR”と”Built-In Module”→”Math”→”Multiply”をクリックし、下図のように結線します。”Knob”モジュールは、各ポートの右クリック→”Create Control”のクリックで作成します。
“CutOff”モジュールにエンベロープの値を乗算すれば良さそうですが、”ADSR”モジュールと”Multiply”が結線できません。なぜでしょうか。
”ADSR”モジュール側の”Out”ポートは白色ですが、”Multiply”ポート側は黄色です。何か関連があるのでしょうか。
REAKTORには、主に大きく分けて2つの信号があります。音声そのものである「音声信号」と、制御系で使用する「イベント信号」です。
いずれも連続的な数値を取り扱う信号なのですが、信号のレートが全く異なります。音声信号は(設定で変更可能ではありますが)44.1kHz、イベント信号はデフォルトで400Hzです。
音声信号は白色で表示され、イベント信号は黄色で表示されます。
そして、REAKTORのルールとして「イベント信号は音声信号の入力ポートに入れられるが、音声信号はイベント信号の入力ポートには入れられない」ということが定められています。よって上記のように結線ができないのです。
しかし、音声信号をイベント信号に変換するモジュールがあります。それを使ってみましょう。
“Built-In Module”→”Auxiliary”→”A to E”をクリック。以下の図のように結線します。
音声信号をイベント信号に変換できました。”A”、”D”、”S”、”R”ノブを移動し、音を確認してみましょう。
フィルタを通過する音が確認できました。
②フィルタを少なくともひとつ使用する。も、クリアできました。
2-4.LFO
最後にLFOを取り入れてみましょう。今回はピッチとフィルタにモジュレーションできるようにします。
”Built-In Module”→”LFO, Envelope”→”LFO”
”Built-In Module”→”Panel”→”Switch”をクリック。以下の図のように結線します。”Freq”ノブ、”Ampl”ノブはそれぞれの入力ポートを右クリック→”Create Control”で作成します。”Switch”モジュールは、先ほど作成たものと同じ要領です。
このLFOの振幅は”Ampl”ノブからの値で決まります。今、”Ampl”の最大値は1なので、ピッチにモジュレーションすると上下に最大で半音シフトするようなイメージです。
フィルタへのモジュレーションは調整しつつ決めていこうと思います。
ピッチ、フィルタそれぞれのモジュレーションオン/オフスイッチを設けましょう。”Built-In Module”→”Panel”→”Switch”を2つ用意し、以下の図のように結線します。
ピッチの方から接続していきます。
”Built-In Module”→”Math”→”Add”をクリックし、以下の図のように結線します。
次にフィルタ側を結線していきます。”Built-In Module”→”Math”→”Multiply”をクリックし、下図のように結線します。”Constant”モジュールは”10”に変更しました。
結線ができました。パネルロックを解除し、スイッチなどを並び替えていきましょう。
再びパネルロックし、動作を確認してみましょう。
LFOのモジュレーションも確認できました。最後の、
①LFOを少なくともひとつ使用する。
も、クリアできました。
最後に、前回も行いましたが、各セクションをマクロごとに格納し、外観を調整していこうと思います。
“Macro”モジュールは、ストラクチャの背景を右クリック→”New Macro”を選択します。
格納後の各セクションを以下に記載しますので、ぜひトライしてみてください。
おわりに
今回はハードシンク付きオシレータ、フィルタ、LFOを実装したシンセサイザーを制作しました。
かなり長くなってしまいましたが、ちゃんと制作いただけたでしょうか。ここまでできれば、きっと色々なシンセに応用できると思います。
REAKTORの魅力はたくさんありますが、その中の1つに、「こんなシンセが欲しい!」といった想いを実現できることが挙げられると思います。
その中には、今は世の中にはないようなシンセもあるかもしれません。
アイデアを実現するためのツールとして、ぜひご参考いただければと思います。
角出拓生(Kadode Takumi)
高校時代、カセットテープとMDを用いたノイズ/テープコラージュの楽曲を制作開始。
その後大学院で建築音響工学を専攻する傍ら、音楽活動ではアシッドハウス/アンビエント/ブレイクコア等の影響からダンスミュージックに傾倒し、これまでに2枚のアルバムを発表している。
stereotypeone名義ではオーディオヴィジュアルを軸としたライブ活動を展開中。
HP:stereotypeone.com
梅田ロフト店デジタル担当 阪口(さかぐち)
DJ歴20年、現在も現役DJで活動をしているDJ専門スタッフの阪口です。
今までクラブイベントや野外イベントでDJ、バンドのトラックメイカー、オーガナイザー等々色々と活動してきましたので、DJに関する事なら何でもご相談下さい。