|
2012年01月18日(水)
Make:Japan に
マルチエフェクター製作の紹介記事が載りました Make:Japan 他の記事を読んでみましたが 皆さん個人レベルで、いろいろとすごい物を作っているんですね 見習いたいものです
2012-01-18 01:00
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/38/ ※ブログ管理者が承認するまで表示されません 2012年01月09日(月)
遅くなりましたが 明けましておめでとうございます 今年もゆるい感じで更新していきたいと思います で 現状での音サンプルを録音してみました 音だけを投稿する方法がわからないので 無駄に絵を入れて無理やり動画としています 順番に 1) Non Effect (スルー音) 2) Distotion のみ ON 3) Delay のみ ON 4) Flanger のみ ON 5) 全て ON で音がでます おなじみの曲の冒頭です 演奏技術自体は無視してください (ここ、もっとも重要です) 録音はライン取りで行っています 音量調整以外の加工は一切行っていません 現状Flangerは ちょっと不具合があるようで 微妙にしか効かせられません 気持ちよく効かせようとすると バリバリと唸ります DistotionもGainをかけるので 電源ノイズっぽいのが大きくなる ノイズ対策もまだ必要ですね。。。 歪ませ方も気持ちよくするには もっと工夫必要だなあ。。。
2012-01-09 02:34
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/37/ ※ブログ管理者が承認するまで表示されません 2011年08月17日(水)
ちょっとしたワケがありまして 更新がしばらく中断しておりました ようやく再開 作業途中だった Flanger/Chorus ですが LFO の Sin波 生成で処理負荷が大きくなり どうにもならなくなったのが前回まで で いろいろ悩んだ結果 LFO を Sin波 => 三角波とすることにしました 上手にように音を揺さぶるための LFO を 赤線に変更しました これなら sin()関数をコールしなくても良く 簡単な算術式で生成できるので処理は はるかに軽くなります 現在デバック中ですが LFO が三角波でも それなりに Flanger/Chorus っぽく 聞こえます もう少しです
2011-08-17 01:13
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/35/ ※ブログ管理者が承認するまで表示されません 2011年06月29日(水)
プログラム中の Flanger/Chorus ですが デバック中に問題発生 ・RAMがついに枯渇 枯渇しそうとは書いていましがデバック中に無くなりました とりあえず Delay Effect の最大遅延量を 300msec => 250msec にすることで対処します ・処理負荷が許容超え サンプリング期間 25usec (fs=40KHz)内に 処理しきれなくなりました 音は変になるし コントロールパネルに処理が回ってこないので ロータリースイッチが全く効きません 原因はこいつ LFO の発生の為に Sin波を生成する必要があるのですが sin()関数が予想以上に時間を食うようです sin()関数を使用せずにLFOを構成しなければなりません 完成まで、もう少しかかりそうです。。。。
2011-06-29 22:45
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/33/ ※ブログ管理者が承認するまで表示されません 2011年06月26日(日)
プログラム中の Flanger/ Chorus 大体できてきて現在デバック中 ただ 遅延用に 45msec分のメモリを確保したのですが すでにRAMが枯渇しそうです Flanger/ Chorus はなんとかなりそうですが メモリを潤沢に使用するようなエフェクトの 今後の追加は無理そうですね
2011-06-26 21:36
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/32/ ※ブログ管理者が承認するまで表示されません 2011年06月21日(火)
Flanger/Chorus のブロック図です たぶんこれで合っていると思う あとは効率良くコーディングできれば動くはず。。。 基本はDelayです 図中の "Dx" とあるのは遅延素子 1つ通過するごとに1サンプル分遅延します 現状のソフトではサンプリング周波数は 40KHz になってるので 1 / 40KHz = 25 usec 遅延します 遅延した信号を"Selector"で選択して元信号と足し合わせます "Selector"がどの遅延素子からの信号を選択するかを決めるのは "LFO" = Low Frequency Oscillator です 低い周波数で選択箇所を移動させることにより あの揺らぎ感を与えます イメージ的にはこんな感じかと 縦軸は"Selector"が、どの位置を選択するかを示しており 横軸は単純に時間です 選択箇所が時間で移動することにより周波数変調がかかるようになります 図中にあるようにLFOの可変パラメータは ・Delay ・Depth ・Rate の3つ これに最初の図にある ・F.B. Level ・Effect Level の合計 5つとします L信号 = 元信号 + Effect信号 R信号 = 元信号 - Effect信号 とすることでステレオ化ができるのですが 残念ながら MBEDマイコンモジュールにはDACが1つしか無いので 今回は我慢です 構想が決まりましたので これからはコーディングです
2011-06-21 22:22
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/31/ ※ブログ管理者が承認するまで表示されません 2011年06月16日(木)
MBED マルチエフェクター 次は Flanger/Chorus を追加したいと思います ソフトの構想思案中。。。
2011-06-16 00:55
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/30/ ※ブログ管理者が承認するまで表示されません 2011年06月14日(火)
UIが完成したところで簡単に使い方です ソースコードはMBEDのサイトにUPしてあります 何度か触れていますが 4つロータリースイッチで全てを操作します ●ロータリースイッチ1 動作MODEを設定します 1) PLAY : 通常の演奏 2) EDIT : エフェクトパラメータの編集 3) Prog Write : 編集したパラメータの書込 ロータリースイッチの回転方向にて 1) => 2) => 3) => 1) 1) => 3) => 2) => 1) と変化します ●各Modeの説明 < PLAY Mode > 通常演奏時のModeです ロータリースイッチ2 : Bank No. 指定 ロータリースイッチ3 : Prog No. 指定 とアサインされていて Bank 0〜9 , Prog 0〜9 の100通りの設定を呼び出します < EDIT Mode > エフェクトパラメータを編集します ロータリースイッチ2 : エフェクトの種類を指定 現在は DIST と DELAY のみ ロータリースイッチ3 : パラメータの項目を指定 ロータリースイッチ4 : パラメータの値を設定 < Prog Write Mode > 編集した(今、音の出ている状態の)パラメータを記録します ロータリースイッチ2 : 書込 Bank No. 指定 ロータリースイッチ3 : 書込 Prog No. 指定 ロータリースイッチ4 : 書込実施 同一方向に1回転以上回転させることにより 記録されます ●パラメータの記録場所 パラメータの設定値はMBEDの外部からアクセスできるFLASH ROM に記録してあります (USBでPCとつないだときにマスストとして見える部分) その場所に "PRM.TXT" のファイル名で置かれていますので パネルのロータリースイッチでの編集が面倒な場合は PCから編集することが可能です 次回からは 処理が追いつく限りエフェクトを追加しています
2011-06-14 00:23
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/29/ ※ブログ管理者が承認するまで表示されません 2011年06月13日(月)
ようやく形になりました 始めて2ヶ月以上も経過してしまいました 4つのロータリースイッチで、パラメータの変更 及び プログラムパッチとして Bank 10 x Prog 10 = 100 の パラメータが記憶、呼び出しができるようになりました < 通常PLAY時 のLCD表示 > Bank と Prog の指定で 100通りのパラメータの 呼び出しができます < パラメータ編集時 のLCD表示 > 各エフェクトの全てのパラメータを編集することが可能です < パラメータ記録 のLCD表示 > 編集したパラメータを指定の Bank, Prog に記憶することが可能です
2011-06-13 00:26
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/28/ ※ブログ管理者が承認するまで表示されません 2011年06月11日(土)
エフェクトパラメータの全てが 4つのロータリースイッチから変更できるようになりました あとは それらをプログラムパッチとして 記録、呼び出しができるようにします パッチはMBEDのUSB経由でPCからアクセスできる FLASH領域に確保します これで電源をOFFしても消えることがないですし PCからもテキストエディタでパッチのパラメータが 編集できるようになる予定です あと、もう少し。。。
2011-06-11 01:13
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/27/ ※ブログ管理者が承認するまで表示されません 2011年06月07日(火)
4つあるロータリースイッチの処理 3つまで完了 あと1つインプリすれば エフェクトパラメータが自在に変更できるようになるはず あと ちょっと。。。。
2011-06-07 02:05
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/26/ ※ブログ管理者が承認するまで表示されません 2011年06月06日(月)
2011-06-06 01:51
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/25/ ※ブログ管理者が承認するまで表示されません 2011年06月02日(木)
肝心要のエフェクト処理から離れっぱなしですが 液晶の表示はこんな感じにしたいと思います 20X4文字ですので、そんなに情報満載にはできませんね 色分けしているところが各ロータリーSWで 変わるようになる予定です
2011-06-02 00:23
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/24/ ※ブログ管理者が承認するまで表示されません 2011年05月31日(火)
いきなりオヤジギャグですいません 思いつきでなんとなくはじめたBlog 訪問していただける方があるのか疑問だったのですが 最低でも日に2桁の方々に訪問いただけているようです 感謝いたします 更新が滞っておりますが 気長に見守っていただければと思います では、本題です UI (ユーザインタフェース) の仕様です エフェクトパラメータの変更等をパネル上の 4つのロータリースイッチだけで対応させます 将来的にはパラメータをパッチとして呼び出せるように したいと思っています 今はまだ、歪系と遅延系の2つしかありませんが SWへの割り当てを次表のように決定しました これで雛形のプログラムを作成してしまえば あとは簡単にエフェクトを追加していくことができます ソースコードはこれから。。。
2011-05-31 00:04
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/23/ ※ブログ管理者が承認するまで表示されません 2011年05月20日(金)
仕事が忙しくてなかなか手がつけられない。。。 やっと Delay を追加することができました 歪系 + 遅延系 の2つになりましたので これでやっとマルチエフェクタと堂々と言えます 仕組みについては既にいろいろなところで 公開されていますので、ここでは省略 メモリが潤沢にあるわけではなく 後々、変調系にもメモリが必要ですので 最大遅延時間は 300[msec] としました で 取得した出力波形です 設定は遅延時間 300[msec] ,FeedBack量 50[%] 全弦ミュートして1発ストロークしたもの 300[msec] ごとに遅延した音が減衰しながら 出力されているのがわかります 実際の音もそれなりでいい感じです 前回のように処理負荷を確認してみます Hi になっている区間が処理にかかっている時間で 歪系のみのときは 9.2[usec] Delay追加して 9.6[usec] わずかしか処理負荷が増加していません まだまだ処理を追加できそうです ちなみに現状ソースコードでのメモリ使用量 Delay用のバッファを大量に消費したせいで RAMの残りが、だいぶ少なくなっています 本日までの状況では、Delayのパラメータが パネルから変更できる状態になっていません UIを考えて各エフェクトのパラメータを 変更できるようになったら ソースコードを公開したいと思います
2011-05-20 00:32
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/22/ ※ブログ管理者が承認するまで表示されません 2011年05月12日(木)
マルチエフェクト化の前に歪系処理だけでの 処理の負荷がどれくらいか確認してみます タイマー割り込みで処理されている ・AD変換 ・エフェクト処理(現在歪系処理のみ) ・DA変換 の3つの処理の始まりと終わりで I/O Port をトグルして 処理にどの程度かかっているかを確認してみます Hi区間(約 9usec)が処理中になっています 現状サンプリングレートを 40KHz (25usec) にしているので まだ処理的には余裕ありそうです この波形が Hi になりっぱなしになったらサンプリングレートを 落とさざるをえません エフェクト処理を追加するたびに確認していきたいと思います それにしても このプローブf特がイマイチですね。。。 やっぱり安物はだめか。。。
2011-05-12 00:24
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/21/ ※ブログ管理者が承認するまで表示されません 2011年05月08日(日)
基板からイロイロぶら下がってきたので 裸のままでは、そろそろ扱いずらくなってきました 最終的には黒のアルミケースか何かに組み込みたいのですが フットSW をどうするか決まっていない パラメータ変更等のユーザインターフェースも決まっていない でアルミケースが選べません と、いうことで仮のケースに入れてみます 仮なので 当然コストはかけたくない 加工に時間もかけたくない 行き着いた先が、100円ショップ CD用のケースを入手、カッターで1.5時間ほどで加工終了です 以下が完成品写真 まずは正面から 液晶は見にくかったので白色バックライト付き SC2004CSWB に変更しました 次に側面 側面にあるノブは入力 OPAMP の Gain 調整用です 次は背面 入力(左)と出力(右)のφ6.3ジャック 開けるとこんな感じ これで不意な事故で線材が切れたり、どこかショートしたりする 心配は無くなり、扱いが非常に楽になりました 取っ手もついているので持ち運びも楽チンです これから歪み系以外のエフェクトを追加して マルチエフェクター化していきます
2011-05-08 23:01
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/20/ ※ブログ管理者が承認するまで表示されません 2011年05月07日(土)
ロータリーエンコーダの読み取りと
液晶表示のプログラムです エフェクト処理はタイマー割り込みで動作しているので その合間合間に処理されることになります 下図は入手したロータリーエンコーダの仕様です この仕様がちょっと曲者 普通(?)の A,B ch が位相差をもって ON/OFF を繰り返すものと 勝手に思っていたのですが違うようです 定常状態では A,B ch は共に OFF状態 上図の縦線が入っている位置が定常位置 クリック位置から次のクリック位置の間に位相差をもって ON クリック位置でまた OFF になる仕様のようです 検出は C.W. Ach OFF=>ON のときに Bch OFF C.C.W. Ach ON=>OFF のときに Bch OFF という具合にエッジ検出する必要があります 液晶部分については公開されているものを そのまま利用させていただいています プラグラム全体のソースコードはこちらに公開してあります 公開しているプログラムでは以前の記事での Clipping 方法も変更できるように 対応しています ・Pattern 1 の a = b と a/2 = b ・Pattern 2 の a = b ということで変更できるパラメータは 1) Clipping Mode 2) Input Gain 3) Clipping Level 4) Output Gain これらを4つのロータリーエンコーダにアサインしました で 入力をコンパイルスイッチで内部信号に切り替えて取得した 波形が以下 < Dist Mode 1 (Pattern 2) > < Dist Mode 2 (Pattern 1 a=b) > < Dist Mode 3 (Pattern 1 a/2=b) > これで歪系の機能としては一通りできたかと思います 歪具合を心地よくするために Clipping 方法を少し改善する 余地があるのですが、それは追々やっていきたいと思います 実際の音も公開したいのですが どの方法が良いか検討中
2011-05-07 22:06
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/19/ ※ブログ管理者が承認するまで表示されません 2011年05月05日(木)
配線したので写真を
まずはロータリーエンコーダから 手持ちのL字ピンヘッダに半田付け、線材ちょっと長すぎか? 次に液晶モジュール モジュールの基板に直接線材を半田付け 線材反対側にピンヘッダを半田付け 表示濃さを調整する半固定抵抗は表面実装用の物を使用 モジュール基板左側の端子部分に直接半田付けします ケースに組んだら触れなくなりますが、一度調整したら 動かさないと思うので、この場所で良しとします 最後にメイン基板 MBEDモジュールの両側に上の2つを接続するためのヘッダーソケット ロータリーエンコーダ用のプルアップ抵抗を追加しました ジャック類への配線はノイズ面から同軸ケーブルに変更してあります 配線図はこちら 次回はロータリーエンコーダの検出と そこからエフェクトパラメータへ反映させるソフト編です
2011-05-05 21:08
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/17/ ※ブログ管理者が承認するまで表示されません 2011年05月03日(火)
ケースに組んだときにパネルになる部分の製作です とりあえずは回路図から エフェクトのパラメータを変更するための ロータリースイッチの回路図 回路図というほどの物ではないです スイッチに直接線材を半田付けしてヘッダーピンとソケットで 基板とをつなぎます パラメータ等を表示するための液晶周りの回路図 部品リスト ------------------------------------------------- R41〜48 抵抗 10K VR51 半固定抵抗 100K 表面実装用 SW41〜44 ロータリーエンコーダ RE160F-40E3 LCD 液晶 20x4文字 SC2004CSLB-XA-GB-K -------------------------------------------------- ロータリーエンコーダ、液晶は例によって秋月電子で購入です
2011-05-03 16:54
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/16/ ※ブログ管理者が承認するまで表示されません 2011年04月30日(土)
インプリができたので波形を見てみる ギターの入力だとわかりにくいので、コンパイルスイッチで 内部信号に切り替える (1KHz Sin波) まずはディストーションブロックの設定を 入力ゲイン 0dB, クリッピング電圧 3Vpp, 出力ゲイン 0dB にしたもの 要はそのまま加工されずに出力される状態の波形 次は、クリッピング電圧を下げてみます 波形がクリップして歪んでいるのが確認できました ギターに差し替えてもそれなりな感じになっています 処理はいたって簡単 歪を処理する関数内の記述はたったこれだけです -------------------------------------------------- #define inputGain (1.0) #define clipLevel (15000) #define outputGain (1.0) #define LIMIT_P (32767) #define LIMIT_N (-32768) int distotion(int iEffectIn) { int iSignal; // Input Gain iSignal = iEffectIn * inputGain; // Clip if (iSignal >= clipLevel)iSignal = clipLevel; if (iSignal <= -clipLevel)iSignal = -clipLevel; // Output Gain iSignal *= outputGain; if (iSignal >= LIMIT_P)iSignal = LIMIT_P; if (iSignal <= LIMIT_N)iSignal = LIMIT_N; return iSignal; } -------------------------------------------------- プログラム全体はこちらに置いてあります ソースファイル一式 このままでは歪具合やゲイン等の変更はプログラム自体を書き換えないといけません 次は液晶表示部とパラメータを変更するロータリースイッチを作成していきたいと思います
2011-04-30 23:04
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/15/ ※ブログ管理者が承認するまで表示されません やっと本題のエフェクト処理部分に入る まずは歪系のディストーションから ソフトの構成は非常に簡単で下図のとおり 1) 入力波形を増幅 2) 歪を出すためのクリッピング処理 3) クリッピングによって減少した波形を増幅 クリッピング部分については処理としてはいろいろあり 処理によって、オーバードライブ、ディストーション、ファズ etc... と呼び名が変わるようではありますが、私がぱっと浮かぶのは 下図の2つ これらはクリッピング部分の入出力特性を示したもの クリッピング電圧である a,b をそれぞれ違う電圧に することによっても倍音成分が変化して音色が変わります まずは Pattern 1 で a = b の状態でインプリしていきます
2011-04-30 22:44
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/14/ ※ブログ管理者が承認するまで表示されません 2011年04月27日(水)
何のエフェクトもせずに、ただ入れて出すだけの 基本的なプログラムを組んでみる C言語のスキルはそんなに無いので おかしいところもあるかも知れないけど そこは愛嬌ということで。。。 サンプリングは 40KHz で設定 25[usec]ごとに割り込みをかけてAD入力とDA出力を 一定間隔で行うようにする コメントアウトしてある // Effect Func(); は、割り込み処理の中に入れてある ここにエフェクト処理をする関数をCallするように 追加していきます ただし 割り込み周期である 25[usec]以内に処理を終えるように プログラムする必要があります Mbedモジュールの実力とプログラマの実力(一番怪しい)が 発揮されるところです 同様に // Parameter Setting Func() の部分にはSWやロータリーエンコーダで エフェクトのパラメータを変更する関数をCallするように 追加していきます ここも 割り込み処理のあまった時間に回ってくるだけなので うまく処理できるように工夫する必要があります デバック用モードとして #define TEST_SIGNAL_ENABLE (0) のコンパイルSWを作っておきました "0" の部分を "1" とすると AD変換をしたフリをして Sin波を入力されたように振る舞います 周波数と振幅も変更できるようになっています コレでギターつないでも一応音は出ています これからエフェクト処置部分をコーディングしてく予定です 以下 ソースコード 見にくいので次回からソースコードは Mbed の Web に 公開していこうかと思います /*****************************************************/ /* MBED MULTI EFFECTOR */ /* */ /* */ /*****************************************************/ #include "mbed.h" Ticker sampling; AnalogIn Ain(p17); AnalogOut Aout(p18); /*******************************/ /* For Test Signal */ /*******************************/ #define TEST_SIGNAL_ENABLE (0) // 1 : InternalSinWave for Debug #define TEST_SIGNAL_FREQ (1000.0) // Frequency [Hz] #define TEST_SIGNAL_AMP (30000.0) // Amplitude #define PAI (3.14159) /*******************************/ /* For ADC & DAC Setting */ /*******************************/ #define SAMPLING_TIME (25.0) // ADC Sampling Rate [us] volatile unsigned int *g_usiAd0cr, *g_usiAd0dr2; // ADC Reg unsigned int *g_usiDacr; // DAC Reg unsigned int g_usiFinalOut; short g_ssBuff; float g_fTestWaveT; /*******************************/ /* Effect Process */ /*******************************/ void effectProcess() { // Line Out & In *g_usiDacr = g_usiFinalOut; // ADC Start *g_usiAd0cr = 0x01200204; #if (TEST_SIGNAL_ENABLE == 1) // Test Signal Sin Wave g_ssBuff = TEST_SIGNAL_AMP * sin(g_fTtestWaveT) - 32768; g_fTestWaveT = g_fTestWaveT + 2.0 * PAI * SAMPLING_TIME * TEST_SIGNAL_FREQ / 1e6; if(g_fTestWaveT >= (2.0 * PAI))g_fTestWaveT = 0; #endif // // Effect Func(); // #if (TEST_SIGNAL_ENABLE == 0) while(1){ if((*g_usiAd0dr2 & 0x80000000) != 0)break; // ADC Finish ? } g_ssBuff = (short)((int)(*g_usiAd0dr2 & 0x0000FFF0) - 32768); #endif g_usiFinalOut = 0x00010000 | (unsigned int)((int)g_ssBuff + 32768); } /*******************************/ /* MAIN */ /*******************************/ int main() { g_usiAd0cr = (unsigned int*)0x40034000; g_usiAd0dr2 = (unsigned int*)0x40034018; g_usiDacr = (unsigned int*)0x4008C000; sampling.attach_us(&effectProcess, SAMPLING_TIME); while(1){ // // Parameter Setting Func() // } }
2011-04-27 23:28
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/12/ ※ブログ管理者が承認するまで表示されません 2011年04月24日(日)
ノイズ対策をいくつかやってきた
有効だった内容は下記の3点 1) 基板上 GND配線の変更 2) コンデンサ追加 4つ 3) 入力ゲイン決定用 VR ボディー底面にGND配線 上記3つを入れ込んだときのノイズ状況 前回 4/14 と同じ条件で測定、効果はかなり出ていると思われる 聴感上も大幅に良くなってきた 対策前はこれ 対策後の回路図 コンデンサ4つ追加 対策後の基板パターンで紫のパターンが今回変更ポイントです オーディオに深い方なら、こんな対策ダメと言われそうですが 聴感上はかなり良くなりました 引き続きノイズ対策はやっていきますがソフト編に入りたいと思います
2011-04-24 03:06
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/11/ ※ブログ管理者が承認するまで表示されません 2011年04月23日(土)
なかなか本質に入れない状況ではあるが ブレッドボードにMBEDモジュールを移して ADC のノイズの実力を確認してみることにする MBED の 40pin の 3.3V 出力を 10K - 10K の抵抗で 電圧分割して ADC に入力する GND側の抵抗には 100uF と 0.1uF のコンデンサをパラ付け 測定のためのプログラムは以前に試した ココ と同じ 結果はこの通り スパイク状のノイズが乗っているのが見える これではまだダメそうなので MBEDモジュール自体に手を入れてみる ADC回路ブロックへの基準電位や電源の美しさが肝だと思う モジュールの回路図 を見てみると 10uH と 1uF の LCフィルタを経て 供給されているようである が、 見える限りの基板パターンではなんとも心細い感じがする で、 試してみたのがこれ LCフィルタの C 1uF にケミコン 100uF をパラ付け 元々ついているチップコンデンサの電極がはがれないように LSIの上に厚手の両面テープをつけてケミコンを固定して半田付け そして写真の状態で測定してみたのがコレ なかなかいい感じになりました 使っているうちの振動や衝撃でチップの電極が剥離する可能性があるので ケミコンの固定方法は別途考えなおす必要はあるかと思います とりあえずこれで入力さえ美しく入れればそれなりの結果になる確証は得られたかと 次回は配線済みのユニバーサル基板の対策となります
2011-04-23 01:37
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/10/ ※ブログ管理者が承認するまで表示されません 2011年04月20日(水)
ノイズが減りません。。。 ブレッドボードにして基礎的な検討に 戻る必要があるかと。。。 決して放り投げているわけではありません
2011-04-20 01:05
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/9/ ※ブログ管理者が承認するまで表示されません 2011年04月14日(木)
半田付けした基板のチェックが済んで
いよいよ電源を投入。。。。。 が ノイズ酷い なんとなく予感はしていたのだが ちょっと愕然 実用レベルとは程遠い感じ Webでプロトダイバーズの追試をされている方々の 公開されている録音データと同じ感じ きちんと半田付けすれば、そこそこ行くかと思っていたのは 甘い考えだったのを実感 明らかにMBEDモジュールが揺さぶっているようなノイズと レコード聴くときのプチプチノイズと同じようなノイズがあります (若者にはわからないかな) 最初に実用レベルにすると宣言しているので ノイズ対策をしていこう とりあえず対策の有効性を比較するために 簡単なソースで現状を把握する 以下 ソースコード ---------------------------------------------------- #include "mbed.h" AnalogIn Ain(p17); Serial pc(USBTX, USBRX); int main() { unsigned short sig[10000]; int i; wait(10); for(i=0;i<10000;i++)sig[i] = Ain.read_u16(); for(i=0;i<10000;i++)pc.printf("%d\r",sig[i]); } ---------------------------------------------------- A/D Port から 10000回 連続サンプリング 終了したら PCへUSB経由でシリアル出力するもの 入力ジャックには Hot と GND ショートしたプラグを挿している 理想的には A/D変換後のデータは一定であるはず それをグラク化したのが下 それなりにノイズが出ている感じ グラフをはみ出している一箇所が、おそらくプチプチノイズの元で 1900mV程度ある このグラフを基準に赤色の面積をなるべく少なくするように対策をしていきたい 早くファームウェア編に入りたいなと 。。。
2011-04-14 00:17
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/8/ ※ブログ管理者が承認するまで表示されません 2011年04月12日(火)
残りの配線をする MBEDと入出力のOPAMP回路の部分 MBEDとOPAMPはソケット使用して抜き差しできるようにしてみた 配線図では入力ゲイン調整用は半固定にしていたけど ケースに組むとなると使い勝手が悪いのでボリュームに変更 ジャックとボリュームの配線は後でシールドケーブルに変える予定 夜も遅くなってしまったので 配線チェックと動確はまた別の日に なかなか進まない。。。 このブログは誰か興味を持ってくれてるのだろうか?
2011-04-12 00:49
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/7/ ※ブログ管理者が承認するまで表示されません 2011年04月09日(土)
部品がとどいたのでユニバーサル基板に半田付け
ユニバーサル基板はサンハヤト ICB-504 レイアウトは先日のパターンのとおり 一通り半田付け終了したところで ACアダプタ接続して出力測定してみる 配線あってますように。。。。 D5V : 5.0V A+5V : 5.3V A-5V : -5.3V 無負荷なのでDC/DCの出力が若干高めですが まあ問題ないでしょう 次はいよいよ MBED と OPAMP 部分
2011-04-09 14:25
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/6/ ※ブログ管理者が承認するまで表示されません 2011年04月07日(木)
大体回路図を書いたところで悩みどころがひとつ
基板をどうするか? 選択枝としては 1) 自分でエッチング 2) パターン図描いて業者へ委託 3) ユニバーサル基板で手配線 で 1)はエッチングする環境をそろえないといけない かつ廃液処理がとても面倒くさい 2)はWeb巡回してみると個人でもやっている方々が 多くいらっしゃるようで、非常にあこがれます ノイズ等、性能を重視したい場合は絶対有利です でも、1枚しか必要ないのでコストが合わない。。。 という事で 3)に決定 (結局はコスト重視、趣味なので) ノイズがひどかった場合は切った貼ったの力技で 対応しようと思います ユニバーサル基板はサンハヤト ICB-504を想定しての配線図 GND引き回しがかなり気に入らないですが、作って様子を 見てから次を考えようと思います 案無しのまま配線に入るとろくな事にならないので 一応 CAD で描いてみます 回路図は手描きが好きなのですがパターンは考えながら 修正していく作業が多いので ToolはPCBEというフリーソフトを使用しました ここからダウンロードできますVector PCBE このようなToolを無償で提供していただけるのに感謝です 部品面視で 緑パターン : 裏面銅箔面パターン 赤パターン : 部品面ジャンパー ここまで机上で毎日更新でしたが 部品入手までちょっと休憩
2011-04-07 00:06
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/5/ ※ブログ管理者が承認するまで表示されません 2011年04月06日(水)
本日はギターからの入力部とMbedからアンプへの出力部分
ほとんどここのパクリです 武蔵野電波のプロトタイパーズ 大きな違いは正負電源になっていることと、LPFのカットオフ周波数を 若干高めに設定しているところでしょうか 部品表 ------------------------------------------------------ C23,24,27,30,31 : 積層セラ 0.1uF C20 : 電解コン(無極) 10uF C25 : 電解コン 10uF C26 : 電解コン 100uF C28 : 電解コン(無極) 100uF C21,22 : ポリプロピレンフィルムコンデンサ 1000pF C29 : ポリプロピレンフィルムコンデンサ 4700pF R21,24,25 : 抵抗 10KΩ R22,23 : 抵抗 8.2KΩ R26,27 : 抵抗 2.2KΩ R28 : 抵抗 1.8KΩ VR20 : 可変抵抗 100KΩ D20,21 : ショットキーダイオード 11EQS04 IC20,21 : OPAMP NJM4580DD φ6.3標準ジャック x 2 ------------------------------------------------------ 最初のブロック図にはLCDとパネルSW類があったけど これでとりあえず組み立て(半田付け)に入ろうかと
2011-04-06 00:43
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/4/ ※ブログ管理者が承認するまで表示されません 2011年04月05日(火)
電源ブロックの回路はこんな感じにしようかと
MbedのADCはフルスケール3.3Vのようです なるべくフルスイングで入れた方が良いと思うので OP AMP用に±5Vを用意することにします ACアダプタからRegで5V生成してMbedへ 並列にDC/DCへ入れて±5Vを生成してOP AMPへ 部品は秋月電子通商で入手予定 部品表 ------------------------------------ C1,4,7,8,9,10 : 電解コン 100uF C2,3,11,12 : 積層セラ 0.1uF C5,6,7 : 積層セラ 1uF R1 : 抵抗 1KΩ L1,2,3 : インダクタ 220uH LHL13NB221K IC1 : 5VReg TA4805S IC2 : DC/DC MAU106 2.1mm標準DCジャック ACアダプタ 9V GF12-US0913 ------------------------------------
2011-04-05 01:33
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/3/ ※ブログ管理者が承認するまで表示されません 2011年04月04日(月)
ハードウェアの構成を考えてみる
そこそこ実用になる物にしたい ・きちんとケースに組む ・設定パラメータがパネルから設定できるように ・Mbed ADC 入力 D-Range を最大利用できるように ということで構成的にはこんな感じかなと
2011-04-04 00:52
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/2/ ※ブログ管理者が承認するまで表示されません 2011年04月03日(日)
今更ながらBlog開設してみました
そのきっかけとして趣味としての電子工作を綴ろうと思います でもって、見つけたのがこれ Mbed クラウドでコンパイルできるという優れもの 学生の頃(ん十年以上前)と比べるとマイコン開発環境も 格段に敷居が低くなってることに驚きです 楽器用にエフェクタでも作れるんでは無いかと模索していたんですが すでにDelayとしては公開されているようです 武蔵野電波のブレッドボーダーズ 2番煎じではつまらないのでマルチエフェクタに挑戦したいと思います チップのパフォーマンス的には歪み系 + MOD系 + Delay系位はいけるのではと期待 細々とやって行きたいと思います
2011-04-03 02:24
| 記事へ |
コメント(0) |
トラックバック(0) | MBED マルチエフェクター |
トラックバックURL:http://blog.zaq.ne.jp/faker1968/trackback/1/ ※ブログ管理者が承認するまで表示されません |