MIDIJackとは
UnityでMIDIコンを使えるようにしてくれるkeijiroさんが作成して下さったアセットです.
->https://github.com/keijiro/MidiJack
使えると嬉しいこと
Unityを使ってVJをする際など,リアルタイムで値を変更する際に役立つのではないかなと思います.
使い方
ドライバの導入
まず,はじめに使うMIDIコンのドライバをインストールしてください.自分はKORG nanoKONTROL2-BKという物を使っています.(値段も安いし結構メジャーなんじゃないですかね?)一応,KORG系のドライバがインスールできるURLを貼っておきます.
https://www.korg.com/jp/support/download/product/1/200/
スクリプトについて
基本的staticのクラスであるMidiMasterを経由してMIDIコンのノブの値を取得します.言葉で長く書くよりもソースをみてもらった方が早そうなので簡易的なプロジェクトを作成しました.
ノブの値に応じてcubeが動く感じです.
https://github.com/KeitoTakaishi/MIDIJack_Sample
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace MidiJack
{
public class MidiManager : MonoBehaviour
{
private int _KnobNum = 8;//自分のmidiコンのノブの数
public GameObject[] meter;
private Vector3[] _pos;
void Start()
{
_pos = new Vector3[_KnobNum];
for (int i = 0; i < _KnobNum; i++){
_pos[i] = meter[i].transform.position;
}
}
void Update()
{
for (int i = 0; i < _KnobNum; i++)
{
meter[i].transform.position =
new Vector3(_pos[i].x, MidiMaster.GetKnob(MidiChannel.Ch1, i)*5.0f, _pos[i].z);
}
}
}
}
MIDIコンが検出されているかどうかの確認
Midiコンが接続されているかどうかわからない時はwindows->MIDI Jackを選択してみてください.
windowsで使った際にハマった罠
自分は最初windowsでこのアセットを使ったのですがうまく検出されませんでした.しかし,macではうまく検出がうまく行きました.理由としては他のアプリで検出中であるとUnity側では検出してくれないみたいです.自分の場合はTouchDesignerで検出がされていたみたいです.TDを切ったらうまく検出されました.