이 제어를 수정하면 이 페이지는 자동으로 업데이트됩니다.
MainStage 사용 설명서
- 환영합니다
-
- 편집 모드 개요
- 센드 이펙트를 통해 오디오 라우팅하기
- 그래프 사용하기
- 컨트롤러 트랜스폼 생성하기
- 콘서트 프로젝트 간에 패치 및 세트 공유하기
- 콘서트 프로젝트의 오디오 출력 녹음
-
-
- MIDI 플러그인 사용하기
- 보조 키 컨트롤
- Note Repeater 파라미터
- Randomizer 컨트롤
-
- Scripter 사용하기
- Script Editor 사용하기
- Scripter API 개요
- MIDI 프로세싱 함수 개요
- HandleMIDI 함수
- ProcessMIDI 함수
- GetParameter 함수
- SetParameter 함수
- ParameterChanged 함수
- Reset 함수
- JavaScript 객체 개요
- JavaScript Event 객체 사용하기
- JavaScript TimingInfo 객체 사용하기
- Trace 객체 사용하기
- MIDI 이벤트 beatPos 속성 사용하기
- JavaScript MIDI 객체 사용하기
- Scripter 컨트롤 생성하기
- Transposer 컨트롤
-
- Copyright
MainStage에서 MIDI 이벤트 beatPos 속성 사용하기
Scripter의 모든 MIDI 이벤트는 ‘beatPos’로 불리는 속성을 가지고 있는데, 정확한 비트 위치를 전달합니다. 이는 이벤트의 타이밍을 더 정확하게 하고, 또한 루프를 정확하게 다루게 합니다. 이 속성은 timingInfo.blockStartBeat
를 대신하여 사용할 수 있습니다. JavaScript TimingInfo 객체 사용하기를 참조하십시오.
참고: 이 속성은 "var NeedsTimingInfo = true"
인 경우에만 작동하며, 아닌 경우 값이 0이 되고, 변경된 경우 경고를 출력할 것입니다.
MainStage에서 아래의 행 중 하나를 Script Editor 윈도우에 입력하십시오(둘 다 같은 결과로 나타납니다):
event.send()
event.sendAtBeat(event.beatPos)
그 대신에, 아래의 행 중 하나를 Script Editor 윈도우에 입력할 수도 있습니다(둘 다 같은 결과로 나타납니다):
event.beatpos += 1; event.send()
event.sendAtBeat(event.beatPos + 1)
beatPos 속성의 용법 예시
beatPos 속성을 사용하여 MIDI 이벤트를 특정한 비트 위치로 전송할 수 있습니다. 아래의 예시에서 노트 끔 이벤트는 이벤트에 상응하는 노트의 비트 위치보다 한 비트 늦게 전송됩니다.
참고: 또한 event.sendAtBeat(pos) 메소드를 사용하여 이벤트를 특정한 비트 위치로 전송할 수 있습니다. beatPos 속성 사용의 이점은, 실제로 이벤트를 전송할 필요가 없다는 것입니다. 속성을 간단히 이용하여 이벤트의 정확한 비트 위치를 되찾아오면 됩니다.
/* 뒤의 텍스트는 JavaScript 코드를 설명하는 주석을 나타냅니다.
var NeedsTimingInfo = true; /* needed to make beatPos work */
function HandleMIDI(event) {
var on = new NoteOn; /* make a new note on */
on.pitch = 60; /* set its pitch to C3 */
on.beatPos = event.beatPos; /* copy beat position from incoming event */
on.send(); /* send the note on */
var off = new NoteOff(on); /* make a note off using the note on to initialize its pitch value to C3 */
/* note that the beatPos does not get copied here */
off.beatPos = on.BeatPos+1; /* set the beat position of the note off event */
off.send(); /* send the note off event */
}
피드백을 보내 주셔서 감사합니다.