< Return to Video

Lua Scripting with REAPER 5 - Part. 1: The Console Output

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

more » « less
Video Language:
French
Duration:
09:57

Japanese subtitles

Incomplete

Revisions