■コンデンサで音は変わるのか LPF・HPF編

他の測定でわかった通り、歪率や周波数特性の測定はあまり意味がない気がしますが、失敗例として記事にしていこうと思います。音の変化には歪率や周波数特性以外の何らかの特性が関係していて、それは結局自分の耳で確かめるしかないのだろうと思います。

ローパスフィルタ(LPF)、ハイパスフィルタ(HPF)回路でコンデンサの比較を行いました。コンデンサは以下の4種類です。
10_185_1capLH.jpg
・Supertech Electronic 積層セラミックコンデンサ 実測値0.95μF 50V 温度特性:Y5V(1個10円)
・日本ケミコン SME 両極性アルミ電解コンデンサ 実測値1.03μF 50V 85℃(1個21円)
・Garrettcap GBQ メタライズドポリエステルフィルムコンデンサ 実測値1.0μF 100V(1個50円)
・Vishay/Roederstein MKT1817 メタライズドポリエステルフィルムコンデンサ 実測値1.03μF 63V(1個200円)

PCの入出力インピーダンスの影響を受けますので、回路は下図のようになります。カットオフ周波数が1kHzぐらいになるようにしました。PCの出力は約1Vrmsです。また、理想的なコンデンサでのLTspiceシミュレーションも行いました。
10_185_2capLHs.gif

▽LPF結果
10_185_3capLPF.gif
▽HPF結果
10_185_4capHPF
Garrettcapとシミュレーションとの周波数特性が全く重なりました。MKTはわずかにズレていますが、静電容量の違いのためだと思います。

積セラはやはり歪率が悪くなっていますが、周波数特性自体はそんなに問題ない感じです。高域がギザギザになっているのは、歪み成分のせいだと思います。

電解コンデンサも歪率が悪くなるのかと思っていましたが、大丈夫なようです(測定限界)。周波数特性はフィルムコンデンサと1dBぐらいズレていて、若干違った特性のように見えます。ただ電解コンデンサは普通のテスターだと容量測定誤差が大きくなるらしいので、測定値があまりあてにならないようです。

■Nuverdrive+プレゼント(終了しました)

02_184_1nuverdrive_2P.jpg
Nuverdrive+をもう一台作りました。もしも欲しいという方がいらっしゃれば、上写真の赤色のバージョンをプレゼントいたします(希望者多数の場合は抽選)。下記の2つの方法のうちいずれかで連絡お願いします。締め切りは2017年6月10日(土)です。※万一故障した時に、修理対応できるかどうかは不明です。ご了承ください。

<方法1>
Twitterの私のアカウント宛に、「Nuverdrive+希望」と記載してダイレクトメッセージ送付
※無理にフォローやリツイートをされる必要はありません。
<方法2>
当ブログ右側下部のメールフォームにお名前(ニックネームでOK)とメールアドレスを記入の上、件名と本文に「Nuverdrive+希望」と記載して送信


(以下Nutubeに関する個人的感想)
Nutubeは低電圧で動くというのが大きなメリットですが、実際はあまりコンパクトエフェクター向きではないと思います。増幅率が低く、1個(2回路)だけで歪ませるのは難しいです。また、マイクロフォニックノイズがあるため防振対策が必要で、ケースがある程度大型になってしまいます。結局、普通の真空管+スイッチング電源の方が楽かもしれません。今まで同じエフェクターを2個作ることはありませんでしたが、どうしてもNutubeを使った回路を新規に考える気にならなかったため、今回のプレゼント企画に至りました。



---以下2017年6月17日追記---
当選者の方にNuverdrive+が無事に届いたことが確認できました。多数のご応募ありがとうございました。

■Nuverdrive+

02_183_1nuverdrive_P.jpg
「Nutubeで作る自作エフェクター・コンテスト」で佳作を受賞したNuverdriveですが、フットスイッチを押したときのマイクロフォニックノイズが大きかったため作り直しました。もともとNuverdriveを小さいサイズにしたのはコンテスト審査でインパクトを与えるためだったので、今回の「プラス」バージョンが本来の姿といえます。

