入門

PeloReaper Extensionの情報やダウンロードはこちらからどうぞ。
PeloReaper Extension for REAPER is here.
ReaperBanner01_w250 AudioSoftBanner01_w250

ReaScript入門(1): ReaScriptの初歩的なこと~Hello World

今回からREAPER上で動作させられるスクリプトやその動作環境などについて解説していきます。少しでもReaScript入門のハードルを下げていければと思っていますが、どうなることやら。


ReaScriptイントロダクション

ReaScriptとは

ReaScriptとはREAPER上で動かせるスクリプト(もしくはその実行環境のこと)を指します。厳密な解説は下記リンクの公式サイトに譲るとして、ひとまず「スクリプトを追加することでREAPERのActionを追加できる」のだと理解していれば十分かと思います。

ReaScriptからはREAPER本体やExtensionから提供されるAPIを呼び出したり、他の既存のActionを実行したりといったことが出来ます。APIはActionを作るためのプログラムの部品のようなもので、例えばTrackの個数を返してくれる関数など様々なものがあります。

では「これで何を実現できるか」というのは多岐にわたるのですが、例えば以下のようなものでしょうか。

  • 手間がかかる定型作業を1つのAction(スクリプト)で実行させるような自動化(Item編集やMIDI編集、FXのパラメータ設定等様々な作業に応用可能)
  • 既存のActionの動作では満足いかなかった場合に、自分専用にカスタムした動きのActionを作って作業オペレーションを最適化
  • カスタムGUIを作成して自分用のツールを作る
これらの他にもアイデア次第で自分のやりたい事を実現出来ると思います。

また、REAPER上で動作するスクリプトという意味では、オーディオFXやMIDI FXを作れるJSFX、動画などの画像処理を行うVideo Processorスクリプトなどもありますが、この記事の系列では扱いません。Video Processorについてはこの辺りで過去にいろいろ記事を書きましたので、そちらを見てもらうと良いかと思います。


ReaScript自作の必要性

ではどういった時にReaScriptを自作する必要があるのでしょうか?

REAPERを使い始めた初心者の方は、いきなりReaScriptを書く必要はありません。既に便利なActionやスクリプトが沢山ありますので、それを使って自分の作業環境を良くしていければ十分じゃないかと思います。

ReaScript自作に手を出す前に、試しに使ってみて把握しておくと良さそうなところをいくつかリストアップしておきますので参考にしてみて下さい(下に行くほど高度・面倒)。

  • デフォルトでREAPERに実装されている様々なActionを使ってみる。
  • SWSもインストールして、これに含まれるActionも使ってみる。
  • REAPER標準のCustom Action(複数のActionを並べて順番に実行できる、一般的なツールだとマクロ機能のようなもの)でActionを組み合わせて実行してみる。
  • ReaPackで有志の方が作成したスクリプトをダウンロードしていろいろ試してみる。
  • おまけとしてSWSのCycle Actionを試すのもアリですが、もうこのあたりからプログラミング色が強くなってきます(プログラミングに慣れてくればReaScriptで書いた方が楽かも)。

こういった既存の機能をいろいろと使っていくと、それらでは細かいところに手が届かないように感じたりする場面が出てきたりします。そう感じて更に自分に最適なActionが欲しくなってきたら、いよいよReaScriptを書く必要性が高まってきたと言えるでしょう。

とはいえReaScript自体に興味があるなら、もろもろすっ飛ばしていきなりスクリプトを作り始めてもいいと思います。上記の内容はあくまで参考までにということで。


ReaScript作成に使用できるプログラミング言語

ReaScriptを作成するのに使用できる言語はReaScript公式ページに記載されていますが、EEL2、Lua、Pythonから選ぶことが出来ます。Pythonはセットアップが必要なので、デフォルトの状態で使えるのはEEL2とLuaになります。

