음악, 삶, 개발

[mtr] 파트2 - mtr 에 이벤트 추가하기 (addevent 메세지) 본문

개발 공부/Max 공부방

[mtr] 파트2 - mtr 에 이벤트 추가하기 (addevent 메세지)

Lee_____ 2021. 8. 23. 08:24

< 이벤트 추가하기 : 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 로 넘겼던 이벤트명이

실제로 배열임을 알수있다.

args 라는 array

dict 속에는 time, message, args 라는 프로퍼티명이 정의되어있는데,

addevent 메세지를 사용할때는 위의 프로퍼티 순서를 지켜서 입력을 하면

각 프로퍼티에 입력된다.

3번째 인자인 배열은 반드시 숫자들의 모임일 필요없다.