VirtualDJをNumark Party Mix用にいい感じマッピング

DJコントローラ書いました。

Numark ミラーボール付き 2デッキDJコントローラー Virtual DJ LE付属 Party Mix

Numark ミラーボール付き 2デッキDJコントローラー Virtual DJ LE付属 Party Mix

「光る板」ことNumarkのPartymix。安い!小さい!光る!

最高なんだけど、EQがMIDとLOWしか無かったり、フィルターが摘みでできなかったり、 全体的にボタンとつまみがもう少し欲しいなぁという感じになりました。

Partymix、みんなどんな風に使ってるのかなと思って調べてたら、こんな動画が出てきた。

www.youtube.com

オタレコで買えばよかった!!!!!!!!!!!!!!!

PAD4を押してる間だけツマミの機能を変えたい

  • GAIN -> EQ HIGH
  • EQ TREBLE -> EQ MID
  • EQ LOW -> フィルター

PAD4が使えなくなるとそれはそれで不便なのでPAD4をスイッチにして

  • PAD1 <-> PAD4
  • PAD2 <-> PAD5
  • PAD3 <-> PAD6

こういう感じで入れ替わって欲しい。

ついでにエフェクトもツマミでやれるならやりたい

やっていく

スクショとるの面倒すぎたのでとってないです。
VirtualDJのスキンがPartyMix用になってる人はデフォルトに戻します。

VirtualDJの左上の歯車のマーク > コントローラ

になってると思うので、マッピングをカスタムマッピングに変更して、
(必要なら適当に名前をつけて)保存ボタンを押すとxmlファイルが生成される。 僕のPCでは、Documents/VirtualDJ/Mappers/Numark Party Mix - shivaduke.xml が該当ファイル

xmlを弄ってもいいし、VirtualDJから弄ってもいいです。

今回弄ったところ(なんかエスケープ?されて見にくい)

<map value="EQ_LOW" action="shift ? filter : eq_low" />
<map value="EQ_HIGH" action="shift ? eq_mid : eq_mid &amp; eq_high" />
<map value="GAIN" action="shift ? eq_high :  gain" />
<map value="PAD1" action="var &quot;my_pad&quot; ? pad 4 : pad 1" />
<map value="PAD2" action="var &quot;my_pad&quot; ? pad 5 : pad 2" />
<map value="PAD3" action="var &quot;my_pad&quot; ? pad 6 : pad 3" />
<map value="PAD4" action="toggle &quot;my_pad&quot; &amp; shift" />

PAD4はshift & toggle "my_pad" を指定

  • shift :押している間shift変数に1が入って離すと0になる
  • toggle "my_pad""my_pad"という名前の変数の01をスイッチする

"my_pad"変数を使ってる理由

shiftはもともと使われている変数で、
例えば Hot Cueモードで PAD1 + shift をすると
登録されている hot cueが削除されます。
トラックパッドだと右クリック) なので、PAD切り替えにshiftを使うのはよくない!し、
スイッチ的に切り替えたいので、別の変数にしてます。
toggleすると、ONのときはPADが勝手に光ってくれるので
コンラだけで判定できて素敵。

変数の中身はvar "my_pad"で参照できるので、それで三項演算子
動作を切り替えてるだけ。

エフェクトもPADに変数渡しといて、EQ LOWをその間だけエフェクトツマミにする
みたいなことが可能なのですが、少し複雑になるので、悩み中。

ノイズとかはツマミでやるとカッコいいので、やりたい。

PADの編集

デフォルトスキンのパッドのとこの [HOT CUES ▼] を右クリックすると編集画面にいけます

PAD系はPAD PAGEというページ(Hot Cue、Effect、Loopなど)が複数あって、
各ページごとのPAD1PAD8shift + PAD1shift+ PAD8の合わせて16枚の動作が指定できます。
上の設定にするとPAD1〜PAD6が使えるので好きな機能をつけるといいと思う。
僕は、LoopのPAD4を loop_halfにして、PAD5を loop_outにしました。

悩み

コントローラのマッピング画面、ほぼ全てのボタンがあるんだけど、 PAD MODE切り替えるボタンが無くて困ってる。

追記(PAD4の改善)

PAD4を押してフィルターとかを弄ったときに他のPADの番号が変わってしまうのが 残念なので、長押しした場合は何もしないように修正した。

<map value="PAD4" action="shift &amp; holding 250ms ? nothing  : toggle &quot;my_pad&quot;" />
<map value="LED_PAD4" action="var &quot;my_pad&quot;" />
  • PAD4の操作は、押している間shift = 1にして、250ms 以内に離すと "my_pad"変数の01を入れ替える。
  • holding は指定した時間(デフォルトは500ms)長押しした場合にtrueを返す。
  • LED_PAD4 にPAD4のLEDが点灯する条件を指定できるので、"my_pad"変数を指定するといい感じに点灯する。

追記(Noiseフィルターをツマミでやる)

EQ_HIGHのツマミをデフォルトでeq_midにしておいて、shift + EQ_HIGHは一旦何もしないことにする。

<map value="EQ_HIGH" action="shift ? nothing : eq_mid : eq_mid />

PADの編集画面にいって[New page]ボタンを押すと新しいPADページが作成されるので My FXみたいな名前をつける。 とりあえずPAD1PAD3はデフォルトのPM FXと同じようにGrid、Flanger、Phaserを指定しておいて PAD4にNoiseを指定してみる。

VirtualDJ/Pads/My FX.xmlが作成されるので、これを弄る。

<?xml version="1.0" encoding="UTF-8"?>
<page name="My FX">
    <pad1 name="GRID">effect_active &apos;Beat grid&apos;</pad1>
    <pad2 name="FLANGER">effect_active &apos;Flanger&apos; &amp; effect_slider &apos;Flanger&apos; 1 90% &amp; effect_slider &apos;Flanger&apos; 2 75%</pad2>
    <pad3 name="PHASER">effect_active &apos;Phaser&apos; &amp; effect_slider &apos;Phaser&apos; 1 75% &amp; effect_slider &apos;Phaser&apos; 2 75%</pad3>
    <pad4 name="NOISE">set &quot;effect1&quot; 1 while_pressed &amp; effect_active 1 &apos;Noise&apos; while_pressed &amp; effect_slider 1 1 50% &amp; effect_slider 1 2 30%</pad4>
</page>

My FXモードでPAD4を押すとエフェクト1にNoiseをパラメータを初期化してセットして 押している間だけ"effect1" = 1 & エフェクトONにする。

あとはエフェクトPADをPM FXMy FXに変更してツマミの処理を変える

<map value="EFFECT_MODE" action="pad_page &apos;My FX&apos;" />
<map value="EQ_HIGH" action="shift ? nothing : var &quot;effect1&quot; ? effect_slider 1 : eq_mid" />