言語追加セットアップ解説
EEL2 不要 REAPERを含むCockosのツール専用の範囲ではあちこちで使われている言語。Video processorやJSFX等のオーディオ処理等にも用いられており、スクリプト実行パフォーマンスが良いとされています。REAPER内のみだけでスクリプトを組む前提なら、覚えておくといろいろなものを作れるようになるので便利な一方、REAPER以外ではほぼ使われていない言語なので、3つの言語のうち習得ハードルは最も高いと言えるでしょう。
Lua 不要 ReaScriptを書くのに最も標準的に使われている言語で、ネットにもLua言語解説の記事は多数存在するので習得が比較的容易です。REAPER以外のオーディオ関連ツールでもLuaの採用率は高い(例:Steinberg HALion、UVI Falcon、SurgeXT、Synthesizer V、Renoiseなど)ので、習得しておくとREAPER以外でも役に立つ可能性があります。何か特別な理由がなければLuaがオススメです。
Python 必要 上記2つの言語が割とコンパクトな規模のものなのに対して、様々なモジュールを用いて複雑な作業を割と容易に実現できるのがPythonの良いところ。言語自体の解説記事なども多く、習得が比較的容易。一見最強の選択肢に見えますが、いくつかデメリットも存在します。
  • REAPERでPythonを使うには追加のセットアップが必要。スクリプトを他人に配るなら、相手側にも同じPythonをインストールしたりする必要があったり、それに伴う面倒な環境依存問題に悩むことがあるかも。
  • 公式サイトにも書かれていますが、一部の機能がPythonではサポートされていなかったりします。
  • うろおぼえ的な記憶だと、Pythonスクリプト起動には若干時間がかかるので、スクリプトを高速に連打するようなことをやるとLuaと比べてかなり処理が遅くなることもあったような・・・(最近試してないので、既に改善されている可能性はあります)。

いろいろ書いてしまいましたが、ザックリまとめると

  • 一般的にはLuaがオススメ
  • 多少手間はあるけど複雑な事をサクッとやりたいならPythonも使う
あたりが落としどころでしょうか。

※今後の記事ではLuaを使用することを前提として解説を進めていきます。また、Lua言語自体の書き方や言語仕様等の説明も出来るだけ割愛させて頂くことにして、ReaScript固有の部分に的を絞って解説しますのでご了承下さい。


(おまけ)REAPER Extensionについて

REAPERのAPIは上記で紹介したスクリプト言語からだけでなく、C言語から呼び出す方法も用意されています。C言語で作成されたREAPERのプラグインは特別にREAPER Extensionと呼ばれています。こちらはLua等のテキストファイルを追加すればサクッとActionを追加出来るというような代物ではなく、作成のハードルは非常に高くなっています。

過去に当ブログでもREAPER Extensionの作り方についてこの辺りの記事で解説していますが、ゴリゴリのエンジニア向けの内容となります。本記事の読者向けには「まぁそんなものもあるのね」くらいに知っておいてもらえればOKです。


ReaScriptを作成してみる

ReaScript作成~実行方法

それでは簡単なReaScriptを作成して、実行してみましょう。

  1. REAPERメインメニューから [Actions > Show action list...] でAction Listを表示します。
  2. Action List下部にある [New action...] ボタンをクリックして [New ReaScript...] を選ぶと、スクリプトの保存場所を聞かれます。 ReaScript_HelloWorld_AddNewScript
  3. ファイルの種類は [Lua files (*.lua)] で、ファイル名は任意に指定します(ファイル名はそのままAction名になるのと、利便性の都合上日本語は用いずに半角英数のみのファイル名にしておくのがオススメです)。
    ここでは HelloReaperWorld.lua という名前にして保存します。
    ReaScript_HelloWorld_AddNewScriptFile
  4. 保存するとスクリプトを編集するテキストエディタが表示されますが、実はもうこの時点でスクリプト自体の作成(とそれに対応するActionの追加)は完了していて、Action Listに「Script: HelloReaperWorld.lua」というActionが並んでいると思います。もちろん、実行も可能です(スクリプトが空なので何も起きませんが)。
    ReaScript_HelloWorld_Action

Hello World:テキストを表示するプログラムの作成

では作成したスクリプトにエディタ上で以下のコードを追加して、Ctrl+Sで保存してみましょう。保存すると、同時にActionも実行されます。

reaper.ShowConsoleMsg("Hello REAPER World!!")

ReaScript_HelloWorld_Code_01

REAPERのコンソールウィンドウが開いて、「Hello REAPER World!!」と表示されたのではないでしょうか。
ReaScript_HelloWorld_Result

これでLuaによる初めての自作ReaScriptの完成です! あとはいつでもAction Listから呼び出すことが可能です。

プログラムの簡単な解説

  • REAPERのAPIは、Luaだと「reaper.API名(パラメータ)」のような形で呼び出せます。
  • 「ShowConsoleMsg」はREAPERのコンソールウィンドウにメッセージを表示するAPIで、パラメータとして "Hello REAPER World!!" という文字列をセットしています。

作成したスクリプトを後から修正したい場合

また、後からこのスクリプトを修正したい場合は、追加したスクリプトのActionをAction Listで選択して [Edit action...] ボタンで編集出来ます。

ReaScript_HelloWorld_EditScript


