2008-01-01から1ヶ月間の記事一覧
フェーズアキュムレータから 14 ビット分を抽出して、下の図のように b13 を「S」ビット、b12 を「D」ビットと呼ぶことにします。
今度は、サイン波テーブルの参照方法についての話です。 前の議論で、フェーズアキュムレータを N ビットとしましたが、その上位 M ビットを抽出して、サイン波テーブルの参照に使うものとします。
F-NUMBER 計算 以前示した F-NUMBER の計算式には、サンプリング周波数が含まれていますから、F-NUMBER の値はサンプリング周波数に依存します。 FM音源プログラムでは、サンプリング周波数の切り替え機能を持たせたので、何も対策しないと、 F-NUMBER テ…
ポルタメント処理 アナログシンセでは、キーボード回路のサンプル&ホールド (正確にはトラック&ホールド) 回路にポルタメント機能を持たせることが多いようです。 ホールド・コンデンサと、ポルタメント時間調整用の可変抵抗で1次 RC 回路を構成し、その…
OPL3 の音源チップでは、F-NUMBER/BLOCK の組で受け取ったピッチ情報に対して、チップ内部でビブラートをかけます。 ピッチベンド/ポルタメントなどに関しては、チップにその機能はないので、ドライバ/アプリケーション・プログラム側で実現することになりま…
OPL3 の音源チップでは、リニア周波数的な表現である F-NUMBER、BLOCK の組でピッチ情報を指定します。 一方、KSL (Level Key Scale) では、1 オクターブ当り何 dB という形で出力レベルに補正が加えられます。 この変換は、下の表にしたがって、チップ内部…
F-NUMBER 「YMF715x (OPL3-SA3) -Register Description Document-」(以下「rege」と略記) では、 F-NUMBER について、 Frequency Information : These bits determine the frequency information for one octave. と説明しています。
次は、フェーズ・ジェネレータ (phase generator) まわりの話です。
今回は、「表の分割」と「補間」についての話です。
今回は、サイン波テーブルについての話です。
順序が前後しましたが、FM音源のオペレータの話です。
これまでは、純アナログ的に連続時間で PTAT スケーリングをする話でしたが、今度は PWM で時間平均としてスケーリングする方法です。
最後は、SH2 の場合です。 これは Web では公開していない、インターフェース 2006 年 6 月号付録基板 SH7144F を使用したものです。
今度は Atmel ATtiny シリーズの USI (Universal Serial Interface) モジュールを使った場合です。 USI を SPI (3線動作) モードで使うと、ハードウェア的には 8 ビット・シフトレジスタ + 4 ビット・カウンタ程度の回路であり、お世辞にも使いやすいとは言…
次は Atmel ATmega シリーズの SPI モジュールを使った場合です。
ここからは、各マイコンごとに、FM音源プログラムでの実例を示します。 まず最初は CQ 出版「インターフェース」2007年5月号付録基板 (CQ_V850) の V850 の例です。
マイコンにディジタルオーディオ用 DAC をつなぐ場合、専用インターフェース・ハードウェアが存在するわけではなく、ソフトウェア的に実現しなければならない部分が出てきます。 割り込み応答時間は、一般には一定値ではなく、ある程度の時間幅で変動します。…
次はディケイ/リリース・レートについて検討します。
「YMF715x(OPL3-SA3) -Register Description Document-」(以降「rege」と省略) のエンベロープ・レートと時間との対応表について、詳細に検討してみました。
EG プログラムの処理方法を、簡略化した C プログラムの断片を示しながら説明していきます。
lb ドメインでの EG 計算の続きです。
乗算によらない減衰エンベロープ ディケイおよびリリースの、エクスポネンシャルで減衰するエンベロープは、減衰が急激でない場合には、乗算なしで、シフトと減算だけで実現できます。
音色データ中の EG パラメータの値のいくつかについて、その意味を説明します。
唐突ですが、ここで話題をFM音源プログラムの EG (Envelope Generator) の話に変えます。
またまた、ちょっと脱線します。 「ikuro」さんの web サイトのコラムに興味深い記事がありました。 それは、2 を底とする指数関数の近似式で、1743 年にシュトレーレが発見したというものです。
OTA の話が出たついでに、少し VCA に寄り道します。 LTspice で LM13700 のリニアライジング・ダイオードを使った場合と、使わなかった場合の特性をシミュレーションしてみました。
OTA を乗算器的に使う方法の続きです。 特性を実現できれば、と言いましたが、それ自体は簡単なことです。 差動トランジスタ対の差動電圧入力と差動電流出力との関係が になるわけですから、入力と出力を逆にして、差動電流入力、差動電圧出力が実現できれば…
次は、OTA (Operational Transconductance Amplifier) を乗算器的に使う方法です。 もともと OTA 自体に、差動入力信号とバイアス電流との乗算機能は備わっていますが、裸の作動増幅器の入力特性としては、良好な直線性を持つのは ±10 mV 程度に過ぎません。
アンチログ回路入力の絶対温度 () スケーリングの話に戻ります。 純粋にアナログ的手段による方法として、 ギルバート・セル型アナログ乗算器 (4象限) ログ-アンチログ型アナログ乗算器 (2象限) OTA を乗算器的に使う を取り上げます。 また、ディジタル的…
今度は Exar 社のリニア VCO チップ XR-2209 です。 三角波と方形波を出力できます。 「RJB」さんの Blog を見て初めて知りました。 例によって、私はこのチップを見たことも、使ったこともないので、データシートをネタに話を進めます。