MIDI 타임코드

MIDI timecode

MIDI 시간 코드(MTC)는 일련의 작은 '분기 프레임' MIDI 메시지와 동일한 타이밍 정보를 표준 SMPTE 시간 코드와 통합한다.표준 MIDI 시간 코드 메시지에는 사용자 비트에 대한 규정이 없으며, SysEx 메시지는 이 정보를 대신 전달하는 데 사용된다.쿼터프레임 메시지는 8개의 메시지의 시퀀스로 전송되므로 완전한 타임코드 값이 2프레임마다 지정된다.MIDI 데이터 스트림이 용량에 가깝게 실행될 경우 MTC 데이터가 일정보다 약간 늦게 도착할 수 있어 소량의 지터를 도입하는 효과가 있다.이를 피하기 위해 MTC 데이터에 대해 완전히 별도의 MIDI 포트를 사용하는 것이 이상적이다.단일 메시지에 시간 코드 액자를 캡슐화하는 더 큰 전체 프레임 메시지를 사용하여 시간 코드가 실행되지 않는 시간을 찾는다.

표준 SMPTE 타임코드와 달리 MIDI 타임코드의 쿼터프레임 및 풀프레임 메시지는 타임코드의 속도를 식별하는 2비트 플래그 값을 전달하며, 이를 다음과 같이 명시한다.

  • 24 프레임/s(필름 작업의 표준 속도)
  • 25 프레임/s(PAL 비디오의 표준 속도)
  • 29.97 프레임/s(NTSC 비디오의 드롭 프레임 시간 코드)
  • 30프레임/초(NTSC 비디오의 경우 비드롭 타임코드)

MTC는 필름 속도와 비디오 속도를 시간 코드 메시지에 포함된 정보가 아닌 시간 코드가 진행되는 속도로만 구분하므로 29.97 프레임/s 드롭프레임은 0.1% 풀다운에서 30 프레임/s 드롭프레임으로 표시된다.

MTC는 시퀀서 또는 DOW를 MTC에 동기화할 수 있는 다른 장치와 동기화할 수 있거나 이러한 장치가 SMPTE로 스트라이핑된 테이프 장치에 '슬레이브'할 수 있도록 허용한다.이를 위해서는 SMPTE에서 MTC 변환기를 사용해야 한다.테이프 머신이 모터 제어를 통해 수신되는 타임코드에 '슬레이브'할 수 있다면, 테이프 머신이 MTC 신호(SMPTE로 변환된 경우)와 동기화할 수 있는데, 이는 드문 기능이다.

시간 코드 형식

MIDI 시간 코드는 32비트의 길이로, 이 중 24비트가 사용되는 반면, 8비트는 사용되지 않고 항상 0이다.풀타임 코드 메시지에서는 각 바이트의 가장 중요한 비트가 0(유효한 MIDI 데이터 바이트)이어야 하기 때문에 실제로 사용 가능한 비트는 28개, 예비 비트는 4개밖에 없다.

SMPTE 시간 코드와 같은 대부분의 시청각 타임코드와 마찬가지로 하루 중 24시간씩만 인코딩한다.시간은 시간, 분, 초, 프레임 단위로 주어진다.초당 24, 25, 30프레임이 있을 수 있다.

대부분의 다른 타임코드와 달리 구성요소는 이진 코딩된 소수점이 아닌 직선 이진법으로 인코딩된다.

각 구성 요소에는 1바이트가 할당됨:

바이트 0
0rrhhhhh: 요금(0–3) 및 시간(0–23).
  • rr = 00: 24프레임/초
  • rr = 01: 25프레임/s
  • rr = 10: 29.97 프레임/초(SMPTE 드롭 프레임 타임코드)
  • rr = 11: 30프레임/s
바이트 1
00mmmmmm: 분(0~59)
바이트 2
00ssssss: 두 번째(0~59)
바이트 3
000fffff: 프레임(0–29 이하, 프레임률 낮음)

풀타임코드

타임 코드의 점프가 있을 경우, 하나의 풀타임 코드를 전송하여 부착된 장비를 동기화한다.이는 특별한 글로벌 시스템 전용 메시지 형식을 취한다.

F0 7F 7F 01 01 hh mm ss ff F7

의 제조업체 ID7F의 채널인 실시간 범용 메시지를 표시한다.7F글로벌 방송임을 나타낸다.다음 ID:01이 메시지가 시간 코드 유형 메시지임을 식별하고 두 번째01이 메시지가 정규 코드 메시지임을 나타냄.4바이트의 시간 코드가 뒤따른다.MIDI는 일반적으로 리틀엔디안이지만, 4시간 코드 바이트는 빅엔디안 순서로 따르며, 그 다음이 a이다.F7"전용 끝" 바이트.

점프 후 첫 번째 쿼터프레임 메시지가 수신될 때까지 시간 시계가 정지한다.

쿼터프레임 메시지

시간이 계속 흐르면 32비트 타임코드는 4비트 8개로 쪼개지고, 분기 프레임마다 1개씩 전송된다.즉, 프레임률에 따라 초당 96-120회.전체 시간 코드 메시지에는 8/4 프레임이 필요하므로 전체 SMPTE 시간은 2 프레임마다 업데이트된다.쿼터프레임 메시지는 0xF1의 상태 바이트로 구성되며, 이어 7비트 데이터 값 하나: 조각을 식별하기 위한 3비트 및 부분 시간 코드 4비트로 구성된다.시간이 앞으로 흐를 때, 조각 번호는 0-7에서 증가하며, 조각 0이 전송되는 시간은 코드화된 순간이며, 나머지 조각은 나중에 전송된다.

MIDI 데이터 스트림을 재워딩하는 경우, 조각 번호는 거꾸로 계산된다.다시, 조각 0은 암호화된 순간에 전송된다.

시간 코드는 다음과 같이 little-endian으로 나뉜다.

MIDI 시간 코드 조각
조각 # 데이터 바이트 의의
0 0000 ffff 프레임 번호 lsbits
1 0001 000f 프레임 번호 msbit
2 0010 ssss 두 번째 lsbits
3 0011 00ss 두 번째 msbits
4 0100 mmmm 분 lsbits
5 0101 00mm 분 msbits
6 0110 hhhh 시간 lsbits
7 0111 0rrh 속도 및 시간 msbit

참고 항목

외부 링크