REAPERのグリッド線をショートカットキーで変更できるようにする

概要

REAPER のグリッド線の幅は GUI 左上ツールバーのマグネットマークを右クリック、または Alt+L を押すことで開かれる「スナップ/グリッド設定」で変更が出来るのですが、変更の度にわざわざこの設定を開くのはなかなか骨が折れる手順なのではないかと思っています。

自分は主に Ableton Live を使用して DTM の作業を行っているのですが、こちらはショートカットキーを押すことでグリッド幅を広げることが出来ます。

今回はこれと似たような設定を REAPER でも実現できるように設定してみようと思います。

この記事は音MAD Advent Calendar 2021自分が書いた記事の付録記事です。

今回のゴール

もう少し具体的には以下の 3 つをショートカットキーによって実現できるように設定したいと思います。

  • グリッド幅を 1/2 にし、狭める
  • グリッド幅を 2 倍にし、広げる
  • 三連符幅の切り替えを行う

グリッド幅を 1/2 にし、狭める

こんな感じ

f:id:naari_3:20211214035921g:plain
狭くなっていく

グリッド幅を 2 倍にし、広げる

こんな感じ

f:id:naari_3:20211214035940g:plain
広くなっていく

三連符幅の切り替えを行う

こんな感じ

f:id:naari_3:20211214035953g:plain
三連符幅との切り替えが出来る

手順

途中で ReaPack を使用する手順と、そうでない手順に分かれるので、どちらか該当する方だけ読んでください。

1. 既存のアクションをショートカットキーに割り当てる

まず、?キーを押すか、 アクション > アクションリストを開く からアクションリストを開きます。

次に、絞込 に Grid: Adjust と入力し、以下の 2 つのアクションを見つけます。

  • Grid: Adjust by 1/2
    • グリッド幅を 1/2 にする
  • Grid: Adjust by 2
    • グリッド幅を 2 倍にする

それぞれのアクションをシングルクリックした後に左下の「選択アクションのショートカット」の追加ボタンから好きなショートカットを割り当てます。

自分の場合は Ableton Live と似た操作感を欲していたため、以下のように割り当てました。

  • Grid: Adjust by 1/2 → Ctrl + Shift + 1
  • Grid: Adjust by 2 → Ctrl + Shift + 2

この時点で、ショートカットキーに応じてグリッド幅が伸縮するようになっていると思います。

2. 三連符幅の切り替えのために独自のスクリプトを導入する

ここまではデフォルトで用意されているアクションを使用することで対応できましたが、三連符幅の切り替えは該当しそうなアクションがなかったので、今回こちらで自作しました。

2-1. ReaPack を導入している場合

もし ReaPack を導入していない場合は 2-2 まで読み飛ばすか、以下の記事を参考に ReaPack を導入してください。個人的には今回を機会に導入してしまうことをおすすめします。

peloreaper.blog.jp

拡張 > ReaPack > Import Repositories で出てくるウィンドウに以下のリポジトリを追加し、OK をクリックします。

https://github.com/naari3/ReaScripts/raw/master/index.xml

拡張 > ReaPack > Browse Packages で出てくるウィンドウの Filter: に naari3 と入力し、出てきた項目を右クリック → Install し、最後に右下の Apply をクリックします。

2-2. していない場合

?キーを押すか、 アクション > アクションリストを開く からアクションリストを開きます。

新規アクションボタンをクリックし、新規 ReaScript をクリックします。

出てきたファイル保存のウィンドウにて、ファイル名を Toggle Grid Triplet とし、保存します*1

更に出てきたスクリプト編集ウィンドウに以下のリンク先のスクリプトをコピペします。

https://github.com/naari3/ReaScripts/raw/master/Grid/Toggle%20Grid%20Triplet.lua

その後、Ctrl+S で保存し、スクリプト編集ウィンドウを閉じておきます。

3. 三連符幅切り替えのスクリプトにショートカットキーを割り当てる

ほとんど手順 1 と同じです。

まず、?キーを押すか、 アクション > アクションリストを開く からアクションリストを開きます。

次に、絞込 に Toggle Grid Triplet と入力し、以下の 2 つのアクションを見つけます。

  • Script: Toggle Grid Triplet.lua

このアクションをシングルクリックした後に左下の「選択アクションのショートカット」の追加ボタンから好きなショートカットを割り当てます。

こちらも同じく Ableton Live と似た操作感を欲していたため、以下のように割り当てました。

  • Script: Toggle Grid Triplet.lua → Ctrl + Shift + 3

これで、ショートカットキーに応じてグリッド幅が三連符幅になったりそうではなくなったりするようになったかと思います。

おわりに

大昔によく REAPER を使っていた時期は、あらかじめ 1/32 や 1/64 など、ある程度狭いグリッド幅にして最小間隔をすこし大きくすることで対応していました。

ですが、やはりこのような表示側の事前設定でどうにかするにはちょっと限界があります。今回は REAPER の豊富なカスタマイズ性を持ってしてよしなな設定を手に入れることができました。さすが REAPER。

余談 ReaPack のリポジトリについて

今回のスクリプトを公開するために、初めて ReaPack のリポジトリを作成してみました。

github.com

Reaper のスクリプトや JSFX は基本的にテキストファイルで管理されているため、github のような公開体制との相性がかなり良く、公開までの手順を組み立てるのも普通のリポジトリ用のデプロイパイプラインを組み立てるようでした。

リポジトリ自体の参考実装として以下を用意し、これと全く同じ構成になっています。

github.com

概要を少しだけ説明すると、 reapack-index という cli を使用し、ディレクトリ構成から自動で index.xml を作成する github workflows を用意しています。

これによって、新たなスクリプトを用意する時は新しいディレクトリを作り、そこに .lua ファイルを用意、あとは commit して push するだけで公開されるという素晴らしい開発体験を得ることが出来ます。本当に素晴らしい。

ひとつの DAW に対して、このようにパッケージ管理の仕組みや、各種スクリプトのためのエコシステムまでもが備わっている点が最近のプログラミング言語コミュニティの方向性と似たものを感じました。もうすこしふんわり言うとハッカーコミュニティのようなものですね。

REAPER の方向性からコミュニティまでもが一貫してハッカー的思想に基づいているような気がして、個人的にそういう部分が結構好きです。

*1:もしファイル名に半角スペースが入るのが気に入らない場合は、好きな名前に変えてあげてください。この後の手順ではそのファイル名に置き換えて読んでください。