«前の日記(2020年10月29日) 最新 次の日記(2020年11月20日)» 編集

一往確認日記


2020年10月31日 [長年日記]

_ ENVELOPE - その1

前回のBBC MicroのENVELOPEコマンドについてです。

ENVELOPEはシンセサイザーでは音の振幅のコントロール(ADSR)によく使われています。
BBC MicroのENVELOPEは振幅に加えて音程(ピッチ)もコントロールで、シンセサイザーでいうLFOによる変調の機能も持っている様で、この点に驚いたのでした。

ADSR - Wikipedia

LFO (電子楽器) - Wikipedia

おさらいです。
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の到達レベル