【REAPER】MIDIから音声オブジェクトを自動生成するスクリプト
この記事で紹介したスクリプトより便利なスクリプトを別記事で紹介しています。ぜひご覧になってください。
https://ytpmv.info/ReaScript-midi2item/
皆さんこんにちは。[まいまい]です。
以前からREAPERでこの機能ほしいな~って思いながら、なかなか実現できなかったスクリプトを見つけましたので紹介します。わーい!
概要
今回ついに見つけた機能の概要は、
MIDIを用意して、スクリプトを実行すると、
このようにピッチを変更した音声ファイルを作る、というものです。
スクリプトの導入方法と、使い方を書いていきたいと思います。
スクリプトを導入するためにReaPackをインストールする
今回使うスクリプトはbfutさんのbfut_ReaScriptsです。
そもそもREAPERには、ユーザーが拡張して使うことのできるReaScriptという機能があります。まぁ、Aviutlの拡張編集のスクリプトみたいなもんだと思ってもらえればいいかと思います。
で、スクリプトを導入したり管理するために、ReaPackというプラグインを使います。
https://reapack.com/ ここにアクセスして、画面右側のDownloadsから環境にあったものを保存します。
保存したDLLをREAPERのリソースフォルダ(特に設定を弄っていなければC:\Users\[username]\AppData\Roaming\REAPERにあるはず。オプション->REAPERのリソースフォルダを開く(R)から開けます。)にある、UserPluginsフォルダにコピーします。
REAPERを再起動しましょう。
続いて、bfutさんのリポジトリURL(更新情報URL)を登録します。
(bfutさんのリポジトリ以外にもリポジトリは多数ありますが、https://reapack.com/repos今回は他のスクリプトは入れず進んでいきます。いつかReascriptについての記事を書くときにでも紹介します。きっとね。)
ウィンドウが開かれない場合は「Extensions -> ReaPack -> Manage repositories」(翻訳してる場合は「拡張」になっています)を選択。
Import/ExportからImport repositories…を選択、
ウィンドウにhttps://github.com/bfut/ReaScripts/raw/master/index.xmlを入力。
拡張->ReaPack->Synchronize packagesを実行。
ここから追記箇所。
拡張->ReaPack->Browse Packageを開きます。
パッケージ名の左に「i」と書かれていないものはインストールされていません。
Select allを選び、ActionsからInstall/UpdateSelectionを実行して下さい。
これでインストールが本当に完了したはずです。
これでインストールが完了したはずです。
インストールが本当にできているか確認するために、アクション->アクションリストを開く、からアクションリストを開き、bfutで絞り込み下の画像のように表示されることを確認しましょう。
実行方法
まず、アクションリストを開いておきます。
そしてMIDIを用意します。
MIDIを選択して、bfut_MIDI notes to items (notes to subtrack, note pitch as item pitch).luaをダブルクリックして実行します。
こんな感じで小トラックにオブジェクトが生成されます。(やったね!)
このままだと見にくいので小トラックを解除します。
MIDIが和音になっていると一箇所にオブジェクトが重なっているので新しいトラックに移します。
このままでは音が出ないので、生成したオブジェクトを選択して、
右クリックでアイテムプロパティを選択。
新規ファイル選択をして、素材のファイルを指定します。
このまま再生すると音がプツプツと鳴るので、フェードイン・フェードアウトの時間を0:00.010にします。
ピッチを上げ下げして目的の音階になったらおk
これで完成☆
私はいちいち検索して呼び出すのは面倒なので、ツールバーに登録しました。
ツールバーの記事はそのうち、ね。(こればっかやな今回の記事…
これで大幅に作業短縮!?
それでは。(ΦωΦ)ノシ
2018/11/17 追記
えー、なんでか知りませんが、インストールできないんだけど?っていう人を複数人見かけましたので、どうしてもインストールできない人向けの最終手段を載せておきます。
まず、https://github.com/bfut/ReaScriptsにアクセスし、画面右側のClone or DownloadからZIPファイルをダウンロードし、解凍します。
次に、
アクションリストを開き、
ReaScriptの読み込みを選択、
先程保存したbfut_MIDI notes to items (notes to subtrack, note pitch as item pitch).luaを開きます。
すると、一応インストールできます。
ただし、この方法だと、レポジトリを登録することの恩恵は全く得られなくなりますのでご注意を。
以上。
ツイート
コメント
スクリプトを実行すると
… items (notes to subtrack, note pitch as item pitch).lua:167: bad argument #1 to ‘GetMediaItemTakeInfo_Value’ (MediaItem_Take expected)
というエラーが出てしまいます
どうすればいいでしょうか
エラー表記を見ると、アイテムをちゃんと選択できていない状態でスクリプトを実行しているように見えますが、詳しいことはわかりません
そうなんですか..
再起動したら治りました
bfut_MIDI notes to items (notes to subtrack, note pitch as item pitch).luaをダブルクリックすると毎回フリーズするんですけどパソコン上の問題ですか?
その情報だけではわかりません
本題とは異なりますが
和音を一度に別々のトラックに分ける方法は有りますでしょうか
色々調べてみましたが、和音を別のトラックに分けるスクリプト/機能は見つけられませんでした。
その代わりに、KawaScript http://kawa.works/reascript-midi-section に「和音の上/下の音のみを残す」「和音の上/下の音のみ削除する」機能のスクリプトがあるようなので、
それらを組み合わせてマクロを作ると良いかと思います。
現時点で当ブログにマクロについての記事はないため、http://positiveallergy.blog50.fc2.com/blog-entry-611.htmlを参考にしてください。
んー自分もこのスクリプトを起動すると、
… items (notes to subtrack, note pitch as item pitch).lua:167: bad argument #1 to ‘GetMediaItemTakeInfo_Value’ (MediaItem_Take expected)
というエラーが出てオブジェクト化が中断されてしまいますね。
別環境でも起きるのでスクリプト自体に問題がありそうですが・・・。
Thank you for using my script. I cannot reproduce your error.
I released a new version of the script this year. Installation procedure is the same as outlined in the tutorial. It requires at least REAPER version 5.99.
Google Translate: スクリプトをご利用いただきありがとうございます。エラーを再現できません。
今年は新しいバージョンのスクリプトをリリースしました。インストール手順は、チュートリアルで概説されているものと同じです。少なくとも【REAPER】バージョン5.99が必要です。
… items (notes to subtrack, note pitch as item pitch).lua:356: attempt to call a nil value (field ‘get_config_var_string’)
って出ましたがこれどう解決すればいいですかね?
The script requires at least REAPER version 5.99. Thank you very much for using my script.
Google Translate: スクリプトには、少なくともREAPERバージョン5.99が必要です。スクリプトをご利用いただき、誠にありがとうございます。
すみません、なるべく早くコメントを返してもらうとありがたいのです!。ActionsからInstall/UpdateSelectionを実行したあとに、OKは押しますか?。あと、midi2itemeを使ってmadの音合わせをしたいのですが、midi2itemeで合ってますか?。あと、midiを自分で打たないといけませんか?自動生成と聞いていたので。
① はい(ただしOK押さなくても可)
②midi2itemeではなくmidi2itemです。https://ytpmv.info/ReaScript-midi2item/
③MIDIは自分で打ってください。「MIDIからアイテムを自動生成するスクリプト」です。