이 블로그 검색

2022년 10월 19일 수요일

생각을 넓히자. X-Touch mini Hack. Story.

서문

  예전에, USB Snooping, MIDI Snooping 등을 알게 되어서, Windows에서만 버튼 셋업을 바꿀 수 있는 X-Touch Mini의 설정 프로토콜을 확인해 보려 하였다. 뭐랄까 뻔하다고 생각했다. USB 드라이버를 따로 구성해서 할 것 같지는 않았고, USB MIDI 드라이버 상에서 sysex로으로 구현했을거라 생각했다. 

  그리고서는 바로 snooping을 시도했으나, 
 
Beringer X-Touch Editor v1.21은 미디 연결을 독점적으로 연결하도록 강제되어, snooping 툴에서는 입출력 내용을 볼 수가 없어서 이것 저것을 시도해보다 안되었다. 

뭐 대신, Mackie Control 모드가 어떤 식으로 Endless knob의 신호를 보내고 받을 수 있는지에 대해서 알게 되는 순에서 마무리가 되었다. X-touch는 마키모드가 아니더라도 이런식의 신호를 주고 받을 수 있도록, 노브설정을 할 수 있다. (3가지의 모드가 있음. )

아 그렇다. 계획은 실패였다. 


변화

정말 사고 싶어서 장비를 샀지만, 내가 전문 음악하는 사람도 아니고, gimp에 사용하려고 해도 gimp의 미디입력 플러그인이 너무 허접해서 사용이 어려울 뿐아니라, 내 프로그래밍 실력이 허접하다보니 모딩도 시도하다가 시간이 부족해 못한 관계로, 장비가 혼자 구석에서 놀고 있었다. 

그래도, 시간이 날 때마다 새로운 드라이버가 올라왔을까봐, 홈페이지를 찾아가 구경해보고(이제는 그만해야함 너무 오랜시간 동안 업데이트가 없음)

누군가는(중덕, 양덕 !!) 은 해낼거라 믿고, github에서 X-touch mini를 한번씩 검색해 보는데 이번에 누군가가 해냈음을 발견 했다.   
keyword : X-Touch-Mini-HandsOn
2022년 5월 26일에 만든 따끈따근한 github 저장소에 어떤 사람의 시도가 올라왔던 것이다. 

필요는 발명의 어머니랄까, 이 분은 Mac Linux 유저다보니 윈도우에서만 설정이 되는게 매우 불편했다고 말하는 듯하다. 뭐 라즈베리 파이에서 자유롭게 쓰는걸 목적으로 한것 같은데, 그 목표까지는 도달하지 못한것으로 보인다. 

하지만 가장 중요한 방법을 올렸기에 후배(?)들의 길을 열어준 사람이 되지 않을까 생각한다. 

방법은 매우 간단했다. MIDI를 독점하는건 OS차원에서 일어나는 일이고, 해당 어플리케이션도 윈도우 상에서만 작동을 하는 것이니, 윈도우를 가상으로 띄우고, Host에서 USB 패킷을 snooping 하는 것이었다.   허탈하지만, IDEA 를 가지는 것은 그 사람의 삶동안 쌓인 데이터를 통해 나온 직관이니, 내 역량의 문제인 것이다. 그리고 이것은 저 사람의 역량인 것이고. 

중간에서 감청한 sysex명령을 그대로 보냈음에도 Mini의 키 설정을 바꾸는데는 실패했다고 한다, 뭐... 비밀이 몇개가 있는것인지 안된다고 한다. 일단 조작가능한 부분을 올려줬는데 다음과 같다. 

MC모드와 표준모드간의 변경
(이건 원래... MIDI CC 120번대였나... 그 부분을 통해 수정가능했음)

장치ID 변경 
  Sysex 구현인 MIDI Time Code나 Midi Machine Control등에 사용한다. 
  다른 비싼 X-touch series의 경우는 데이지 체인 방식이나, 기기간 확장이 되서 이거 중요하다. 
  din5 미디에서 데이지 체인으로 여러 장비를 연결하고, 0-127에 해당하는 번호에 따라 통제를 다르게 하는데 사용한다. 근데, DAW에서는, 내가 연결을 자유자제로 할 수 있어서, 구현상 연결된 모든 장비의 MMC가 동시에 작동할 것 같은데 흠 잘 모르겠다. 


또 다음은 글로벌 채널의 변경이다.

 x-touch editor를 쓴게 오래되서 모르겠지만, 아마도 개별 설정은 midi note를 뭐로 보내는지 CC번호와 값이 어떻게 되는지를 설정하는거고, 채널은 각 버튼 노브설정이 아니라 글로벌 채널로 보내나보다. 

이 기능은 좋다. DAW에 MIDI 채널 필터, 채널 바꾸는 플러그인은 없을 수 없다. 없다면 당장 거기서 탈출하는게 좋다. 요부분만 잘 쓰면, 다른 기기 버튼으로 16개 채널을 다양하게 endless knob를 사용하게 할 수 있을 것이다.   물론 할 수 있다고 해서 다되는건 아니다. bitwig 플러그인들 다운 받아서 보면 내가 다룰 수 있는 수준의 물건이 아니었다. ardour쪽은 xml로 작성하지만 기능이 매우 제한 적이었어서, lua를 좀 다루고 나서야 시도가 가능할 것이다. 

내가 노리는 부분은 저 분이 실패한, 설정조작이다. 뭐 대단한걸 원하는게 아니라 윈도우에서 가능한 것이라면, Linux나 Mac에서도 가능해야하며, android에서도 가능해야하지 않을까라는 부분이다. 간단한 GUI프로그램 작성으로 OS 프리덤을 실현하고 싶다. 

댓글 없음:

댓글 쓰기

가장 많이 본 글