
Logic Pro Xで使えるAddictive Drums用のユーティリティを公開します!
おはすみよし🎶
バーチャルシンガーソングライターの元住吉菜々緒です!
XLN AudioのAddictive Drums 2って、軽くて使いやすくて音も良いので、かなり重宝しているのですが、もっと使い勝手を上げることができると思うんですよね
そんなわけで今回は、そんなAD2をもっと便利にするユーティリティを大公開しちゃいます!
とりあえずユーティリティはこちらから
この元住吉菜々緒が使っているDAW、Logic Pro XにはMIDIプラグインというものがあって、その中にScripterというのがあるんです
このScripter、JavaScriptでコードを書くことで、いろんな機能をもたせられるんですが、今回はこの機能を使いました
なので、残念ながらLPX限定です
導入の仕方
AD2のトラックのMIDI FXスロットにScripterを追加して、「Open Script in Editor」ボタンを押します
するとエディタが立ち上がるので以下のコードをコピペして、「Run Script」ボタンを押せば準備完了
/*
GM音源のドラムマッピングでADを演奏する
*/
NeedsTimingInfo = true
// UI
PluginParameters = [
{name: "bass note", type: "menu",
valueStrings: ["C1", "C2", "C3"], defaultValue: "C2"},
{name: "HH type", type: "menu",
valueStrings: ["1", "2"], defaultValue: "1"},
{name: "length", type: "lin",
defaultValue: 1, minValue: 1, maxValue: 4, numberOfSteps: 3},
{name: "subdivision", type: "lin",
defaultValue: 2, minValue: 2, maxValue: 8, numberOfSteps: 6},
{name: "cycle", type: "lin",
defaultValue: 2, minValue: 2, maxValue: 8, numberOfSteps: 6},
]
var DRUM_MAP = {
// Bass Drum
60: 36,
// Snare
61: 42, // stick
62: 38, // SD open
63: 101, // clap
64: function(e, ti) {
// フラム
var on = new NoteOn(e)
on.pitch = 38
var on2 = new NoteOn(on)
on2.velocity = on.velocity * 0.8
sendNote(on2)
sendNote(on, 30)
},
// TOM
65: 65, 67: 67, 69: 69, 71: 71, // TOM
// HH
66: function(e, ti) {
// Close
var on = new NoteOn(e)
var hh = GetParameter("HH type") == 0 ? 50 : 52
if(ti.playing) {
var length = GetParameter("length")
var subDiv = GetParameter("subdivision")
var cycle = GetParameter("cycle")
var beat = ti.blockEndBeat - 1
var beatPos = Math.round(beat * subDiv) % (length * subDiv) % cycle
on.pitch = beatPos < 0.5 || cycle - 0.5 < beatPos ? hh : hh - 1
} else {
on.pitch = hh
}
sendNote(on)
},
68: 48, // Pedal
70: 56, // Open
// CYM
73: 77, // Clash 1
75: 60, // Ride 1 Tip
77: 61, // Ride 1 Bell
79: 81, // Clash 3 (Splash)
81: 79, // Clash 2
83: 62, // Ride Shaft
// Perc
78: 96, // Tamb
80: 47, // Cowb
}
// MIDI受信コールバック
function HandleMIDI(e)
{
var ti = GetTimingInfo()
var p = e.pitch - GetParameter("bass note") * 12 + 24
if(e instanceof NoteOn && DRUM_MAP[p]){
if(DRUM_MAP[p] instanceof Function) {
// 特殊処理
DRUM_MAP[p](e, ti)
} else {
var on = new NoteOn(e)
on.pitch = DRUM_MAP[p]
sendNote(on)
}
} else if(e instanceof NoteOff && DRUM_MAP[p]){
// 握り潰し
} else {
e.trace()
e.send();
}
}
// MIDIイベント(再)送信
function sendNote(on, delay) {
delay = delay || 0
on.sendAfterMilliseconds(delay)
var off = new NoteOff(on)
off.sendAfterMilliseconds(delay + 10)
}
高階関数が美しすぎてビビりますね
AD2の問題点その1 音色が多すぎて広範囲にいろんな音が散らばっている
で、これなんなの?っていう話ですけど、そのためにはAD2を使っている上で、この元住吉菜々緒が感じている問題点について書いていきます
AD2のキーマッピングって、C1からG#6で5オクターブ半とかあるんですよ
この元住吉菜々緒が入力に使っているキーボードは37鍵なので、オクターブスイッチを押しまくらないと入力できないんですよね
これが地味にストレスだったのです
そこで今回のメイン機能ですが、GM音源風のキー配置に上書きしています
え?そんなのAD2のキーマッピングを変更してGM配置を使えばいいじゃない?って思いました?
これは、AD2のキーマッピングも使いたいことがあって、そのときに同じ音源に複数のMIDIトラックをアサインして、両方のマッピングを併用できるようにしているんですね
ちなみにやり方は「トラック」→「その他」→「同じ音源を使った新規トラック」です
bass note
キーマッピング関連のパラメータは2種類あります
「bass note」は、C1 C2 C3のどこからGM配列にするかが決められます
低い方にわざわざ行くの面倒なんだよねーっていう人におすすめ
この元住吉菜々緒の場合はC2〜が入力しやすいのでC2がデフォルトになっています
HH type
クローズハイハットの音色を2種類から選べます
ShaftとTipは選べないのか?というと選べませんので、どうしてもという人は普通のマッピングを使ってください
このユーティリティでマスクされてない音域は普通のAD2のマッピングで鳴るので、使いたいところをbass noteの設定で避けて使うのも良いでしょう
あとオープンHHは常にCです
AD2の問題点2 フラムを自分で入力しなければならない
Eを押すとフラムが入力できるようにしました
リムショットはないのか?というとないです
てか要らなくないですか?
AD2の問題点3 というかハイハットが勝手にグルーブする機能をつけました
ハイハットの音色なのですが、打ち込み時はShaftが鳴るようになっているんですが、実は再生時に勝手にShaftとTipの音色を切り替えるようにしています
なのでクローズハイハットベタ打ちでも何かグルーブが出るようになっているんですね
パラメータでいろいろ変更できるんですが、8ビートの場合はデフォルトのlength 1, subdivision 2, cycle 2がおすすめです
16ビートはlength 1, subdivision 4, cycle 3がいいと思います
パラメータの意味も書いておきますがループ再生しながらいじってみていい感じのところを見つけるのが早いと思います
length
パターンがなん拍で繰り返されるか?っていう値です
1なら1拍ずつ、4なら1小節のループになります
subdivision
1拍をいくつに区切っているのかです
2なら8分音符、4なら16分音符、3なら8分3連、みたいな感じなので、グルーブの最小単位にしておくのが良いと思います
cycle
subdivisionされた音いくつ分で繰り返すかですね
たとえば2だとshaft tip shaft tip……、4ならshaft tip tip tip shaft tip tip tip……という具合です
3とかにするとクロスリズム的な回り込みが発生すると思うんですが、lengthの設定でリセットされるという寸法です
技術的な話
誰も興味ないと思うので有料でスクリプトの解説をします笑
改造したい人は読む価値あるかも?
Scripterのコードを書きたい人には公式のドキュメントがおすすめです
ここから先は
¥ 500

この記事が気に入ったらチップで応援してみませんか?