1

작곡 프로그램 개발 일지 4

작곡 프로그램 개발 일지 4

노아의 블로그

    목차
반응형

그후 강의를 어느정도 봤는데.. 이제 구현을 해 보아야 할 것 같아서 

 

한번 생각을 해 보았다. 일단 사용자가 입력한 값으로 midi file을 생성해야 함.

 

지금 단계에서는 바로 처음부터 파일을 생성하지 않고 헤더 청크와 각종 트랙 청크들의 분리를 하고 그 데이터에 사용자가 입력한 데이터를 추가하는 방식으로 진행하기로 했다.

 

그런데, 이 델타타임이 아주 골치아프다.. 우리는 주로 "초(Seconds)" 라는 기준을 사용하지만 델타타임은 tick이라는 시간 기준을 사용한다. 따라서 tick을 초로 변환하는 과정이 필요하다.  

 

그 과정 중, Division과 BPM에 대해서 알아야 한다.

 

일단 우리에게 흔한 BPM에 대해서 알아보자. BPM은 Beat Per minute이다.

 

즉 분당 박자이다. 120 BPM은 1분당 120 박자이다. 

 

솔찍히 용어들이 이해가 잘 안되었지만 1분당 내 책상을 120번 친다고 생각 하면 된다.

 

Division은 tick per beat라고 한다. beat(박자) 하나당 틱을 의미한다.

 

Midi file의 구조 중, 헤더 청크에 이 Division 정보가 담겨있다. 

예시를 들어 480 Division이라면... 한 박자 에 480tick이라는 소리이다.

 

우리는 1 tick이 몇초인지 알고싶다. 따라서 한 박자가 몇 초인지 알아야 한다.

 

그래서 BPM이 120이니.... 

1분에 60초 따라서 60 / 120을 하면 한 비트(박자)당 초가 나온다.

 

120 BPM은 한 박자당 0.5초이다. 

 

한 박자 = 480tick이다.

 

따라서 480tick은 0.5초이다.

 

다시 1tick이 몇초인지 알기 위해서 0.5 / 480tick을 하면 

 

1tick 은 0.0010416666666667초이다.

 

음... 구했으나?

 

테스트를 해 보아야 하는데... 잘 안되고 시간이 너무 빨리가고..젠장

 

다음에 계속..

 

 

 

 

 

 

반응형

'GAME > Unity' 카테고리의 다른 글

작곡 프로그램 개발 일지 5  (0) 2023.10.18
작곡 프로그램 개발 일지 3  (0) 2023.10.16
작곡 프로그램 개발 일지 2  (0) 2023.10.15