シンセ・アンプラグド RSSフィード

2016-09-23

FPGA 版 FM 音源 (43) -- YMF297 (OPN3/OPL3) 測定 (8) -- ビブラート

OPN / OPL 等の FM 音源チップにはハードウェアによるビブラート機能が搭載されています。

現在の FM 音源プログラムでは、「音源チップ」に相当する部分には「ハードウェアビブラート」に相当するものは実装せず、「音源ドライバ」に相当する部分でソフト的に F-Number を書き換えています。

これはビブラートに限らず、ポルタメントやピッチ・ベンド等のピッチ関連の処理と合わせて行なっています。

今回は、YMF297 を OPL3 モードに設定してビブラートの様子を測定してみました。

続きを読む

2016-08-19

新版FM音源プログラム (12)

2016 年 1 月 1 日付けの記事 (→こちら) の 4 K エントリの場合と同様に、テーブル・インデクスを「マスク」する方法により、テーブル・サイズを 3.75 K (3840) エントリまで削減することができました。

また、4 K エントリの場合と同様に、符号の操作も併用すると、3 K (3072) エントリまで減らすことができました。

3.75 K エントリのウェーブテーブル全体をプロットしたものを下に示します。

続きを読む

2016-08-13

新版FM音源プログラム (11)

2016 年 1 月 1 日付けの記事 (→こちら) の 8 K (8192) エントリの「ウェーブテーブル」を用いる方式で、波形の一部を共有するすることによりテーブル容量を 6 K (6144) エントリまで減らすことができました。

サンプルごとの処理では、8 K エントリ方式と同様にインデクス 0 から 1023 までの 1024 エントリをアクセスします。 ただし、アクセス範囲の先頭が「位相ゼロ」とは限らなくなるので、ノート ON によるアタック開始時の「初期位相」として、ゼロではない値をロードする必要が生じます。

これはアタック開始時のみ必要であり、サンプルごとの処理には影響を及ぼしません。

ウェーブテーブルをインデクス順に読みだして、「波形」としてプロットしたものを下に示します。

続きを読む

2016-07-21

1/12 オクターブバンド・フィルタ (12)

DUT (Device Under Test: 被測定デバイス) をコンデンサだけに限らず、一般の 2 端子回路とすると、2 端子間の電位差と回路を流れる電流との関係を測定できれば、それらの商としてインピーダンス (およびアドミタンス) を求めることができます。

DUT 以外の回路素子を理想的なもの (電流計の内部抵抗ゼロ、電圧計の入力インピーダンス無限大、ストレー容量ゼロ) とすると、次のような回路で測定することができます。

続きを読む

2016-06-30

1/12 オクターブバンド・フィルタ (11)

tan δ の値がマイナスになる問題は、データ処理の部分で「平均化」するサンプル・サイズを大きくしてもあまり改善されないので、「ランダム・ノイズ」によるものではなく、「系統的」な要因によるものと思われます。

ハードウェア部分を、あまり複雑にならない範囲でいろいろいじってみて、多少の改善は得られました。

その測定結果を下に示します。

続きを読む

2016-06-09

1/12 オクターブバンド・フィルタ (10)

ポリプロピレン・フィルム・コンデンサは 103 (10nF) をひとつしか持っていなかったので、他の容量についてもいくつか買ってきました。

インピーダンス・アナライザや LCR メータは持っていないので、簡易的な測定回路/ソフトウェアを作成して、各種コンデンサの誘電正接 (tan δ) を測ってみました。 結果の表を下に示します。

続きを読む

2016-05-19

1/12 オクターブバンド・フィルタ (9)

2016 年 3 月 30 日の記事 (→こちら) で検証したように、PSoC5LP の DFB (Digital Filter Block) のデータ RAM 容量 (128 ワード) の制限のため、一般的な IIR バイクアッド・フィルタを使用する場合には 1/12 オクターブバンド・フィルタ 8 バンド分 (IIR 2 次セクション 24 個分) が限界です。

この制限は、IIR 2 次セクションあたりフィルタ係数が 5 個必要であることに由来しています。2 次セクションあたりのフィルタ係数の数を減らすことができれば、実現可能なバンド数が増えることになります。

アナログのプロトタイプフィルタ特性をバタワースやチェビシェフなどの、(伝送零点を持たない) 全極型のタイプに選ぶと、それを双 1 次 s-z 変換して得られたディジタルフィルタ特性も (ゼロ周波数とナイキスト周波数以外には) 伝送零点を持たないタイプとなり、フィルタ係数の数を減らせます。

続きを読む