2011-01-01から1年間の記事一覧

山下シンセの 555 VCO の CMOS 化

いわゆる「山下シンセ」の、定番のタイマ IC 555 を使った VCO 回路で、オリジナルのバイポーラ版の 555 の代わりに CMOS 版の 555 を使うと発振周波数が低い場合、つまり、電流値の小さい領域で不具合が生じるという話題を Chuck さんがブログ 2011-01-20 -…

STM32 Value Line Discovery (2) -- FM 音源プログラム「TGSTMVL」

STMicroelectronics 製 STM32 Value Line Discovery 用の暫定版の FM 音源プログラム「TGSTMVL」を作りました。 (→こちら) に置いてあります。 内蔵の 12 ビット DAC による出力と、いつもの BU9480F による 16 ビット・ディジタル・オーディオ用 DAC による…

FPGA 版 FM 音源 (24) -- YMF262 測定 (16)

エンベロープ・ジェネレータ・シミュレータのスケッチ "EG.pde" を下に示します。 16 MHz クロックの ATmega328P を使用した Arduino 互換ボードと、Arduino 0022 IDE 環境でコンパイルして確認してあります。 スケッチのバイナリ・サイズは 4 KB 程度なので…

FPGA 版 FM 音源 (23) -- YMF262 測定 (15)

前回の EG プログラムを Arduino 上の「スケッチ」として実現してみました。 スケッチ自体は長くなるので、次回に回し、今回は簡単な説明のみ行います。 今回は、「音」や「EG 波形」の出力をメインに考え、Arduino に接続したノン・オーバーサンプリング・…

FPGA 版 FM 音源 (22) -- YMF262 測定 (14)

ソフトウェアや FPGA で EG を実現する場合、必ずしも実際のチップである YMF262 の EG 出力波形を全く忠実に再現する必要はありません。 基本的な構成は踏襲するとしても、リソース削減の要求は強くはないので、リソースが多少増加しても性能の向上を目指し…

FPGA 版 FM 音源 (21) -- YMF262 測定 (13)

アタックからディケイへ変化するだけの、単純なエンベロープを発生する C プログラムのリストを下に示します。 アタック・レート (AR) を 15 から 11 まで、Rof を 0 から 3 まで変えながら、それぞれの設定のアタック・ディケイ・カーブを EG アキュムレー…

FPGA 版 FM 音源 (20) -- YMF262 測定 (12)

アタックやディケイ/リリース・レートが「13」以上の場合を「ハイ・レート」、「12」以下の場合を「ロー・レート」と呼ぶことにします。 ハイ/ローにより、エンベロープの計算方法が変わります。 ハイ・レートでのアタック計算回路の概念図を下に示します。 …

FPGA 版 FM 音源 (19) -- YMF262 測定 (11)

AR が 13 以上の速いレートでのアタック・カーブを検討してみたところ、 13 未満のレートの計算では EG アキュムレータを常に 3 ビットシフト (1/8) して 1 の補数で減算しているのに対し、 AR = 13 では、3 ビットシフト (1/8) と 2 ビットシフト (1/4) の…

FPGA 版 FM 音源 (18) -- YMF262 測定 (10)

今回は、アタック・カーブを「数値」として細かく検討し、計算回路を考えます。 lb ドメインで単純に直線を発生させればいいディケイ/リリースと違って、アタックの発生には、何らかの「演算」が必要になります。 最も簡単には、「結果」の値を ROM テーブル…

FPGA 版 FM 音源 (17) -- YMF262 測定 (9)

今回は、主にアタックの「波形」について述べます。 まず、AR = 13、Rof = 0 の設定での (リニア) 出力値のグラフを下に示します。

FPGA 版 FM 音源 (16) -- YMF262 測定 (8)

ディケイ/リリースの DR/RR = 12 以下の減衰時間の長いほうに関する回路については、ほぼ、推測できました。 DR/RR = 13 以上の減衰時間の短いほうに関する回路については、まだ、不明確ですが、そろそろ、アタックの話に移ろうと思います。 その前に、1 月 …

FPGA 版 FM 音源 (15) -- YMF262 測定 (7)

ディケイ/リリースのエンベロープのカーブは DR/RR の値が大きくなると水平方向のステップ幅が狭くなる形となり、RR = 12、Rof = 3 では、水平方向に 1 ステップ幅と 2 ステップ幅とが混在する形となります。 この組み合わせまでは、2 種類の水平方向のステ…

FPGA 版 FM 音源 (14) -- YMF262 測定 (6)

Rof = 1、2、3 の場合のエンベロープ出力波形は「レート・マルチプライア」(rate multiplier) を使って実現できることが分かりました。 C プログラムで同様の出力を再現できました。 DR / RR = 1、Rof = 1 の場合のエンベロープ波形をキャプチャし、波形編集…

FPGA 版 FM 音源 (13) -- YMF262 測定 (5)

WS = 0、つまり、普通の正弦波を発生する状態の波形発生部の概念的な回路構成を下の図に示します。 「サイン波 ROM」として 1/4 周期、つまり「アドレス入力」が 8 ビット (256 エントリ) のものを使い、ビット 8 の値でアドレス入力を反転することで 1/2 周…

FPGA 版 FM 音源 (12) -- YMF262 測定 (4)

YMF262 のエンベローブ・ジェネレータのディケイ/リリースの減衰部分の回路構成を概念的に示すと、下の図のようになると考えられます。 アタックからの遷移や、サステイン・レベルとの比較によるディケイ→リリースの遷移の機能は考慮してありません。 ここで…

FPGA 版 FM 音源 (11) -- YMF262 測定 (3)

今回はエンベロープ・ジェネレータ関係の測定です。 「F-NUMBER」は「MULT」倍され、「BLOCK」ビット・シフトを受けてフェーズ・アキュムレータの「増分」として使われます。 ここで、F-NUMBER を「ゼロ」に選ぶと、「MULT」と「BLOCK」の設定に関わらず、「…

FPGA 版 FM 音源 (10) -- YMF262 測定 (2)

前回の WS = 7 のエクスポネンシャル波形についての補足です。 「岩波数学公式」*1 第 II 巻、§47、pp. 246 に、この波形のフーリエ展開の公式を見つけました。 *1:森口繁一・宇田川「金圭」久(「金圭」は「金」へんに「圭」)・一松 信 著:「岩波 数学公式 …

FPGA 版 FM 音源 (9) -- YMF262 測定 (1)

いい忘れていましたが、前回の YMF262 回路では、ひとつのシリアル・データ信号線に 1 サンプリング周期内に 2 チャンネル分が出力されるデータのうち、1 チャンネル分だけをマイコン側でキャプチャしています。 SPI のスレーブ・セレクト信号を真面目に作成…

FPGA 版 FM 音源 (8) -- YMF262 回路 (3)

YMF262 まわりの回路の基板の写真を下に示します。 秋月の C タイプ・ユニバーサル基板上に回路を組み立て、SH-2A 基板のベースボード上に 20 ピンのヘッダ/コネクタを介して実装しています。 SH-2A のバスステートコントローラの端子に 12 本の信号線を接続…