[[前回>VSTをC言語で作るための準備]]書いてから3ヶ月たちました。 本来ならそろそろ更新しなきゃいけないのですが、そもそもシンセの仕組みを理解してなかったので、 それを理解するために[[SynthMaker]]を入手しました。 まずはここからシンセ作りをはじめたいと思います。 **今回は発音をしてみます 実はこの段階で3時間悩みましたw; まぁ取扱説明書を読まないタイプですし、英語読めないですしw;; 他にもそんな人がいるだろうと思い、第1回は音を鳴らしてみようと思います。 **音を入出力する方法 まずはここからはじめなくてはいけません。 SynthMakerでは入出力の手段が4通り考えられます。 実際に使ったことがないのもあるので憶測を含みますがw; |入力|出力|見解| |ASIO In|ASIO Out|ASIOを使った入出力方法です。&br()こちらはライブをやるときにSynthMakerをつなげることができそうですね。&br()VSTeの様子を外部入力から確かめるのに有効?| |MIDI In|MIDI Out|MIDI入出力。&br()MIDIデバイスに出力しているのでMIDIの状態の確認や、操作ができます。&br()VSTというよりアプリケーションを作るときに向いている?| |MIDI In|DirectSound Out|tie2478が制作のときに最も使う入出力です。&br()MIDIキーボードからPC内蔵すピーカーに出力して使ってます。| |MIDI In|ASIO Out|ASIOデバイスを持っている場合、こっちの方がいいのかな?&br()DS Outとほぼ同じ効果が得られます。| こんなところでしょうかw^; この奮闘日記では特に3番目のMIDI In →DS Outを使って制作したいと思います。 **とりあえず音を鳴らす まぁ何はともあれ、音を入出力する装置を作りましょう。 音を鳴らすには、「1.キーボードの情報を受け取り」、「2.オシレーターに情報を流し」て、「3.波形を作る」必要があります。 これを簡単に接続してみました。 &image(VST_01.png) これでVSTiの仕組みは完成です(ぇ 今回の目的は音を鳴らすだけなので、特別なことは一切していません。 みただけでわかる人はわかるやも知れませんが、解説に行きたいと思います。 **1.キーボードの情報を受け取る MIDIデータの受け取りの方法はこの方法が主です。 必ずといっても良いほど使う操作なのでこれは確実に覚えてしまいましょう。 &image(VST_02.png) 「MIDI to Poly」は、MIDIデータを受け取って数値情報にそれぞれ変換するものです。 デフォルトではこの「MIDI to Poly」が2種類存在するので、黒っぽいほうではなく、灰色の方を選んでください。 黒のほうは開発者向けのものになります(操作が非常に難しい) それに対して灰のほうは、あらかじめメーカー側が用意してくれている完成品なので慣れないうちは迷わず使いましょう。 出力側の説明に行きます。 |Frequency|音の周波数を返します。&br()設定によっては周期を返すこともできますが、ここでは割愛します。| |Pitch|MIDIのノート番号を返します。&br()こちらを使って音にすることもできます。| |Velocity|音量を返します。&br()MIDIの強弱判定に使います。| |Gate|正直使ったことがないので謎なのですが、MIDIが入力されている間、真になるようです。| |Trigger|こちらも使ったことはないですが、MIDIが入力された瞬間だけ、真になるようです。| 今回は「Multi Osc」が周波数を引数に使うので、Frequensyのみ接続に使いました。 **2.オシレーターに情報を流す 先にも書いたのですが、SynthMakerには完成品が用意されています。 なので今回は難しい操作を省くためにも、オシレーターも完成品を使うことにします。