기본 색인 | 섹션 4 | English | 日本語 | 옵션 |
어떠한 때라도, 이 디바이스를 오픈할 수 있는 것은 다만 1 개의 프로세스 뿐입니다. 이 때문에, 이 디바이스의 락과 해방에는, open(2) (와)과 close(2) (을)를 사용합니다. 다른 프로세스가 디바이스를 독점하고 있을 때에 오픈하려고 하면(자), EBUSY 에러를 나타내 -1 를 돌려줍니다. 디바이스에의 기입은, ASCII 캐릭터로 단순하게 멜로디를 표기했다 연주 캐릭터 라인 (`play string')으로서 해석됩니다. ioctl(2) 리퀘스트에 의한 임의의 주파수의 발음도 서포트되고 있습니다.
발음하는 것으로 프로세서를 독점할 것은 없습니다. 실제로는, 드라이버는 PC 하드웨어가 소리를 발하고 있는 동안의 대부분의 시간을 sleeve 해 기다리고 있습니다. 다른 프로세스는 드라이버가 달리고 있는 동안에 beep를 울릴 수가 있습니다.
어플리케이션은, 스피커의 파일 기술자에 대해서 ioctl(2) 호출을 하는 것으로써, 스피커 드라이버를 직접 제어 가능합니다. ioctl(2) 인터페이스에 대한 정의는 /usr/include/machine/speaker.h 에 있습니다. 이러한 호출에 사용된다 tone_t 구조체에는, 주파수 (헤르쯔)와 지속 시간 (1/100 초단위로)을 지정한다 2 개의 필드가 있습니다. 주파수 0 은, 휴부라고 해석됩니다.
현재 그러한 ioctl(2) 호출은 2 개 있습니다. SPKRTONE (은)는, 제 3 인수에 단일의 tone 구조체에의 포인터 1 개를 받아, 그것을 연주합니다. SPKRTUNE (은)는, 단일의 tone 구조체 배열의 선두에의 포인터 1 개를 받아, 그것들을 차례로 연주합니다. 이 배열은 말미가 지속 시간 0 의 멤버로 끝나고 있는 것이 필요합니다.
연주 캐릭터 라인의 어법은 IBM Advanced BASIC 2.0 의 PLAY 문의 습관을 모방하고 있습니다. PLAY 문의 MB, MF, X 요소는 시분할 환경에서는 도움이 되지 않기 때문에 제외해집니다. `옥타브 추종'기능과 연음부 기호는 새롭게 추가된 것입니다.
7 옥타브 84 음이 사용 가능해 1-84 의 번호가 붙어 있습니다. 각각의 옥타브는 C 로부터 B 까지 계속되고 있어 0-6 의 번호가 붙어 있습니다. 음계는 A440 에 맞추어 조율되고 있어, 옥타브 3 은 한가운데의 C 로부터 시작됩니다. 디폴트에서는 연주 기능은 반초의 음표를 발음해, 그 중 마지막 1/16 초는 쉽니다.
연주 캐릭터 라인은 왼쪽에서 오른쪽으로, 연주 명령 그룹의 연속으로서 해석됩니다. 대문자 소문자는 구별되지 않습니다. 연주 명령 그룹은 다음과 같습니다:
CDEFGAB | A 로부터 G 까지의 캐릭터는 대응하는 소리를 현재의 옥타브로 울립니다. 음표 캐릭터에는 옵션으로, # + - 의 쳐 어느쪽이든 하나의 " 임시 기호" (을)를 계속할 수가 있습니다. 이 중 최초의 2 개는 소리를 반음 높게 해, 마지막 것은 소리를 반음 낮게 합니다. 또 음표 캐릭터의 뒤에는 음길이를 나타내는 숫자와 부점기호 (후술)를 붙일 수도 있습니다. 음길이는 다음의 L 명령의 경우와 같게 해석됩니다. |
O n | 만약 n 하지만 숫자라면, 이후의 옥타브를 설정합니다. n 에 L 또는 N 의 어느쪽이든을 지정하는 것으로써, 옥타브 추종을 유효 또는 무효로 할 수가 있습니다 (디폴트에서는 무효입니다). 옥타브 추종이 유효하게 되어 있을 때는, 1 조의 음표를 해석하면(자), 음표간에서의 음정의 차이가 최소가 되도록(듯이) 필요에 따라서 옥타브가 변화합니다. 따라서, ``olbc''는 ``olb>c''와 같이, ``olcb''는 ``olc<b'' 와 같이 연주됩니다. 옥타브 추종은,> 이라고 < 와 O[0123456] 에 계속되는, 1 음표에 대해서는 무효입니다. (옥타브 추종 기능은 IBM BASIC 에서는 서포트되고 있지 않습니다. ) |
> | 현재의 옥타브를 1 개 올립니다. |
< | 현재의 옥타브를 1 개 내립니다. |
N n | 음표 n (을)를 연주합니다. n (은)는 1 에서 84 인가, 현재의 음길이의 휴부로서 0 입니다. 부점기호를 계속할 수도 있습니다. |
L n | 음표의 음길이를 설정합니다. 디폴트는 L4 그리고, 사분 음표입니다. 이 값은 1 에서 64 까지가 인정됩니다. L1 (은)는 전음부에, L2 (은)는 이분 음표에, L4 (은)는 사분 음표에, 등과 설정됩니다. |
P n | n (을)를 L n (와)과 같게 해석한 휴부입니다. 부점기호를 붙일 수도 있습니다. ~ (이)라고 쓸 수도 있습니다. |
T n |
1 분 쯤의 사분 음표의 수를 설정합니다. 디폴트는 120 입니다.
자주 있는 템포의 음악명:
템포분 쯤박수 매우 늦은 Larghissimo Largo 40-60 Larghetto 60-66 Grave Lento Adagio 66-76 늦은 Adagietto Andante 76-108 안 정도 Andantino Moderato 108-120 빠른 Allegretto Allegro 120-168 Vivace Veloce Presto 168-208 매우 빠른 Prestissimo |
M[LNS] | 조음을 설정합니다. MN (N (은)는 보통 (normal)을 나타냅니다)이 디폴트로, 음표의 최후 1/8 를 쉽니다. 레가토 (휴일없음)로 하려면 ML (을)를, 스타카토 (1/4 쉰다)로 하려면 MS (을)를 설정할 수 있습니다. |
음표 (즉 CDEFGAB 또는 N 명령 캐릭터 그룹)에는 부점기호 (. )(을)를 계속할 수가 있습니다. 각각의 부점기호는 1 개에 대해, 음표의 음길이를 1.5 배로 합니다. 따라서, 부점기호가 1 쿡쿡 찌른 음표는 붙어 있지 않기는 하지만 3/2 의 음길이에, 2 쿡쿡 찌른 음표는 9/4 의 음길이에, 3 쿡쿡 찌른 음표는 27/8 의 음길이가 됩니다.
음표와 부점기호에는 연음부 기호 (_)를 계속할 수가 있습니다. 이것에 의해 음표의 뒤에 평상시 있는 작은 휴일을 묻을 수 있어, 음표를 다음의 음표에 연음부로 연결합니다. (연음부 기능은 IBM BASIC 에서는 서포트되고 있지 않습니다. )
연주 캐릭터 라인중의 공백은 단지 날아가므로, 악절을 나누는데 사용할 수가 있습니다.
2 개(살) 이상의 부점기호의 동작은 표준적인 음악 기호를 반영하고 있지 않습니다. 표준적으로는, 각각의 부점기호는 전의 부점의 반만큼 음길이를 길게 하는 것이어, 부점에 의해 수정된 음표의 반이 아닙니다. 즉, 부점기호가 1 쿡쿡 찌른 음표는 붙어 있지 않기는 하지만 3/2 의 음길이에, 2 쿡쿡 찌른 음표는 7/4 의 음길이에, 3 쿡쿡 찌른 음표는 15/8 의 음길이가 됩니다. 그런데도,3/2 배(C0 해석은 IBM BASIC 메뉴얼에 기록되고 있기 (위해)때문에, 호환성을 위해서(때문에) 그대로 하고 있습니다.
매우 긴 (시스템의 물리 I/O 블록보다 길다) 연주 캐릭터 라인에서는, 블록 경계를 걸치기 위해서(때문에), 음표의 수식이나 수치가 가끔 잘못해 해석되는 일이 있습니다.
/dev/speaker | 스피커 디바이스 파일 |
FreeBSD | SPKR (4) | November 7, 1993 |
기본 색인 | 섹션 4 | English | 日本語 | 옵션 |
Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.
“ | Using Unix is the computing equivalent of listening only to music by David Cassidy | ” |
— Rob Pike |