音楽雑記帳

音楽鑑賞ネタ 他は 自分の英語ブログ(google blogger)からの転載など。他は適宜時事、社会ネタも混じります


 少々当ブログの趣旨から逸脱していますが、マイコンボードにArduinoというのがあるので、それを用いた機器の制御の入門ということで、液晶表示器を繋いだり、MP3プレーヤーとUARTで接続してみているわけで、これにはスケッチというC言語と似たプログラミングをしなくてはなりません。 

 DFplayer-miniというMP3プレーヤーがamazonで格安販売されており一個300円程度で入手可能ですが、実際に配線をしてみないと不良品かどうかなかなかわかりません。3個に一つぐらいは不良品かも知れません。

さて、実際のプログラミングですが、製造元の公式サイトでArudino制御用のソースコードが公開されていますが、これを用いる場合、Githubの方からライブラリーをAruduinoIDEという開発アプリのほうにインクルードしなくてはなりませんが、UARTで使うコマンドにはこれを使います。


 DFPlayer-mini用意されているサンプルだと、音が小さい上三秒ごとに次の曲になってしまうので、普通に聴くには耐えません。コマンドで使うmyDFPlayer.play(filenumber)はその後にdelay()の分しか演奏しません。

 このMP3プレーヤーにはBUSYというピンがあって演奏中はLOW、何も演奏していない時はHIGHの信号を出すわけなので、これで制御は可能と思われますがライブラリーの関数を使った場合、if else ,for等の制御文がダメで実装出来ません。
 ライブラリーの中にDFRobotDFPlayerMini-1.0.hというファイルがあって、使えるコマンド類が書いてあるので、とりあえず、myDFPlayer.volume(10)を→(30)に変え、


