Logic Pro 사용 설명서
- 시작하기
-
- 편곡 개요
-
- 리전 개요
- 리전 선택하기
- 리전 일부 선택하기
- 리전 오려두기, 복사, 및 붙여넣기
- 리전 이동하기
- 갭 추가 또는 제거하기
- 리전 재생 지연하기
- 리전 루프하기
- 리전 반복하기
- 리전 리사이즈하기
- 리전 음소거하기 및 솔로 지정
- 리전 타임 스트레치하기
- 오디오 리전 리버스하기
- 리전 분할
- MIDI 리전 디믹스하기
- 리전 결합
- 트랙 영역에서 리전 생성하기
- 트랙 영역에서 오디오 리전을 노멀라이즈합니다.
- MIDI 리전의 가상본 생성하기
- 반복된 MIDI 리전을 루프로 변환하기
- 리전 색상 변경
- 오디오 리전을 Sampler 악기의 샘플로 변환하기
- 리전 이름 변경
- 리전 삭제
- 그루브 템플릿 생성하기
-
- 개요
- 음표 추가
- 악보 편집기에서 오토메이션 사용하기
-
- 보표 스타일 개요
- 트랙에 보표 스타일 할당하기
- 보표 스타일 윈도우
- 보표 스타일 생성 및 복제하기
- 보표 스타일 편집하기
- 보표, 성부 및 할당 파라미터 편집하기
- Logic Pro 보표 스타일 윈도우에서 보표 또는 성부를 추가 및 삭제하기
- Logic Pro 보표 스타일 윈도우에서 보표 또는 성부 복사하기
- 프로젝트 간 보표 스타일 복사하기
- 보표 스타일 삭제하기
- 성부 및 보표에 음표 할당하기
- 별개의 보표에 폴리포닉 파트 표시하기
- 악보 기호의 보표 할당 변경하기
- 보표 전체에 걸쳐 음표 묶기
- 드럼 기보법에 매핑된 보표 스타일 사용하기
- 미리 정의된 보표 스타일
- 악보 공유하기
- Touch Bar 단축키
-
-
- 이펙트 개요
-
- MIDI 플러그인 사용하기
- 조합 버튼 컨트롤
- Note Repeater 파라미터
- 랜더마이저 컨트롤
-
- Scripter 사용하기
- Script Editor 사용하기
- Scripter API 개요
- MIDI 프로세싱 함수 개요
- HandleMIDI 함수
- ProcessMIDI 함수
- GetParameter 함수
- SetParameter 함수
- ParameterChanged 함수
- Reset 함수
- JavaScript 객체 개요
- JavaScript Event 객체 사용하기
- JavaScript TimingInfo 객체 사용하기
- Trace 객체 사용하기
- MIDI 이벤트 beatPos 속성 사용하기
- JavaScript MIDI 객체 사용하기
- Scripter 컨트롤 생성하기
- Transposer MIDI 플러그인 컨트롤
-
- 악기 소개
- 용어집
- Copyright
Logic Pro에서 JavaScript Event 객체 사용하기
HandleMIDI 함수를 실행했을 경우, Event 객체는 하나의 MIDI 이벤트를 나타내거나, 스크립트에서 명령을 내릴 수 있는 여러 방법을 실행합니다.
Event 객체는 직접적으로 설명되지 않지만, 뒤따르는 특정한 이벤트의 메소드, 속성, 종류의 원형입니다.
팁: JavaScript의 ‘new’ 키워드를 사용하여, 어떤 종류건 Event 객체의 새 사례를 생성할 수 있습니다.
Event 메소드
Event.send(): 이벤트를 전송합니다.
Event.sendAfterMilliseconds(ms 숫자): 특정한 값이 경과한 뒤에 이벤트를 전송합니다(정수 또는 부동 소수점 수일 수 있습니다).
Event.sendAtBeat(비트 번호): 호스트 타임라인의 특정한 비트(부동 소수점 수)에 이벤트를 전송합니다.
Event.sendAfterBeats(비트 번호): 위와 같지만, 비트 값을 현재 위치에 있는 비트의 지연으로 사용합니다.
Event.trace(): 이벤트를 플러그인 콘솔에 출력합니다. Trace 객체 사용하기를 참조하십시오.
Event.toString(): 이벤트의 String 묘사를 돌려줍니다.
Event 속성
Event.toarticulationID(정수): 아티큘레이션 ID를 0-254 사이로 설정합니다.
Event.channel(숫자): MIDI 채널을 1에서 16까지 설정합니다.
Event.beatPos: 이벤트의 정확한 비트 위치를 되찾아옵니다.
Event 종류
Event 객체는 뒤따르는 이벤트 종류의 원형입니다. 모든 이벤트 종류는, 위에서 설명된 메소드와 채널 속성을 이어받습니다.
이벤트 종류와 그 속성은 다음과 같이 HandleMIDI로 전달됩니다.
NoteOn.pitch(정수): 1-127의 피치.
NoteOn.velocity(정수): 0-127의 벨로시티. 벨로시티 값이 0이면, 노트 온이 아닌 노트 오프 이벤트로 해석됩니다.
NoteOff.pitch(정수): 1-127의 피치.
NoteOff.velocity(정수): 0-127의 벨로시티.
PolyPressure.pitch(정수): 1-127의 피치.
PolyPressure.value(정수): 압력 값을 0-127 에서 규정합니다.
ControlChange.number(정수): 0-127의 컨트롤러 번호.
ControlChange.value(정수): 0-127의 컨트롤러 값.
ProgramChange.number(정수): 0-127의 프로그램 체인지 번호.
ChannelPressure.value(정수): 0-127의 애프터터치 값.
PitchBend.value(정수): -8192–8191의 14비트 피치 벤드 값. 값 0은 중앙입니다.
TargetEvent.target(스트링): 사용자가 규정할 수 있는 MIDI CC 메시지 또는 제어 플러그인 파라미터를 만듭니다.
TargetEvent.value(플로팅): 대상 값을 설정합니다.
해당하는 튜토리얼 설정을 불러내, Script Editor에서 스크립트를 읽어보십시오. 코드와 주석의 문법 구조와 레이아웃을 이해하는 데 도움이 될 것입니다. Script Editor 사용하기를 참조하십시오.
튜토리얼 스크립트 7: 이벤트 생성
Logic Pro에서 이 예시는 수신되는 모든 MIDI 이벤트를 모듈레이션 컨트롤 체인지 메시지로 대체합니다.
/* 뒤의 텍스트는 JavaScript 코드를 설명하는 주석을 나타냅니다.
팁: JavaScript의 ‘new’ 키워드를 사용하여, 어떤 종류건 Event 객체의 새 사례를 생성할 수 있습니다.
function HandleMIDI() {
var cc = new ControlChange; /* make a new control change message */
cc.number = 1; /* set it to controller 1 (modulation) */
cc.value = 100; /* set the value */
cc.send(); /* send the event */
cc.trace(); /* print the event to the console */
}
튜토리얼 스크립트 8: 이벤트 수정
Logic Pro에서 이 예시는 수신되는 모든 MIDI 이벤트를 C3 노트 온/오프로 대체합니다. 이 예시 또한 NeedsTimingInfo 변수를 사용합니다. JavaScript TimingInfo 객체 사용하기를 참조하십시오.
/* 뒤의 텍스트는 JavaScript 코드를 설명하는 주석을 나타냅니다.
팁: JavaScript의 ‘new’ 키워드를 사용하여, 어떤 종류건 Event 객체의 새 사례를 생성할 수 있습니다.
var NeedsTimingInfo = true; /* needed for .sendAfterBeats() to work */
function HandleMIDI() {
var on = new NoteOn; /* make a new note on */
on.pitch = 60; /* set its pitch to C3 */
on.send(); /* send the note */
var off = new NoteOff(on); /* make a note off using the note on to initialize its pitch value (to C3) */
off.sendAfterBeats(1); /* send a note off one beat later */
}
튜토리얼 스크립트 15: 플러그인 제어
Logic Pro에서 사용자 정의 MIDI CC 메시지를 만들 수 있고, 또는 플러그인 파라미터를 제어할 수 있습니다. TargetEvent는, 파라미터를 읽어 메뉴에서 변경되게 하며, 사용자는 목적지 MIDI CC를 선택할 수 있습니다. 그 다음에, Plug-in 파라미터 학습 기능을 사용하여, 동일한 채널 스트립의 Scripter 뒤(아래)에 삽입된 어떤 플러그인 파라미터에도 할당할 수도 있습니다. 선택한 목적지는 플러그인 설정에 저장됩니다.
/* 뒤의 텍스트는 JavaScript 코드를 설명하는 주석을 나타냅니다.
팁: JavaScript의 ‘new’ 키워드를 사용하여, 어떤 종류건 Event 객체의 새 사례를 생성할 수 있습니다.
TargetEvent properties:
TargetEvent.target(string) /* Name of target menu entry */
TargetEvent.value(float) /* Value of set Target from 0.0 to 1.0 */
아래에 보여진 코드는, 모듈레이션 휠을 사용하는 어떤 파라미터든 제어합니다. 튜토리얼 스크립트 15의 함수를 시험해보기 위하여, 플러그인 또는 소프트웨어 악기를 어떤 것이든 동일한 채널 스트립에 삽입하고 스크립트를 실행하십시오. 메뉴에서 플러그인 파라미터 학습을 선택하고, 모듈레이션 휠로 제어할 플러그인 파라미터를 클릭하십시오.
모듈레이션 휠을 대상으로 하는 메뉴를 생성하기 위하여, 메뉴 엔트리에 이름을 붙이고 ‘타겟’의 종류를 설정합니다.
var PluginParameters = [
/* parameter 0 */
{
name:"Modwheel Target",
type:"target"
}];
HandleMIDI는, Scripter에서 튜토리얼 스크립트 15의 MIDI이벤트를 수신할 때 마다 호출됩니다. 아래에 나타나는 코드는, 모듈레이션 휠을 메뉴에서 선택한 대상으로 다시 매핑합니다.
function HandleMIDI(incomingEvent)
{
/* remap modulation to target selected in menu and
check for incoming CC event with number 1 (Modwheel) */
if ((incomingEvent instanceof ControlChange) && (incomingEvent.number == 1))
{
var newEvent = new TargetEvent(); /* create new Target event */
newEvent.target = "Modwheel Target"; /* name the menu entry to be used by this event */
newEvent.value = incomingEvent.value / 127; /* rescale from 0..127 to 0.0...1.0 */
newEvent.send(); /* send the event */
} else
{
/* send all other events */
incomingEvent.send();
};
};