Logic Pro X使いの99%が知らない「Scripter」は頼れる存在!

私はメインのDAWであるAbleton Liveの他、Apple Logic Pro X(以下、Logic)を適宜使用して音楽制作に臨んでいます。
そんな中、Logicの「Scripter」という機能がとても便利だということに気がつきました。

ですが、国内外に数多いるであろうLogicで音楽制作をするミュージシャンのうち、Scripterを使っている人って絶滅危惧種かと言うぐらいとても少ないです。
そもそもScripterというものがあることすら知らなかった人もいるんじゃないでしょうか。

本記事ではそんな日陰者になりつつあるScripterを紹介します。

JavaScriptでMIDIを操る!

Scripterはバージョン「X」で実装されたMIDIプラグインで、その名の通りスクリプトを記述することによってLogic上でMIDIを操作する機能です。
下図の赤枠で指している通り、Logic画面左側のチャンネルストリップのMIDIプラグインを設定する場所をクリックし、ポップアップしたセレクターから「Scripter」を選択するとScripterをインサートすることができます。


MIDIプラグインということで操作できるのはMIDIに関係することのみ。オーディオやLogicそのものの操作はできないようになっているようです。
というわけでできることは限られてはいますが、それでも便利な機能であることには変わりありません。

ScripterはJavaScriptというプログラミング言語でプログラムを記述しています。
JavaScriptはウェブ業界を始め様々な場所で使われている(本ブログでも利用されています)プログラミング言語です。
JavaScriptを使える人はすぐにでもScripterを使い始められますし、そうでない人でもJavaScriptを覚えておいて損はありません。

Scripterの命令やオブジェクトはAppleのページにヘルプがあります。

参考 Logic Pro X: Scripter API の概要Apple

また、Scripterにはサンプルとしていくつかのプリセットが用意されているので、それらプリセットをそのまま使ったり、内容を見て勉強したり、あるいはプリセットを改造して使ってもいいでしょう。

かゆいところに手が届く

こんなScripterの何が便利なのかというと、ずばり「かゆいところに手が届く」こと。
複雑な手順を踏まないと実現できなかったり、Logicの標準機能ではできないために高価なプラグインを買わないといけなくなったり、あるいはニッチすぎてプラグインでも解決できないような困りごとを何とかしてくれる、そんなありがたい機能なのです。

私も「drummer(AIがリズムパートを生成してくれるLogicの機能)のキックやスネアに合わせて特定のキーに割り当てられたサンプルを鳴らしたい」という悩みをScripterで解決しました。


ここで作成したのは「Path through Noteで設定したノート(下図ではC1)入力時のみReplace Noteで設定したノート(下図ではD1)を出力し、その他の場合は無視する」といったスクリプトです。
ちなみにプリセットをちょこっといじったら作れちゃいました。

下記のコードをScripterのエディタ(Open Script in Editorボタンを押すと現れる)にコピーすれば同じことが可能になります。

Note Filter & Replacer
var activeNotes = [];
var NOTES = MIDI._noteNames;	//array of MIDI note names for menu items

function HandleMIDI(event)
{
	if (event instanceof NoteOn) {
		if (event.pitch != GetParameter('Path through Note'))
			return undefined;  // don't send if other note
		else {
			event.pitch = GetParameter('Replace Note');
			activeNotes.push(event);
			event.send();
		}
	}
	else if (event instanceof NoteOff) {
		for (i=0; i < activeNotes.length; i++) {
			if (event.pitch == activeNotes[i].pitch) {
				event.send();
				activeNotes.splice(i,1);
				break;
			}
		}
	}
	else { // pass non-note events through
		event.send();
	}
}

var PluginParameters = [
	{ name:'Path through Note', type:'menu', valueStrings:NOTES,
	  minValue:0, maxValue:127, numberOfSteps:127, defaultValue:36 },
	{ name:'Replace Note', type:'menu', valueStrings:NOTES,
	  minValue:0, maxValue:127, numberOfSteps:127, defaultValue:36 }
];

これを標準機能で実現しようとすると「リズムパートのリージョンからキックのノートだけを抽出後、それらを指定のノートにトランスポーズする」という一手間も二手間もかかる非常に面倒な作業を強いられる上、リズムパート音色のレイヤーは今や作品のクオリティアップには欠かせないために頻繁にやることになる作業なので、Scripterによって大幅な作業の効率化が図れたということになります。

エディタが貧弱なのがマイナス

なかなか便利なScripterですが、そんなScripterには「プログラミング用のエディタが貧弱」といった弱点があります。

Scripterのエディタはコードの入力とアンドゥ/リドゥ、コピー&ペーストぐらいしかできず、テキストの検索や置換まではできないようでした。
本職のプログラマーが使うような高機能な開発環境はさすがに求めるところではありませんが、せめてテキストエディタとして最低限度の編集機能は有しておいて欲しかったです。

凝った開発をしようとするならばScripter付属のエディタではなく、外部のテキストエディターやプログラミング開発環境を使ってプログラミングするのが良さげです。
Scripterで「かゆいところに手が届く」以上のことをやろうとするのは非常に骨が折れるので、あまり現実的ではないのかもしれません。

まとめ

本記事を見るまではLogicのScripterを知らなかったり、知っていても使おうともしなかった人もいると思います。
ですが、Scripterという機能があることや、Scripterはちょっとした困りごとを解決してくれるということを頭の中にでも留めておけば、いつかあなたの音楽制作の手助けになるかもしれません。

Logic使いのミュージシャンはいつか来るその時の為に、ぜひともScripterに触ってみて使ってみて、どんなことができそうか位を考えておくといいでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です