void setup(){~ にmyDFPlayer.enableLoopAll()と書き加えソースコードのvoid loop(){以下を消して、

 myDFPlayer.enableLoopAll();
delay(1800000);

としておきました。これで頭から30分ファイルを読んでいって繰り返す事が確認できました。現在のところ、ファイルシステムがないため、SDカードのファイルを頭から読んでいくという制御しかないようです。

 MP3プレーヤーの音質そのものは問題なしというかかなり良好です。

 追記 Githubで提供されているライブラリーにサンプルのソースコードがいくつかありますが、イコライザーが使える事がわかり、実装してみました。結構使えます。myDFPlayer.EQ(DFPlayer EQ JAZZ)というのがあるので同じ要領で追記して効果を確認しました。


 ラズベリーパイの弟分みたいなNanoPi Neo2が秋月電子で2400円で売られているのに気が付き購入してみた。4センチ四方しかないコンピューターボードだ。 グラフィック機能は落としており、ローカルネットに繋いでサーバーとしてクライエントで操作するわけだ。

nanopi-3
 クアッドコア、64bitマシンなので、発熱は大きい。ヒートシンクは必須なので、セットで入手。公式サイトからOSをダウンロードしてマイクロSDカードにコピーして起動させる。後はSSHでログインして各種操作を行うわけだが、とりあえずMPDという音楽サーバー用の「デーモン」をインストールして、クライエントから接続するというわけだったが、これが難関だった。





nanopi

 結論を言えば接続して動かす事に成功したわけだが、linuxのサーバー構築の知識がほとんど無かったので苦しんだ。NanoPi Neo にMPDを仕込んで使うのは「定番」のようだが、肝心な部分はわからない。クライエントからの接続はSSHのみで他はことごとく接続拒否ではねられる。もともとセキュリティーの問題があるので、ややこしい。

 

 
 接続方法の要点がネットを調べてもわからず、専用の解説webでも仕組みしかわからない。でそのMPDには設定用のmpd.confというファイルがあるのだが、これとにらめっこしたまま夜が明けてしまった。

 さて私が発見した解決方法だけかいつまんで参考までに書いておくと

 nano /etc/mpd.conf で設定ファイルを開くと

 bind_to_address        "localhost" という行があるのでこれを先頭に#でコメントアウト
その下にbind_to_address    "XXX.XXX.X.XX" と記入(”XX~はホストのIPアドレス)

 少し下の行に行くと

 #port        "6600"とあるのでコメントを外して有効にしておく。 nano1で開いて書き換えたファイルを保存してexitする(やり方は調べればわかります)

 さてクライエントとして用意したGNOMEから接続してみます。
とこんな具合です。

MPD-1
 













 MPDの再生フォーマットですが、I2S接続で44.1kHz,48kHz,MP3しか確認出来ていません。98kHzでは再生が二倍遅くなります。通常は十分ですが、どうもデフォルト設定ではこんなところのようです。NanoPi NeoのI2S再生はなかなか良い。Volumioのような専用OSが出来るとなお良い。(改造版は作っている方も)

nanopi-4I2Sでの接続するDACはTI社のPCM5102aが標準で、たまたま購入してあった基板があったのでそのまま接続する。問題なし。内部クロックが標準装備のDACのICはまだ種類は少ない。

 ※追記

 nanopi Neo2 標準装備のOS (ubuntu)でI2S接続を選択した場合、出力フォーマットが44.1k / 48k のみに固定されるようです。(alsaもしくはMPDの設定にformatの項目が存在しないpluseaudio等はある。raspberry pi の場合標準のラズビアンの場合、I2S接続はないので、I2Sオーディオを楽しむには、OSの選択はVolumio等のMPDになります)


 ヤフオクのオークションでAbraconの高精度水晶発振器 ASTX-H11(498円)で入手したので、早速PCM5102で自作したラズパイ用DACの外部クロックとして使用してみる。一応誤差±2.5PPMの超低ジッタを謳っていて、共立電子で入手したクロックキットが50PPMだから、カタログ通りなら桁違いということだろうか。

 クロックテスト−5さて米粒より小さい。ランドを銅テープで自作してハンダ付けを試みる。だいたいうまくいったが、フラックスがついたままなので汚い。米粒を脇に於いてみて撮影してみました。発振器の向きが逆さまですけど、配線は間違えていません。前回自作に使用したEPSONのオシレーターがあまりにも大きく見える。

 



 PCM5102でラズパイ用DACの自作を行った際、外部クロックをどうせだからつけ替えられる用に作ったわけで、3種類の外部クロック+PCM5102の内部クロックという訳だが、音質が結構異なるので面白い。PCM再生はクロックによって印象が変わるのはサンプリングレート以上の気がする。一般にデジタル処理の過程では違いは殆ど無いわけだが最終的にはアナログ的な要素は排除出来ない。

クロックテスト-2実際には左のイメージのようになるのだが、アルミ拍を巻いてあるのは、GNDとクロック出力の配線を(同軸ケーブル化)して、さらにその周囲にアルミ箔を巻いたわけですが、外部クロックの回路を引っ張ってくると、パルス状のノイズを拾いやすくなっているからで、曲の変わり目なんかに小さくプチ、プチと入るので気になった。通常はICのすぐそばにクロックが来るので、外部の電磁パルスノイズは拾わない。

 EPSONのクロックはつけたままなのですが、かなり熱くなるのでヒートシンクをつけてあります。250PPMといったジッタ性能ですしかなり古いパーツだろうと思います。ただ意外と音はイケんです。



 印象とまとめ USB接続のインターフェースの場合通常水晶式のクロックが搭載されておりそこからDACの側にシステムクロック信号が送られます。通常この方式はスレーブと呼ばれています。ラズパイにはこれが無いわけだ。(実際にはBCKあたりをそのまま入れてしまう手もあるらしいが試していない) 

 とりあえずクロックの違いに付いての印象をまとめておくと

 共立エレショップ独立クロック基板(TI社PLL1707) 安定感がありオススメ

 EPSON SG8002DC 音切れが良くエネルギッシュ。低域が伸びる印象 外部のパルスノイズが若干入る(殆ど気にはならない)
 
 Abracon ASTX-H11 繊細で軽快。外部パルスノイズは殆ど気にならない(曲間で入る程度)

 PCM5102 内部クロック。 ノイズレスでストレスフリーだが、平板で面白みに欠ける。PLLで所定の周波数を出しているが基準値(24.576MHz)の半分。

 
 
  
 


PCM5102-2 TI(テキサス インストゥルメンツ)社のDAコンバーターICのDIP化したものが秋月電子で販売されていたので購入(500円)。これでラズパイ用のDACを作ってしまった。

 PCM510x系は配線が簡単で、基本的には電源とローパスフィルターだけで良い。デジタル部とアナログ部は別電源化可能。このさいだからデジタルはラズパイの3.3Vpinから取るにして、アナログ部はトランスで別電源としよう。レギュレーターなら簡単に3.3Vに出来る。



 秋月で公開のTI社の諸元説明書にアプリケーションとして回路図が出ているが、なんとICの向きが逆さま(トップ(1PIN)が上に来ていない。参考にする人は要注意。気がついたから良いようなものの向きを間違えるところだった。TI社のwebで調べればわかります。抵抗値は経験的にわかりますが、わからな時は仮止めして試すのも手。出力の電流制限とローパスフィルターが微妙。

 PCM5102-1回路図にない部分で注意を要する点にミュートピンがあるが、それはVccに接続すること。17XSMTがそれだが、これはオープンだと音が出ないので焦らず、3.3Vにつなぐ。スイッチでMUTEがつけられる仕組み。外部クロックをでっち上げましたのでこれも組み込みます。無ければSLKはGNDにそのまま接地させれば内部クロックで対応されます。

 









 外部クロックが有効になっている時は44.1KHzと48KHzの倍数では周波数の切り替えが必要ですが、めんどくさいのでVolumioのリサンプルで対応したほうが話が早い。そこで24。576MHz一択です。音質は通常アナログ部の方が影響が大きいので良くわからなです。用いたクリスタルオシレーターは汎用品の規格ですので、調べたところオーディオ専用機ほどの精度はないようですが、問題まったくなし。というか殆どわからないので、ココは外部化にしただけで良いことにしよう。

PCM5102-3

このページのトップヘ