음악, 삶, 개발

[mtr] 파트 3 - [dict] 를 사용하여 이벤트 추가하기 본문

개발 공부/Max 공부방

[mtr] 파트 3 - [dict] 를 사용하여 이벤트 추가하기

Lee_____ 2021. 8. 23. 08:33

앞서 addevent 를 사용하여 이벤트를 추가하는 방법을 배웠다.

addevent 가 가장 기본적인 방법이긴하나, 

동시에 수십개의 이벤트를 한번에 집어넣고싶다던지 한다면

결국 js 를 통해 루프를 만들어야할텐데 꽤나 귀찮은 작업일수있다.

addevent 를 여러번 호출해서 이벤트를 추가하는 방법보다,

한번에 객체를 [mtr] 에 할당하는 방식으로 [dict] 를 넘길수있다.

 

먼저 [dict] 에 이벤트들을 작성한다.

/* [dict] 안에 들어갈 데이터 */

{
   "tracks":[
      {
         "events":[
            {
               "time":0.0,
               "message":"list",
               "args":[
                  1000.0,
                  "two"
               ]
            },
            {
               "time":0.0,
               "message":"list",
               "args":[
                  0.0,
                  "one"
               ]
            }
         ],
         "length":0.0,
         "loop":0,
         "trackspeed":1.0
      }
   ],
   "type":"dump"
}

 

위와 같은 [dict] 가 있다고 했을때

이때 기억해야할 중요한점은

addevent 는 반드시 2번쨰 inlet (해당 track 의 inlet) 에 들어가야하는 반면,

dict 는 무조건 첫번째 inlet 에 쏴줘야한다.

또한 clear 메세지를 보낼 필요없이, 기존의 데이터를 모두 교체하게된다.

addevent 는 트랙별로 이벤트를 추가할수있으나,

[dict] 를 사용할 경우 [mtr] 전체가 변경되게 됨을 기억해야한다.

따라서 JS 에서 별도로 객체를 추적해야하는 과정이 필요하다.