▽回路図
02_183_2nuverdrive_S.gif
変更点は以下の通りです。
<トーン追加>
この形のトーン回路(ただのローパスフィルタ)はCカーブのポットがよさそうです。ただちょうどいい値(2kCカーブ)が手に入りにくそうなので、1kBカーブにしました。可変幅は少ない感じです。
<トリマーを固定抵抗化>
歪みエフェクターなので、細かな調整は必要ないと考えました。Nutubeの個体差によってはほんの少しゲインが下がるかもしれません。
※修正しました(追記参照)。
<オペアンプ>
高音質な印象を与えるためOPA2134を使っていましたが、TL072でも全然問題ありません。
<3.3Vレギュレータ追加>
フィラメントにかかる電圧が安定するため、電池駆動が可能になりました。何Vまで低下しても大丈夫なのかはテストしていません。

▽レイアウト
02_183_3nuverdrive_L.png
▽PCB(横55.9mm縦22.9mm)
02_183_4nuverdrive_LP.gif

マイクロフォニックノイズはまだ少しだけ出ている状態ですが、演奏中切り替えても特に気にならないレベルになりました。以下のような対策をしていますが、HAMMOND 1590Bサイズではこれが限界だろうと思います。
<シリコンワイヤー>
Nutube使用ガイドで柔らかい線材が推奨されていたため、シリコンワイヤーという線材を試しました。茹でたスパゲッティのような感触です。
<適度なスポンジ>
ぎゅうぎゅうにスポンジを詰めると振動がNutubeに伝わりやすくなる気がするため、ほんのり位置を固定する程度に詰めています。
<フジソクのスイッチ>
見た目は頼りない感じで、本来は足踏み用ではなさそうです。スイッチを押したときの感覚がかなりソフトになります。ただし、荒っぽく踏んだ場合は他のフットスイッチとあまり変わらないかなと思います。

トーン約半分の位置でNuverdriveと同じになります。Nuverdriveの音は下記イベント・レポートの動画で聴くことができます。
KORG / Nutube BUILDER SUMMITイベント・レポート

---以下2017年5月14日追記---
Nutubeを別の個体に差し替えたところ、変な歪み方になりました。たまたま今まで使っていた個体が大丈夫だっただけで、バイアス調整トリマーは必要なようです。回路図・レイアウト・PCB画像を修正しました。

■RasPd1 プログラミング編

プログラミングはかなり昔にお遊び程度にしていたレベルで、全く自信がありません。参考になるかわかりませんが、とりあえずRasPd1に入っているファイルをアップロードしておきます。(直リンクできないようなのでこちらの別ページにダウンロードリンクを載せています。)
Pythonというプログラミング言語を使っています。記事にしてみると思ったよりたいしたことはしていませんでした。エフェクトは3種類入っていますが、取り急ぎ適当に作ったものになります。



<スイッチ・LED>
Raspberry PiではGPIOピンという端子によりデジタル信号の入出力を行うことができます。スイッチやLEDの制御は比較的簡単です。こちらで丁寧に解説されています。→RaspberryPi電子工作入門

<液晶ディスプレイ>
秋月電子の超小型LCDキャラクタディスプレイを使用しています。HD44780互換ということで、下記ページのプログラムをほぼそのままモジュールとしてインポートしています。
16×2 LCD Module Control Using Python
ただし、3番ピンはGNDではなく10kΩトリマーで5Vを抵抗分圧して接続しています。トリマーを回すことでコントラスト調整ができます。

<ロータリーエンコーダ>
こちらのページのプログラムを改変して利用しました。→RaspberryPi + Python でロータリエンコーダを制御してみた
主な変更は、ロータリーエンコーダを回し始めたときにGPIO監視を開始するようにした点、速く動かしたとき値が3倍増減するようにした点です。いまいちコントロールしにくいときがあるので、まだまだ改善が必要だと思います。

<Pure Data(Pd)連携>
pdsendというコマンドを使って、ロータリーエンコーダやスイッチからPythonを介してPdへデータ送信しています。例えば「$ echo '50;' | pdsend 3010」というコマンドで、開いているPdのパッチの[netreceive 3010]オブジェクトにセミコロンが除かれた50というデータが送られます。数字データの場合は、Pdが文字ではなく数値と認識してくれるようなので、そのまま計算等に使うことができます。pdreceiveというコマンドで逆にデータ受信もできると思いますが、現状では必要なかったため試していません。

<データ保存>
起動時・終了時やエフェクト切り替え時に、各エフェクトの状態をテキストファイルに保存しています。エフェクトのパラメータはfx_pというリストデータになっています。いちいち整数と文字を切り替えなければいけないのが少し面倒でした。



