-
こんにちは、
X-Raymです。
-
REAPER5でのプログラミングについて、
チュートリアルを始めます。
-
REAPERはサウンド編集用のソフトウェアですが、
-
ReaScriptというものを扱うことが出来ます。
-
この"ReaScriptBasics"というビデオ・ブログでは
-
そのReaScriptについて解説します。
-
REAPERでのコーディングについて
学んでいきましょう。
-
レッスンの前に、REAPER Blogの
私の記事を読むことをおすすめします。
-
Blogには、このレッスンに
役立つ内容が書いてあります。
-
さて、このビデオでは実際に作ってみることで
-
ReaScriptというものを学んでいきます。
-
数ステップであなたもReaScriptが
書けるようになります。
-
それではまず、コンソールの使い方についての
レッスンを始めましょう。
-
新規reaScriptを作成してみましょう。
-
Actionsメニューから
Actionsウィンドウを開きます。
-
ReaScript: Edit new reaScript (EEL or lua)...を見つけて
-
Runを押して新規Scriptを作ります。
-
保存先Scriptsフォルダとしましょう。
-
ファイル名を"my new script"として
-
ファイルの種類を".lua"にして保存します。
-
ファイルの種類は、どの言語でスクリプトを
書くかにより決まります。
-
REAPERでは標準で、EELとLuaの2種類の言語で
プログラミングできます。
-
外部ライブラリをインストールすれば
Pythonも使用可能です。
-
今回、標準で使用可能なこと、
プログラミングが容易なこと、
-
高い処理速度を実現できること、
そして拡張性が高いことから、
-
Luaを使用することとしました。
-
Save(保存)ボタンを押すと、ウィンドウが表示されます。
-
これは、ReaScript Development Environmentと
いうもので、
-
REAPER内で直接プログラミングを可能にする
とても強力なツールです。
-
このツールは、REAPER5からLuaのみに搭載されています。
-
さて、コンソールにメッセージを表示する
プログラムを書いてみましょう。
-
コンソールとは、プログラムを開発する時に
使用されるウィンドウのことです。
-
コンソールに表示するためには、
"ShowConsoleMsg()"という関数を使用します。
-
これはREAPERから提供されている関数なので、
-
"reaper."という接頭辞も付けます。
-
そして、表示させたい文字列を引数として
" " で囲んで記述します。
-
"Hello, World!"と書いてみましょう。
-
ctrl + sで セーブをすると、自動で実行されます。
-
先程の文字列が表示された
ReaScript Console Outputウィンドウが開きましたね。
-
何度か Startを押すか、ctrl + s をして
繰り返し実行してみましょう。
-
コンソール上に表示されていた文字列の後に、
どんどん文字列が追加されていきます。
-
コンソールをキレイにするには、Clearボタンを押します。
-
次に、ShowConsoleMsgで
変数を表示させてみましょう。
-
まず、変数を作ります。
-
変数の名前をstringとして、
値には "Hello World!" と設定します。
-
ShowConsoleMsgの引数を
"Hello World!"からstringに変更します。
-
Ctrl + S でセーブ実行すると
変数で設定した値がコンソールに表示されました。
-
では、2つの文字列を表示させてみましょう。
-
string2という変数を作り
値には"How are you today?"と設定します。
-
ShowConsoleMsg()が書かれた行をコピーして
stringをstring2に書き換えます。
-
まずコンソールをClearしましょう
-
2つの文字列が連続してコンソールに表示されるのが確認できました。
-
今まででわかるように、
コンソールが自動でClearされることはありません。
-
コンソールがごちゃごちゃしていると
わかりにくいので
-
実行毎にClearされるようにコードを追加しましょう。
-
冒頭にreaper.ShowConsoleMsg("")と書けば
実行毎にコンソールを初期化できます
-
" "内は何も書かず、空にしておきます。
-
これで実行のたびにコンソールがClearされます。
-
試しに、reaper.ShowConsoleMsg("")だけで
実行してみましょう。
-
コンソールが初期化されましたね。
-
全コードを合わせて実行してみましょう。
-
2つの文章が再度表示されました。
-
Startを押してみましょう。
-
実行毎にコンソールがClearされてから
再度2つの文章が表示されるので、何も変わりません。
-
では、改行を使ってみましょう。
-
reaper.ShowConsoleMsg()と書いて
-
"\n"を引数に設定します。
-
\nは改行を示すコードです。
-
2つの文章が改行されて表示されましたね。
-
さて、毎回ShowConsoleMsg()書くのは面倒なので
1つのShowConsoleMsg()で表示してみましょう。
-
1つのShowConsoleMsg()の引数に
すべての文字列を入れて..でそれぞれを区切ります。
-
実行すると、以前と同じ結果になっているのが
確認できますね。
-
もう一度、文末に別の文字列を追加してみましょう。
-
.."I'm fine, thank you!"と追加して実行します。
-
改行は入れていないので、続けて表示されました。
-
\nを追加して改行もしてみましょう。
-
string2の変数末尾に\nを追加しても同じ結果になります。
-
.."\n".."I'm fine"としても同じ結果になります。
-
コンソールに表示させるのに毎回ShowConsoleMsg()と
長々と書くのは大変です。
-
そこで、関数を作りましょう。
-
functionと書き、その後にMsg(param)と書きます。
-
Msgというのが関数で、paramが変数です。
-
そして、関数の終わりにはendと書きます。
-
関数の処理にShowConsoleMsg(param)を書いて
さらに改行もしておきましょう
-
これでこのMsgという関数を呼んだ時に、
引数を表示して改行してくれます。
-
これらがどういう意味かというと
-
引数に何かを入れて関数を呼んだ時、
-
今回はstringとstring2を指定しましょう。
-
そして実行してみると…
-
エラーが出てしましました。
-
"reaper.ShowConsole is unknown"ということなので、
-
関数名にMsgを書き忘れていますね。
-
ご覧の通り、改行されて表示されているのが
確認できます。
-
これを複製していっても、関数毎に自動で改行されます。
-
-
-
-
早くコードを書くことが出来ますね。
-
ShowConsoleMsgは数字を表示することも出来ます、
-
引数に6を書いてみましょう。
-
コンソールに6と表示されました。
-
しかし、存在しない変数を表示することは出来ません。
-
例えばstring3と引数に書いてみましょう。
-
エラーが表示されました。
-
nilの値が文字列で使用されているとのエラーですね。
-
Luaにおいて、Nilというのは定義されていない値を返した時の値です。
-
試しに、Msg関数の引数に直接nilと入れてみましょう。
-
先ほどと同じエラーが表示されましたね。
-
-
string3は定義されていない変数なので、
-
引数にstring3を指定した時も同じ状況となるのです。
-
プログラムを行っていく上で、エラーが起きないような作りにしていくことはとても重要です。
-
バグを含んだプログラムは、完璧には動作しません。
-
今回の場合は、Luaの標準機能を使用してエラーを避けてみましょう。
-
paramを( )で囲い、その前にtostringと書きます。
-
これでparamに指定したものを文字列に変換することが出来ます。
-
プログラムを実行してみると、nilというテキストが表示されました。
-
エラーは出ていませんね。
-
Not Synced
これらのMsg関数は次回のレッスンでも使用していく予定です。