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

円周率の計算 (4)

8 月 9 日版のプログラムを改訂し、ATmega168 使用の Arduino でも修正なく実行可能にした 8 月 13 日版のプログラムを作りました。 バイナリ・スケッチ・サイズは 5602 バイトです。 プログラム・リストは次回、掲載します。 今回のプログラムでは、arctan …

円周率の計算 (3)

前回までの記事で書き忘れていたことがあったので、補足しておきます。 まず、「pi_atan.pde」の中の #define ADDSUBONLY 1 の行を削除あるいはコメント・アウトして、「ADDSUBONLY」というシンボルが未定義な状態にすると、MUL / ROL 命令を使ったプログラ…

円周率の計算 (2)

Arduino 用のスケッチを下に示します。 (8 月 11 日追記: ATmega328P を使ったタイプの Arduino 用のプログラムです。 ATmega168 を使ったタイプでの実行には修正が必要になります。 修正方法は 8 月 11 日の記事を参照してください。) 「pi_atan.h」と、「…

円周率の計算 (1)

今回からは、シンセ関係から離れて、円周率の計算について触れたいと思います。 それと言うのも、20 個ほどの LSTTL を使った「RETROF-8」という 8 ビット・コンピュータを製作されている方がいて、Web サイト上で進行状況を公開されています。 TTLのみでコ…

BBD コーラス (15) -- 逆数特性の VCO (10)

6 月 3 日付けの CMOS タイマ IC LMC555 を使った逆数特性の VCO の回路図を下に再掲し、回路動作の説明をします。 ワンショット回路は、555 タイマ IC 自体の本来の使用法により実現し、555 には存在しない定電流源と電流スイッチ部分を外付けの PNP トラン…

BBD コーラス (14) -- 逆数特性の VCO (9)

前回は、Vx を表す式を積分して時間平均を求めましたが、実は、ほとんど計算らしい計算をせずに時間平均の値を求めることができます。 それは、「定常状態」であれば、コンデンサに流れる電流の時間平均、つまり DC 成分は厳密に「ゼロ」なので、コンデンサ…

BBD コーラス (13) -- 逆数特性の VCO (8)

前回は、充電側では t = 0 で電荷ゼロから出発するグラフ、放電側では Vrew までフル充電された状態から出発するグラフを、それぞれ 1 本ずつ書いて、実際の波形は、グラフの一部分を切り取って組み合わせたものとして説明しました。 今回は、t = 0 から Tcy…

BBD コーラス (12) -- 逆数特性の VCO (7)

LM331 / NJM4151 の (OP アンプを使わない) 簡易型の V-to-F コンバータの構成は、 周波数から電圧への変換回路 (F-to-V コンバータ) に 負帰還をかけて 入力電圧に追従させるもの として捉えた方が理解しやすいので、まずは、簡易型 F-to-V コンバータの構…

BBD コーラス (11) -- 逆数特性の VCO (6)

今回からは、「リワインド型」 VCO を使った逆数特性の VCO について説明します。 当初は、LM331 を使って実験を進めましたが、途中で 2011/06/03 付けの記事のように CMOS 555 タイマ IC を使った回路に変更しました。 LM331 をやめた理由は、 最大発振周波…

BBD コーラス (10) -- 逆数特性の VCO (5)

前回は、固定周波数のリセット型発振回路としての働きまでを説明しましたが、今回は、逆数特性の VCO としての機能を持たせる部分について説明します。 具体的には、下の図の (A) に示す、D1 より左側の部分の回路です。 回路としては、エミッタフォロアのエ…

BBD コーラス (9) -- 逆数特性の VCO (4)

CE-2 / CE-3 の BBD クロック VCO 部の動作説明に移りますが、その前に、リセット型 VCO で逆数特性を得る方法について説明します。 下に、リセット型 リニア VCO の出力波形 (のこぎり波) を模式的に表した図を示します。

BBD コーラス (8) -- 逆数特性の VCO (3)

逆数特性の VCO 回路の「定番」と言われている、BOSS CE-2 (および CE-3 など) の回路を手持ちの部品でブレッドボード上に再現して、特性を測定してみました。 CE-2 と CE-3 とでは、VCO 回路構成自体は全く同一で、使用している BBD クロック・ドライバが、…

BBD コーラス (7) -- 逆数特性の VCO (2)

今回は、VCO 自体に逆数特性を持たせるのではなく、アナログ演算回路 + リニア VCO という形で逆数特性の VCO を得ることを考えます。 アナログ演算回路としては、RC4200 のような「ログ - アンチログ」のタイプの乗除算回路を 3.3 V 電源で実現するために、…

BBD コーラス (6) -- STM32VL Discovery プログラム (3)

プログラムとしては、下の図に示すように、外部から BBD クロックをトリガとして ADC / DAC それぞれに加え、ADC からは DMA を介してディレイ・メモリに書き込み、ディレイ・メモリからは DMA を介して読み出して DAC に出力しているだけです。 これは周辺…

BBD コーラス (5) -- STM32VL Discovery プログラム (2)

