MidiControllerChecker.cs
0.00MB
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MidiJack;
public class MidiControllerChecker : MonoBehaviour
{
public bool MidiControllerCheck;
float[] KnobValue = new float[128];
void Update()
{
if (MidiControllerCheck)
{
//미디 버튼 체크 눌러봐서 체크
for (int i = 0; i < 128; i++)
{
if (MidiMaster.GetKeyDown(i))
{
//버튼의 True값이 반환 됐을때 알려줌
Debug.Log("this Button number : " + i.ToString());
}
}
//미디 노브 값이 변하는 것을 체크
for (int i = 0; i < 128; i++)
{
if (KnobValue[i] != MidiMaster.GetKnob(i))
{
Debug.Log("this Knob number : " + i.ToString() + " / Value : " + MidiMaster.GetKnob(i));
}
KnobValue[i] = MidiMaster.GetKnob(i);
}
}
}
}
스크립트 넣고 버튼 확인할 경우에 Inspector에서 Midi Controller Check를 True로 체크해주고
버튼 누르거나 노브 돌려보면 콘솔창에 값 나옴
*확실한건 아닌 내용
GetKnob나 GetKey명령어의 인자에 채널명 안넣으면 MidiChanel.All로 모든 채널에 있는 해당 값을 가져오는 것 같음.
그리고 미디 컨트롤러의 채널 지정은 랜덤한것 같고 경우에 따라 변경되는것 같은데,
미디컨트롤러 종류에 따라 채널이 변경될경우에 버튼,노브를 불러오는 넘버값도 바뀌는 것 같음.
그래서 꼬이지 않게 미디컨트롤러는 1개만 연결하고 같은 포트를 유지하는 것을 권장.
'툴 > 유니티' 카테고리의 다른 글
개발 할 때 바탕화면 한글 경로 문제(바탕화면을 영문 Desktop으로 변경하기) (1) | 2023.10.16 |
---|---|
Live Visualizer를 위한 스크립트(미디 확인, 음악 제어, 스펙트럼, 싱크 확인) (0) | 2023.10.13 |
Unity + Azure Kinect Body Tracking 애저키넥트 바디트래킹 (2) | 2023.08.02 |
MIDI Out C# 스크립트, 비주얼 스크립팅으로 호출 (0) | 2023.07.20 |
OSC & MIDI 비주얼 스크립팅 (0) | 2023.07.20 |