作成したスクリプトを削除したい場合

既に作成してあるスクリプトのActionを選択して、Action Listの [Delete] ボタンで削除できます。

ReaScript_HelloWorld_DeleteScript


既に作っておいたScriptを読み込んでActionにしたい場合

最初にスクリプトを作成する時と似ていますが、Action Listのボタンで [New action... > Load ReaScript...] からスクリプトのファイルをロードすればOKです。

ReaScript_LoadScriptFile



今回はここまで。前置きが長かった割に、スクリプトを作り始めたらあっという間だったのではないでしょうか。Actionをこんなにも簡単に追加出来ると分かると、夢が広がりますよね。


REAPERで扱える動画のフォーマットを増やす(改訂版)

初稿:2023/02/06 22:56 - 最終更新:2026/03/22

REAPERで扱える動画のフォーマットを増やす方法については、かなり前の記事で説明していたのですが、2023年現在では大分状況が変わってしまっています。特にFFmpegのインストール方法が変わってしまっているので、今回新規で記事を起こし直すことにしました。


VLCで動画再生用のCODECを増やす

VLCをインストールすると、REAPER上での動画再生CODECが増えます。VLCのCODECは再生専用で動画書き出しでは使われません。動画書き出し用のCODECを増やすには、後述のFFmpegのインストールが必要になります。

VLCは以下のページでご自分の環境に合った「VLC media player」をダウンロードして、インストールするだけでOKです。


FFmpegで動画書き出し用のCODECを増やす

動画書き出し(レンダリング)のためのCODECを増やすには、FFmpegのインストールが必要です。ただし、FFmpegのインストールはちょっとややこしいことになっていて、インストール自体は簡単なのですが、どれをインストールすればいいのかが分かりづらい状況になっています。

というのも、REAPERが認識するFFmpegのバージョンと、FFmpeg自体の開発最新バージョンとでずれがある場合があります。例えば2023年2月現在、最新のREAPER v6.75が認識するFFmpegはバージョン4系ですが、FFmpeg開発の最新はバージョン5系となっていて、ちょうどずれが発生しているタイミングでもあります。

こういった場合、FFmpegのファイルをダウンロードするときに適切なバージョンを選んであげる必要があるわけです。REAPERが認識しないバージョンのFFmpegをインストールしても、REAPERでその機能を利用することは出来ません。

では、FFmpegのダウンロード&インストール方法を細かく見ていきましょう。


FFmpegの適切なバージョンをダウンロード

まずは以下のFFmpegの公式サイトのダウンロードページへ行きます。

「Get packages & executable files」と書かれたところにWindowsのマークがあるのでそこをクリックすると「Windows EXE Files」のところにいくつかの選択肢が出ていると思いますが、これらのうち「Windows builds by BtbN」をクリックしてダウンロード先へ飛びます。

FFmpgDLWinBuilds

するとGitHubのパッケージリリースページが表示されますが、最新ビルドである「Latest Auto-Build (2023-02-05 12:39)」といったものが表示されているはずですので、「show all XX(数値) assets」をクリックして、ダウンロードできるファイルをすべて表示します。

FFmpegLatestBuild01

めまいがするほど沢山ファイル名が並んでいるかと思いますが、この中から自分の環境の条件を満たすものを選択します。ここでは、64bit Windows、FFmpeg v4系、Sharedライブラリ、という条件のもと、ファイルを選択してみます。

ファイルの一覧を眺めてみると、ファイル名「ffmpeg-n4.4-latest-win64-gpl-shared-4.4.zip」あたりを選択すれば良さそうです。

FFmpegLatestBuild02

よく見るとファイル名にgplとlgplが含まれるものがそれぞれありますが、REAPERで使う分にはどちらでも大丈夫ではないかと思います。今回はgpl版をダウンロードすることにします。

(※2024/07/11追記)現在はFFmpegのバージョンがかなり進んでしまっていますが、最新のREAPER(現在v7.18)でも依然としてFFmpeg v4系が必要なので、ffmpeg-n4.4-***-win64-gpl-shared-4.4.zipを古い日付のビルドから探す必要がある点に注意して下さい(既にLatestにはFFmpeg v4系のzipがなくっています)。Auto-Build 2023-02-28 12:37 等、古い日付のビルドの方を探してみて下さい。

(※2026/03/22追記)REAPER v7.66でFFmpegの5.0~8.1を認識するようになりました。筆者の方でもGitHubにあるFFmpegのReleasesから「Auto-Build 2026-03-19 13:03」版の「ffmpeg-n8.0.1-76-gfa4ee7ab3c-win64-gpl-shared-8.0.zip」を落として使ってみたところ、今のところ問題なく動画のレンダリングが出来ている感じでした。今後もどのバージョンを使えばいいのかは悩む人がいるかもしれないので、参考までに。