1024 段 BBD をエミュレートする C ソース・プログラムを下に示します。 長くなるので、プログラムの説明は後に回し、コンパイル方法だけを説明します。 まず、コンパイルには「Atollic TrueSTUDIO/STM32 Lite version 1.4.0」を使いました。 TrueSTUDIO/STM…

BBD コーラス (4) -- STM32VL Discovery 用プログラム (1)

次回の記事で示す、STM32VL Discovery 用 1024 段 BBD エミュレーション・ソース・プログラムをコンパイルした結果の hex ファイルを下に示します。 STMicro 社のフラッシュ書き込みツール「ST Visual Programmer」で書き込めば動作させることができます。 …

BBD コーラス (3)

三角波 LFO として、いわゆる「ファンクション・ジェネレータ」型の構成を使い、BBD クロック発生回路をまとめ、STM32VL Discovery ボードと組み合わせた写真と、回路図を下に示します。

BBD コーラス (2) -- 逆数特性の VCO (1)

有限の容量のディレイ・メモリと、有限のクロック周波数を用いて BBD コーラスのピッチ・シフトを実現する場合、ずっとピッチを上げ続けたり、下げ続けたりすることは不可能であり、ピッチのアップ / ダウンを交互に繰り返す必要があります。 ピッチ・シフト…

BBD コーラス (1)

「エフェクト」としての「コーラス」とは、原音のタイミングから少し遅延させた上で、そのピッチを周期的に変化させたエフェクト音を生成し、原音とミックスすることによって、原音が単一の楽器の音であっても、複数の楽器でユニゾンで演奏しているかのよう…

RX62N 用FM音源プログラム -- TGRX62N (9)

現状の RX62N 用FM音源プログラムでは、下の図に示すような簡単な「ディジタル・リバーブ」を内蔵しています。 しかし、処理の簡略化のため、「リバーブ」というより、実際は「フィードバック・ディレイ」による「エコー」になっています。 ディレイ部分は…

RX62N 用FM音源プログラム -- TGRX62N (8)

ステレオ (パンポット) 対応および SMF シーケンサを組み込んだ RX62N 用FM音源プログラム V 1.2 を (→こちら) に置きました。

RX62N 用FM音源プログラム -- TGRX62N (7)

ステレオ (パンポット) 対応および SMF シーケンサを組み込んだ RX62N 用FM音源プログラムは V 1.2 として公開予定ですが、プログラム本体の公開の前に、デモ演奏 (トビュッシーの「アラベスク第一番」) のファイルを Web サイト (→こちら) に置きました。…

RX62N 用FM音源プログラム -- TGRX62N (6)

これまで、FM音源プログラムを各種のマイコンに対して移植してきましたが、変更部分は各マイコン固有の差異を吸収する記述、比率で言えば 10 % 程度に限られていました。 音源としての機能本体部分のプログラムについては、この 3 〜 4 年に渡って全く手を…

RX62N 用FM音源プログラム -- TGRX62N (5)

フル機能版の TGRX62N プログラムを (→こちら) に置きました。 ATtiny2313 版の LCD インターフェースもうまく動作しました。 回路図およびプログラムを下に示します。

RX62N 用FM音源プログラム -- TGRX62N (4)

RX62N 基板にキャラクタ LCD / 入力スイッチをつなぐのに、どういう方法をとろうか迷っていましたが、8 ビット MCU を介在させて接続することにしました。 LCD 表示させた基板の写真を下に示します。

RX62N 用FM音源プログラム -- TGRX62N (3)

RX62N 版FM音源プログラムの「実力」を見るために、プログラムの同時発音数を増やす変更を行い、調べた結果、次のようになりました。 fs 同時発音数 24 kHz 32 30 kHz 25 32 kHz 24 40 kHz 18 48 kHz 15 現在は、まだ、プログラム中に「ボイス・アサイナ」…

RX62N 用FM音源プログラム -- TGRX62N (2)

暫定版の TGRX62N プログラムを (→こちら) に置きました。 この基板の標準的な利用方法としては、「シリアル接続 HEW モニタ」をあらかじめ書き込んでおいて、対象のプログラムを 64 Kバイト RAM 上にダウンロード / 実行 / デバッグする方法が想定されてい…

RX62N 用FM音源プログラム -- TGRX62N (1)

「インターフェース」誌 2011 年 5 月号付属の RX62N マイコン基板用のFM音源プログラムを、いつもの「暫定版」のレベルですが作成しました。 プログラム名は「TGRX62N」としました。 「意外」にも、BU9480F 用の「手抜き」出力ルーチンを使用した場合で、…

STM32 Value Line Discovery (3) -- 各 CPU の能力比較

各プロセッサ用のFM音源プログラムの処理能力を表にまとめてみました。 本来は、サンプリング周波数 (fs) 、同時発音数 (NPOLY) をそろえて、CPU 負荷率で比較するのが良いのですが、そうなってはいません。 現状のプログラムでは、同時発音数 16 がリミッ…

3.3 V 化 CMOS 555 VCO (1)

これまで、555 を使ったタイプの VCO については、あまり注目してきませんでした。 その理由は、ソース方向のアンチログ出力電流が求められるため、通常は、PNP トランジスタによる構成でアンチログ回路を実現する必要があるからです。 トランジスタ・アレイ…