사운드 신시사이저 는 엔벨로프 제너레이터를 사용하여 사운드의 특정 파라미터 (예 : 전체 음량)가 시간에 따라 어떻게 변하는 지 제어합니다. 많은 신디사이저에서 엔벌 로프는 Wikipedia 의 다음 그림과 같이 네 개의 매개 변수로 정의됩니다 .
- Attack time (A) : 키를 처음 누를 때 엔벨로프가 최대 레벨에 도달하는 데 걸리는 시간입니다 ( 0부터 시작).
- 부패 시간 (D) : 봉투가 지정된 서스테인 레벨에 도달하는 데 걸린 시간입니다.
- 서스테인 레벨 (S) : 키를 누르고있는 동안 초기 공격 및 붕괴 후 유지되는 레벨입니다.
- 릴리스 시간 (R) : 키를 놓을 때 엔벨로프가 0에 도달하는 데 걸린 시간입니다.
도전
네 개의 매개 변수 A, D, S, R을 입력하고 엔벨로프를 플로팅합니다 .
매개 변수는 0에서 127 사이의 정수 값입니다 .
(공격 단계의 끝에 도달 한) 최대 레벨 은 127 로 가정됩니다 .
서스테인 레벨 의 수평 세그먼트 는 지속 시간이 64 인 것으로 가정합니다 (실제 사운드에서이 지속 시간은 고정되어 있지 않지만 키를 누르고있는 시간에 의해 결정됩니다).
형식 및 세부 사항
출력은 래스터 또는 벡터 형식의 이미지 여야합니다. 래스터 인 경우 다각형 선은 가로로 세로로 최소 50 픽셀을 차지해야합니다.
이미지는 표준 이미지 형식으로 파일로 표시되거나 생성 될 수 있습니다. 파일을 디스크에 쓰거나 정확한 내용을 STDERR 또는 함수 리턴 인수로 출력 할 수 있습니다.
그래프에는 봉투를 정의하는 다각형 선만 포함하면됩니다. 각 축의 스케일을 자유롭게 선택할 수 있습니다. 축선, 숫자 레이블 또는 선 색상과 같은 다른 요소는 선택 사항입니다.
입력 수단과 형식은 평소처럼 유연 합니다. 예를 들어, 4 개의 숫자를 임의의 순서로 또는 숫자를 포함하는 배열을 사용할 수 있습니다. 프로그램이나 기능 을 제공 할 수 있습니다. 표준 허점 은 금지되어 있습니다.
바이트 단위의 최단 코드가 이깁니다.
테스트 사례
입력 형식은입니다 [A D S R]
. 스케일은 각 그림에서 다릅니다 (스케일을 자유롭게 선택할 수있는 규칙에 따라).
[15 30 70 40]
[64 64 64 64]
[0 10 50 80]
[0 0 90 80]
[5 50 0 0]
[5 50 0 80]
[24 32 127 48]