一往確認日記 |
2020年10月31日 [長年日記]
_ ENVELOPE - その1
前回のBBC MicroのENVELOPEコマンドについてです。
ENVELOPEはシンセサイザーでは音の振幅のコントロール(ADSR)によく使われています。
BBC MicroのENVELOPEは振幅に加えて音程(ピッチ)もコントロールで、シンセサイザーでいうLFOによる変調の機能も持っている様で、この点に驚いたのでした。
おさらいです。
BBC Micro emulatorで下のコマンドを入力します。
ENVELOPE 2,1,2,-2,2,10,20,10,1,0,0,-1,100,100
SOUND 1,2,100,100
これはBBC Microの説明にあるものなのですが、a wailing police siren(パトカーのサイレン)とありますが、パックマンの音にしか聞こえません。
ENVELOPEには14個の数値を指定していて、ぱっと見では何をしているかわかりませんのでドキュメントをみてみます。
前半の8個が音程に関するパラメータです。
後半6個が振幅に関するパラメータです。
ENVELOPE | パラメータ名 | 範囲 | 機能 |
---|---|---|---|
2 | N | 1〜4 | 登録番号 |
1 | T | 0〜127 : 0-6bit | 1ステップの長さ。(Tx1/100秒) |
T | 0 or 128 : 7bit | 0:単発 128:連続 | |
2 | PI1 | -128〜127 | 1ステップ毎のピッチ変化量1(PI1x半音) |
-2 | PI2 | -128〜127 | 1ステップ毎のピッチ変化量2(PI2x半音) |
2 | PI3 | -128〜127 | 1ステップ毎のピッチ変化量3(PI3x半音) |
10 | PN1 | 0〜255 | PI1のステップ数 |
20 | PN2 | 0〜255 | PI2のステップ数 |
10 | PN3 | 0〜255 | PI3のステップ数 |
1 | AA | -127〜127 | 1ステップ毎の振幅変化(立ち上り) |
0 | AD | -127〜127 | 1ステップ毎の振幅変化(減衰) |
0 | AS | -127〜0 | 1ステップ毎の振幅変化(保持) |
-1 | AR | -127〜0 | 1ステップ毎の振幅変化(余韻) |
100 | ALA | 0〜126 | AAの到達レベル |
100 | ALD | 0〜126 | ADの到達レベル |