음악, 삶, 개발
[mtr] 파트2 - mtr 에 이벤트 추가하기 (addevent 메세지) 본문
< 이벤트 추가하기 : addevent $1 $2 >
addevent 라는 메세지를 통해서 [mtr] 에 특정 시점에 이벤트를 추가할수있다.
이 시점은 ms 또는 @sync 1 일 경우 tick 으로 정의된다.
tick 으로 정의되는 경우는 추후 다른 포스팅에서 설명하도록 하고,
먼저 ms 로 event 를 추가하는 방법을 알아보겠다.
addevent 메세지는 기본적으로 2개의 인자를 받게되는데,
첫번째는 어느 시점에 추가할지 ms인 float 이고,
두번째는 이벤트명이다.
하지만 이벤트명만으로는 이벤트를 추가하는데에 충분하지않다.
우리는 다양한 정보들 (velocity, pitch 등등) 을 저장하고싶을것이다.
이때는 길이의 제약없이 $3 $4 $5... 계속 늘려나갈수있고 이는 array 가 된다.
우리가 추가할 3번째 인자인 배열의 길이를 알수없기때문에,
addevent $1 $2 대신에 [prepend addevent] 로 변경해야한다.
[dict] 를 더블클릭을 하여 내부를 까보면 "message" 라는 속성에 $3 로 넘겼던 이벤트명이
실제로 배열임을 알수있다.
dict 속에는 time, message, args 라는 프로퍼티명이 정의되어있는데,
addevent 메세지를 사용할때는 위의 프로퍼티 순서를 지켜서 입력을 하면
각 프로퍼티에 입력된다.
3번째 인자인 배열은 반드시 숫자들의 모임일 필요없다.