키를 놓은 뒤 정해진 시간 동안 샘플의 음량을 일정하게 유지하는 방법
키를 놓은 뒤 정해진 시간 동안 샘플을 일정하게 재생하려면 샘플러의 진폭 엔벌로프를 서스테인 레벨로 유지하면서 MIDI 노트 오프 메시지를 지연하세요. 지연 시간이 끝난 뒤에만 엔벌로프가 릴리스되도록 하세요. 일반적인 릴리스 컨트롤 값을 높이면 일정한 구간이 아니라 페이드가 생깁니다. 일부 악기에는 키를 놓은 뒤에도 유지하는 전용 기능이 있지만, “Hold”의 의미는 제품마다 다릅니다. FabFilter One: 엔벌로프 생성기.
이 가이드는 예를 들어 손가락을 뗀 뒤 2초 동안 샘플을 일정하게 재생하려는 키보드 연주자나 프로듀서를 위한 것입니다. 적절한 컨트롤을 찾는 방법과 샘플러에 해당 기능이 없을 때 사용할 완전한 Logic Pro Scripter 구현을 설명합니다.
키를 놓은 뒤 정확히 어떤 일이 일어나야 하나요?
컨트롤을 조정하기 전에 타이밍을 정하세요. 원하는 동작은 다음과 같습니다. 키를 누르는 동안 샘플을 재생하고, 키에서 손을 뗀 뒤 선택한 시간 동안 설정된 레벨을 유지한 다음, 재생을 멈추거나 짧게 페이드합니다. 원래 키를 얼마나 오래 눌렀는지와 관계없이 키를 놓는 순간부터 시간이 시작되어야 합니다.
예를 들어 2초로 설정했다면 0.35초에 키를 놓을 경우 2.35초에 끝나기 시작해야 합니다. 3초 동안 키를 누른 뒤 놓으면 5초에 끝나기 시작해야 합니다. 이는 타이밍 예시이며 측정된 성능 결과가 아닙니다. 처음 키를 누른 시점에서 항상 2초 뒤에 재생이 끝나는 설정은 다른 작업에 해당합니다.
또한 일정한 엔벌로프 게인과 일정한 청감 음량을 구분하세요. 평평한 진폭 엔벌로프는 샘플 자체의 다이내믹스를 그대로 둡니다. 녹음된 소리가 페이드되거나 무음이 포함되어 있거나 끝에 도달하면, 엔벌로프를 열린 상태로 유지해도 지속적이고 일정한 소리를 만들 수 없습니다. 서스테인 구간이 있는 녹음이나 적절한 반복 구간부터 사용하세요.
Release와 Hold를 조정하면 원하는 결과가 나오지 않는 경우가 많은 이유는 무엇인가요?
Logic Pro Sampler에서 Sustain은 키를 누르고 있는 동안 유지되는 레벨을 지정합니다. Release는 그 레벨에서 0으로 전환되는 시간을 지정합니다. AHDSR의 Hold 단계는 Attack 다음, Decay 이전에 오며, 손가락을 뗄 때 시작되는 타이머가 아닙니다. ENV 1은 진폭을 제어합니다. 이 정의를 보면 Release나 처음의 Hold 단계 시간을 늘려도 원하는 일정한 구간이 직접 만들어지지 않는 이유를 알 수 있습니다. Apple: Sampler 엔벌로프 사용하기.
키를 놓은 뒤에도 실제로 유지되는 기능은 다르게 작동합니다. FabFilter One 설명서에서 Hold는 키를 놓은 뒤에도 엔벌로프가 키를 누르고 있는 것으로 처리하는 추가 시간이며, 그 뒤에 Release가 이어집니다. 설명서에서 찾아야 할 동작이 바로 이것입니다. 아래에서 사용하는 샘플 재생 구현은 FabFilter One의 컨트롤 의미를 설명하기 위한 예시와는 별개입니다. FabFilter One: 엔벌로프 생성기.
Ableton의 Drum Sampler 설명서는 컨트롤 이름을 확인해야 하는 이유를 보여 줍니다. Trigger 모드에서 Hold는 어택 피크를 기준으로 정의되며, 노트를 놓은 뒤에도 재생이 계속된다고 설명합니다. 반면 Gate 모드에서는 놓은 뒤 페이드되며 Hold가 비활성화됩니다. 따라서 Trigger 모드의 Hold 값이 키를 놓은 시점부터 측정되는 시간이라고 간주하기 전에 타이밍을 테스트해야 합니다. Ableton Live 12: Drum Sampler.
어떤 방식을 선택해야 하나요?
| 사용 가능한 기능 | 실용적인 선택 |
|---|---|
| 설명서에 키를 놓은 시점부터 시작되는 유지 시간이 명시되어 있음 | 일정한 서스테인 레벨과 함께 해당 기능을 사용합니다. |
| Hold가 Attack 뒤에 시작되거나 재생 시간이 트리거 시점부터 고정됨 | 키를 놓은 시점부터 계산한 시간만큼 노트 오프를 지연합니다. |
| 기존 MIDI 연주를 편집 중임 | 각 노트의 끝을 필요한 시간만큼 늘린 뒤 짧은 릴리스를 사용합니다. |
| 원본 녹음이 너무 일찍 페이드되거나 끝남 | 노트 타이밍을 조정하기 전에 서스테인 가능한 소스를 준비하거나 루프를 만듭니다. |
이 결정 방법은 두 가지 컨트롤을 구분하는 데서 나옵니다. 샘플러는 진폭을 조절하고, MIDI 노트 타이밍은 릴리스 요청 시점을 결정합니다. 노트 오프만 지연하면 기존 노트 온 타이밍이 유지됩니다. 두 메시지를 모두 지연하면 노트 전체가 뒤로 이동할 뿐입니다.
Logic Pro에서 샘플과 엔벌로프를 어떻게 준비하나요?
Sampler가 삽입된 소프트웨어 악기 트랙을 만들고 샘플을 불러옵니다. Apple 설명에 따르면 오디오를 Sampler의 Navigation Bar로 드래그해 매핑된 존을 만들 수 있습니다. Zone 창에서 재생 경계, 루프 지점, 루프 크로스페이드를 조정할 수 있습니다. 서스테인 재생에 적합한 안정적인 구간을 선택하고 여러 번 반복해서 들어 보세요. Apple: Sampler로 샘플러 악기 만들기.
처음 테스트할 때는 원래 피치의 서스테인 샘플 하나를 사용하세요. 루프가 없는 경우에는 테스트 전체 시간, 즉 키를 누르고 있는 시간과 추가 유지 시간, 끝나는 구간을 모두 합한 것보다 샘플이 길어야 합니다. 짧은 녹음은 임의로 긴 키 누름을 뒷받침할 수 없습니다.
Modulators에서 ENV 1을 선택하고 AHDSR을 선택합니다. Delay와 Hold는 0으로, Attack은 짧게, Sustain은 최대로, Release는 짧게 설정합니다. Sustain이 최대이면 Decay는 레벨에 영향을 주지 않습니다. 이 설정은 진단을 위한 시작점입니다. 나중에 소리에 필요한 경우 더 긴 Attack을 유지하세요. Apple: Sampler 엔벌로프 사용하기.
Scripter로 노트 오프를 2초 지연하려면 어떻게 하나요?
트랙의 MIDI FX 섹션에서 Scripter를 샘플러 앞에 삽입합니다. Script Editor를 열고 기존 스크립트를 아래의 전체 프로그램으로 바꾼 다음 Run Script를 클릭합니다. Apple에서 이 편집 및 실행 절차를 설명합니다. Apple: Scripter Script Editor 사용하기.
이 프로그램은 MIDI 이벤트 클래스와 스케줄링 메서드를 제공하는 Logic Pro의 Scripter 환경이 필요합니다. 가져오기나 오디오 파일 경로는 필요하지 않습니다. 입력 샘플은 일반적인 키보드 노트 온 뒤 노트 오프가 이어지는 형태이며, 속도가 0인 노트 온도 노트 오프의 대체 표현으로 처리됩니다. Apple은 해당 이벤트 유형과 sendAfterMilliseconds()를 설명합니다. Apple: JavaScript Event 객체 사용하기.
// Complete Logic Pro Scripter program.
// Additional hold after physical key release, in milliseconds.
var HOLD_MS = 2000;
function HandleMIDI(event) {
if (event instanceof NoteOff) {
event.sendAfterMilliseconds(HOLD_MS);
} else if (event instanceof NoteOn && event.velocity === 0) {
var off = new NoteOff(event);
off.sendAfterMilliseconds(HOLD_MS);
} else {
event.send();
}
}
HOLD_MS을 750처럼 0.75초를 나타내는 다른 0 이상의 시간으로 바꾸세요. 스크립트는 노트 온을 즉시 보내고 노트 오프는 나중에 예약합니다. 다른 입력 메시지는 그대로 전달됩니다. 원래 노트 오프를 즉시 복사해 보내면 샘플러에 너무 일찍 릴리스하라는 신호가 되므로 보내지 않습니다.
이벤트 라우팅 분기를 간단한 JavaScript 모의 환경에서 확인했습니다. 노트 온과 컨트롤러 이벤트는 즉시 통과했고, 두 가지 노트 오프 표현은 모두 2,000밀리초 뒤로 예약되었습니다. 이 검증은 라우팅 로직을 확인한 것이며 Logic Pro의 오디오 타이밍을 측정하거나 샘플러를 직접 들어 본 결과는 아닙니다.
유지 시간이 키를 놓는 시점부터 시작되는지 어떻게 확인하나요?
서스테인 페달 입력을 끄고 오디오 효과를 우회한 뒤 다음 테스트를 진행하세요. 한 번에 한 음만 테스트하고, 같은 음을 다시 연주하기 전에 소리가 끝날 때까지 기다리세요.
HOLD_MS를2000로 설정하고 스크립트를 실행합니다.- 건반 하나를 짧게 누릅니다. 끝나기 전까지 일정하게 이어지는지 들어 봅니다.
- 같은 건반을 약 3초 동안 누르고 있다가 놓습니다.
- 키를 놓은 뒤에도 이어지는 시간이 여전히 약 2초인지 확인합니다.
HOLD_MS을500로 바꾸고 스크립트를 다시 실행한 다음 두 가지 연주를 모두 반복합니다.
더 자세히 살펴보려면 샘플러 출력을 녹음하고 끝나는 시점을 원래 MIDI 노트의 종료 시점과 비교하세요. 예시처럼 키를 3초 동안 누르고 종료 시간을 2초 늘리면 노트 온 후 약 5초에 릴리스가 시작되어야 합니다. 짧은 엔벌로프 릴리스를 추가하면 마지막 무음 시점은 일정한 구간이 끝나는 시점보다 늦어집니다.
예를 들어 2초 동안 일정한 음량을 유지한 뒤 예시처럼 10밀리초 릴리스가 이어지면 키를 놓은 뒤 끝나는 시퀀스는 명목상 2.01초입니다. 원하는 시간이 “페이드가 시작될 때까지”인지 “무음이 될 때까지”인지 정하고 그에 맞게 조정하세요.
샘플이 페이드되거나 일찍 멈추거나 잘못 재트리거될 때는 무엇을 확인해야 하나요?
유지 시간 동안 소리가 페이드되면 우선 추가 진폭 변조나 효과가 없는 안정적인 소스로 테스트하세요. 키를 누르고 있을 때와 키를 놓은 뒤의 재생을 비교합니다. 두 경우 모두 비슷하게 페이드된다면 MIDI 지연을 늘리기보다 녹음이나 루프를 확인하세요.
재생이 일찍 끝나면 샘플 끝 지점과 루프 설정을 확인하세요. 예상보다 오래 이어지면 샘플러의 릴리스를 줄이고 효과 잔향 없이 테스트하세요. 한 번에 한 요소씩 바꾸면 예약된 노트 종료와 그 이후에 재생되는 오디오를 구분할 수 있습니다.
반복 노트는 별도로 확인해야 합니다. 이 간단한 스크립트는 예약된 노트 오프를 취소하거나 각 보이스에 고유 식별자를 부여하지 않습니다. 따라서 지연된 노트 오프가 도착하기 전에 같은 채널에서 같은 음을 다시 연주하면 악기의 보이스 처리 방식에 따라 원치 않게 소리가 끊길 수 있습니다. 이 구현을 사용할 때는 음이 끝난 다음 같은 음을 다시 연주하세요. 빠르게 반복되는 노트 연주에는 이런 겹침을 처리하도록 설계된 프로세서가 필요합니다.
짧게 누르는 테스트와 길게 누르는 테스트에서 키를 놓은 뒤의 시간이 같게 나오면 Scripter 설정을 악기 패치와 함께 저장하세요. 서스테인 가능한 소스를 사용하고, 엔벌로프 레벨을 일정하게 유지하며, 원하는 소리에 맞게 짧은 종료 구간을 설정하세요. 이 세 가지를 갖추면 지연된 노트 오프로 유용하고 반복 가능한 유지 구간을 만들 수 있습니다.