ハードウェア編へ  ソフトウェア編その1へ  ソフトウェア編その2

■RasPd1 ソフトウェア編その2

Pure Data(Pd)の設定等をしていきます(太字表記はコマンド)。



<Pd設定>
Pdと外部オブジェクト(Externals)をインストールします。
$ sudo apt-get install puredata
$ sudo apt-get install pd-libdir pd-cyclone pd-unauthorized pd-ggee pd-zexy
作るエフェクトによっては、もっとたくさんの外部オブジェクトが必要となるかもしれません。

設定ファイルを作成します。
$ nano .pdsettings (新規作成)
以下の内容です。パス(path)は念のため全ての外部オブジェクトを入れています。
audioapi: 1
noaudioin: False
audioindev1: 0 2
noaudioout: False
audiooutdev1: 0 2
audiobuf: 6
rate: 44100
callback: 0
blocksize: 64
nomidiin: True
nomidiout: True
path1: /usr/lib/pd/extra
path2: /usr/lib/pd/extra/cyclone
path3: /usr/lib/pd/extra/ggee
path4: /usr/lib/pd/extra/libdir
path5: /usr/lib/pd/extra/pddp
path6: /usr/lib/pd/extra/unauthorized
path7: /usr/lib/pd/extra/zexy
npath: 7
standardpath: 1
verbose: 0
nloadlib: 0
defeatrt: 0
flags: -nogui -rt -alsa

flagsにコマンドラインオプションを入れることができます。-realtime(-rt)を入れるとPdをリアルタイム優先度で実行できますが、通常のpiユーザーでは権限が弱いためこのオプションが使えずエラーが出ます。こちらのページを参考に設定変更しています。
$ sudo nano /etc/security/limits.conf
以下の2行を追加で記載します。
* - rtprio 99
* - memlock unlimited
※「audio」ユーザーグループだけに設定してもよいのですが、面倒なので全てのユーザーで優先度を上げて実行可能にしています。

設定ファイルのaudiobufとblocksizeを少なくするほど低レイテンシーとなります。しかし少なくしすぎると処理が追いつかず波形が途切れ途切れの状態になり、ノイズが発生します。ですので波形が途切れない限界の値を探っていくことになります。レイテンシーについては別の記事にも記載しています。

-nosleepオプションを入れると「audiobuf 5 blocksize 64」が限界値で、レイテンシーは11msとなりました。しかしエフェクトを切り替えた際にハングアップしてしまうことがあるため、このオプションは入れないことにしました。その場合「audiobuf 6 blocksize 64」が限界値で、レイテンシーは14msでした。聴感上は遅延を感じませんが、複数のエフェクトを処理する場合はもっと遅くなると思われるので、現在はI2S接続のオーディオインターフェイスの使用を検討中です。

※ちなみにclass4のmicroSDカードを使ったときclass10のものよりレイテンシーが約0.7ms増加していたので、ハイスピードのmicroSDカードはわずかに効果がありそうです。



<自動起動設定>
電源を入れたときにメインプログラム(私の場合はmain.pyというPythonスクリプトファイル)が自動起動されるように設定します。
$ crontab -e
最後に追加 @reboot python /home/pi/main.py
※私はメインプログラム等の使うファイルはすべて/home/pi/フォルダに入れています。

自動起動しているプログラムを終了したいときは下記コマンドを使います。
$ killall python ; killall pd



<リアルタイムカーネル>
下記ページに載っている方法が最も簡単にリアルタイムカーネルを導入できると思われます。
Raspberry Pi 3とリアルタイムカーネル(3)[自前ビルド無し導入編(おまけ)]
しかしながらはっきりとはわかりませんが、Pdで「tried but couldn't sync A/D/A」というエラーが発生する原因になる可能性があります。また、私の環境ではレイテンシーがほとんど変わらなかったので、特に導入する必要はないと思います。

<JACK Audio Connection Kit>
いろいろなサイトでふれられているJACKですが、私はどう設定してもうまくいきません。何とか起動できてもレイテンシー24msぐらいだったため、導入をあきらめました。



ハードウェア編へ  ソフトウェア編その1へ  プログラミング編

管理人

ブログ内検索

メールフォーム

当ブログに関するお問い合わせはこちらからお願いします。 ※FAQ(よくある質問)もお読みください。

お名前
メールアドレス
件名
本文

アクセスカウンター