ややこしいのはここまでです。次はインストール方法を見ていきましょう。


FFmpegをREAPERが認識できるようにインストール

インストール方法は簡単です。zipファイルを任意のところに展開して、その中のbinフォルダ内にあるDLLとEXEファイルを、REAPERリソースフォルダのUserPluginsフォルダ内にコピーすれば終わりです。

まずREAPERリソースフォルダを開くのですが、場所がよくわからない場合は、REAPERを起動してメインメニューから「Options>Show REAPER resource path in explorer/finder...」を選べば、エクスプローラーで表示してくれます。

OpenReaperResrcFolder

そのREAPERリソースフォルダに「UserPlugins」というフォルダがありますので、そこを開きます。

ReaperUserPluginsFolder

次に先ほどダウンロードしたFFmpegのzipファイルを任意の場所に展開して、展開先にあるbinフォルダを開きます。そこに ffmpeg.exe や avcodec-58.dll などのファイルがあるかと思います。

FFmpegBin

このbinフォルダ内にあるDLL、EXEファイルをすべて、先ほどのUserPluginsフォルダ内にコピーして下さい。

コピーが完了すればインストールは完了です。あとはREAPERを起動し直せば、今インストールしたFFmpegが使われるようになります。


REAPERが認識しているFFmpegのパスを確認する方法

REAPERがどのFFmpegを利用しているかは、以下の手順で確認できます。

REAPERのメインメニューから「Options>Preferences...」を選んで、Preferencesウィンドウ左側のリストから「Media>Video」の項目に進み、「Show docoder information」ボタンをクリックすれば情報が表示されます。

表示されたウィンドウに「========== ffmpeg/libav ==========」という行の下の方に、

Loaded from: (REAPERリソースフォルダ)/UserPlugins/avcodec-58.dll

と表示されていれば、今回インストールしたものが参照されていることになります。

ReaperUsingCodecs

何かが原因でうまくいってない場合、例えばREAPERの認識できないバージョンのFFmpegのファイルを置いてしまったりすると、

Loaded from: (REAPERをインストールしたフォルダ)/Plugins/FFmpeg.dll

という感じになってしまいます。その場合は、インストールに使用したzipファイルを間違えていないか、確認してみて下さい。

これについては、以下の旧記事でも触れていましたね。


REAPERの記事まとめ(随時更新)

初稿:2020/07/28 19:32 - 最終更新:2026/03/05

reaper01

REAPER関連で書いた記事がそれなりに増えてきたので、情報を探しやすくするための総合ページを作ってみました。必要に応じて逆引きリンクとか追加していってもいいかも。


REAPERのインストール~初期設定など

インストール

オーディオデバイス関連設定

MIDIデバイス関連設定

環境設定もろもろ

追加で入れておくと便利なもの


ショートカット・Menu/Toolbarなどのカスタマイズ


FX(VST・JSFX)

FX全般

ReaSamplOmatic5000 (RS5K)

REAPER標準のSamplerであるReaSamplOmatic5000、軽くて超便利!

ユーティリティ系FX


MIDI打ち込み・作曲支援


サンプル管理~便利なユーティリティ

Media Explorer

wavやMP3などの音源ファイル管理やプレビューならMedia Explorer

Batch Item/File Converter


動画編集~書き出し(レンダリング)

REAPERで動画を扱う基本や、VideoProcessorを使い倒す系シリーズ


その他の機能


サードパーティー製のScript・Extension

Reapack

REAPERを拡張するScriptやExtensionのパッケージマネージャー

SWS Extension

他のScriptなどからも参照される、もはやREAPER必須Extensionと化したSWS

その他の便利な拡張機能


PeloReaper Extension

本ブログ管理人であるぺろりが自分用に作っているREAPER Extension。


他のオーディオソフトウェアとの連携など


[上級編] コマンドラインなどのユーティリティ

一般的なオーディオ制作では使われない機能、主にエンジニア向け。

REAPER Command Line


[上級編] ReaScript~REAPER Extension実装方法

このへんはプログラミングスキル必須エリア。REAPERでDAWの限界を超えたいあなたへ。

ReaScript

REAPER Extension


このブログについて
ぺろりがREAPERで遊びたいというだけのブログかもしれない

必ずこちらをお読みください

twitter: @pelori

管理人用
  • ライブドアブログ