空を見上げて
トップページ » オーディオ » メモリプレヤー

安いスマホ本体でNetRadio

JazzRadio.comのMellowJazzをよく聴く。
いろいろなやり方があるが...
秋月のBB-Shoutでは、聞くことができない。(デコーダーの関係?)
かなり悲しい。

AndroidやiPhoneだと安定して聞くことができる。
ただスマホはスピーカーがいまいちなので、これにアンプをつなぐことになる。

工房ではBlueTooth経由でアンプで聞いている。
光出力もあるし、AAC転送でもそこそこ良い音質で楽しめる。(そもそもBGMだし。)
で、自宅でも聞きたいと思うようになる。

いろいろ考えると、中華パッドなどがラジオの代わりにいいのだが...。
スマホで白ロムの中古を探してみる。
新しいものは当然ながら高い。どうせラジオなので、そんな高級機種でなくてもいい。
SIMも使わない。
安いのはSoftBankだと107SH,205SH,DM013SHなど。
Kids向けなども安いが、アプリが自由ではなく違う意味で苦労しそう。(rootをとるとか)
なので無難なことから言えば、このあたり。(他にもあるかもしれないが。)
尚、SIMロックは外せないと思っていいようだ。
結果的にはDM013SHにしたが、これはベースが107SH。しかし107SHより安い。
DM013SHは新品でも¥5500ほど。(Amazonで)
中古だと¥3300というのもあるが、これは変動する。
これなら下手な中華パッドよりは安定しているかも。

で中古で¥2800のが出ていたのでGet。実際は手数料なので¥3200ほどだった。(^^v
まあ、ACアダプターはないし電池もへたっているのかもしれないが、これはどうせUSB電源で充電しっぱなしにするので気にしないことにした。
考えると¥2800でカメラも1セグもついているAndroid端末だと思えば、結構お買い得で中華パッドよりも安い。
早速、JazzRadioアプリを入れてみた。

そうすると、就寝前に聞きたくなる。まあ自分で電源を消せばいいのだが、そのうち寝入ってしまうこともある。
で、結局はアンプにタイマーをつけた。スマホは鳴りっぱなしであるが、アンプにつないでおけばアンプを着れば音はしないし。
タイマーはプログラマブルのもあるが、普通(?)のダイアルの方が直感的で設定もしやすい。

実はデジタルがいいかと思って最初はプログラムのものを買った。

確かにこれは多機能で1週間の予約までできる。ただコンソールでボタン設定なのでいい加減にめげる。というかそんなに正確に時間指定がいるわけでもない。
また単純に「1時間後に切る」というのもできるが、ボタン操作は数回になる。面倒...。

で結局はアナログっぽいのを追加で購入。
これは一見ゼンマイ方式(?)で実際もそうかもしれないが「チリチリ」みたいな音はしなかった。
50Hz/60Hzの切替があって、電源を抜くと止まるのでゼンマイってことではないようだ。

これだと、設定はまわすだけ。1時間(ほど)で切ることができる。

作戦としては
・スマホのヘッドホンジャックからアンプにつないでおく。
・アンプはタイマーで一定時間(1時間とか)で消す。
・スマホは充電しっぱなしにしておく。
・スマホでネットラジオをかけ、スリープさせる。
とやっておく。
結果的にはスマホはずっと音楽を流している。(朝まで)ただ、充電もしているので電池は減らない。
また(多分)電気も殆ど食わないと思われる。
アンプに電源があると、そこそこの音量で鳴るが、電源が切れると静かになる。
スリープにしておけばバックで再生していて画面も真っ暗なので睡眠の妨げにはならない。
欠点としては朝方スマホを止める必要があるが、特に止めなくてもいいような気がする。
これで就寝前の音楽もバッチリ!!

ただ、全体として考えると普通のミニコンポのように一定時間で全部止めて欲しい。
スマホからの音再生であれば、これはなんとか可能であるが、如何せん音が悪い。
睡眠の妨げとは言わないが、せっかくなのでいい音で聞きたい。
ただ、大音量でなくてもいいというか小音量しかありえない。
何か電源をもったアンプにすると連動機能が必要になるが、ここがもどかしい。
無音で電源Offとなるとそこにまた電源が...。まあD級アンプだと入力がない場合は殆ど電気を消費しないので向いているのかもしれない。

なにはともあれ、就寝前に音楽が聞けるのはいい。
ただ欠点もあって、アンプを切る時に盛大なポップノイズ(ブツッ)が出る。これで起きる可能性もある。(TT)

by   at 09:00  | Permalink  | Comments (0)

mp3プレヤーを考える

¥100アンプこの方音質は無視して利便さを求めて...。
でmp3プレヤー。高音質でmp3もないような...。

普段はiPhoneとiPod(など)で聞いているがデッキとかで聞くのに安いのが欲しくなった。

iPodNanoやShaffleでいいのだが、自分には要らない機能がついて高い。
中古を探せば安いのもあるが、型式が古いと容量が小さくバッテリーも怪しい。
考えるとiPodClassicは別にして、他は中古になると2Gとかからみたいだ。
それなら無理してiPodにすることもない。

そもそもモバイルなので割り切ってもいいような気がする。
iPodやiPhoneは
・電池が交換できない
 正確にはAppleに依頼すればできるが高い。
 他でもやっているところがあるがAppleほどではないがやや高い。
 自分でできるKitもあるが、やり方を見ていると分解難易度が高く別のものを壊す危険性もある。交換用に設計されていない。
・メモリは増設できない
 時代とともにメモリ容量はUpし、2Gとか4Gとか8GまでならUSBでもSDでも安くなったが、内蔵されてしまうと買い替えしかなくなる。1曲5Mとして、2Gで400曲。CDで40枚ぐらいだから、まあ手持ち全部は無理なので適当にみつくろうことになる。
 
従って、できるだけ長期間使えるなら
・乾電池式にする
 充電器と充電池があれば1000回充電できるし、寿命になったら買い替えで良い。
 充電池は¥100にあるので12時間ももてば、1日OKだし、それで1000回なら3年持つ。話半分でも1.5年で¥100は安い。
・SDなどでメモリもリムーバブル
 将来安くなったら、大容量にできる。今でも古い小容量のSDを有効利用できる。
持ち歩くなら大容量のSDが1つあるより小容量のものが複数あったほうがいい。
という感じ。

考えると、昔も同じことを考えてもっていたりする。

1.USB型
 その昔山善から2Gのが出ていた。
 山善のはCDとメモリに見えて、CDにはソフトが入っていたがついぞ使わなかった。認識がいまいちだったし、時々止まることがあるが結構気に入って使っていた。
 使っているうちに接触不良などが起こったがなんとか修復しながら今に至っている。
・電源は単四電池1本
・メモリは2G固定
で、結局はその時聞きたいものを放り込んで聞いている。
これが似ている(4Gになっているが格好は同じ)

 これはわからないが山善のものは日本語の曲名表示もできていて感動した。
 転送はUSBメモリに見えるのでそこに書けばOK。
 曲間に変なノイズ(多分CPUが動くため)が入る。演奏が始まると消えるがやや興ざめするかも。

2.SD型
 グリーンハウスというか上海問屋で出ていた。¥999とかで。
以下が近い。
 これも単四電池で動作する。SDが入れ替えできるので容量はSD分。ただSDHCは微妙だけど、下のものは8Gまでとある。
 この手は(曲検索できないので)でかいのを入れるより気分でSDを入れ替えるほうが遥かにいい。
 転送はこれ自体をUSBでPCにつなぐとカードリーダみたいにしてSDに書ける。ただこれ経由だと遅いので直接SDに書いたほうが早かった。

 安いので今まで数台買って...ほぼ壊れてしまった。ただ1年以上はもっていたと思う。レビューにもあるが、品質はいろいろあって、実際に自分もそうなったが接触だったので自分で修理した。中にはそうでないのもあるのかも。
 消耗品と考えてもこれならまだ許容できる価格。
 音質はともかくやはり曲間ノイズがややるが、山善のよりはましだった。aitendoのKitのは(最新版はよくなった感じだけど)対策しないと山善よりひどいし、どこもそんなものなのか...。

 他にももっていたが、いずれも内蔵電池で1.5-2年ぐらいすると充電してもすぐに電池が切れて使えなくなった。電池を除けば外形もまともだし、かなりもったいない感じ。Appleと同じで電池交換できないしそもそも電池の互換品がわからない。
 Appleの戦略なのか、環境にはやさしくないというか。米国独特の使い捨て文化なのか購入をあおるやり方なのか...環境団体はなんで黙ってるのか...。
 Appleの場合はそうなっても「充電しながら聞ける」ため、ACで聞けば(持ち歩けないが)捨てるほどでもない。それなら検索もいいのでiPodClassicがいいのかもしれない。

 上のものを選ぶと散歩にはもっていけるが...
・曲の検索ではできない
 アルバムとかそういう管理がない。気楽ともいえる。
 なのでプレイリストを作るのではなく、好きな曲を入れる。
曲順はDrop順序になるがUMSSort1.4.lzhなどで入れかえできる。
http://www.geocities.jp/umssort/
曲のスキップなどはできる。
・充電しながら聞けない
 電池がはずれるので、はずして充電器に入れて充電器にあったのと入れ替えれば別に問題はない。AC接続で聞くものではなさそう。
 どうしてもやりたい場合は
http://akizukidenshi.com/catalog/g/gK-00096/
みたいなので1.2-1.5Vを作って擬似電池みたいにして入れれば動作する。
これも作成はしてみたが面倒で使っていない。
乾電池で10時間ぐらいはもっているし、連続10時間は聞かない。

 音質はともかく、両方とも音量を最大にすれば、例のパッシブ・スピーカーでBGM程度の音量にはなる。iPhoe/iPodほど大きくはならないが、aitendoのプレヤーKitよりは大きくできる。
 機能が少ない分、操作も簡単といえば簡単。自由度がないとも言えるけど。

 正直、この2つが見つかった途端にiPodでなくてもいいような気がしてきた。
 デッキでだって、これでBGMもOKだし、なんせ小さいし、安い!!

音質はと言えば、可もなく不可もないが、イコライザをかけると不可になったり。(^^!
何もしなければそこそこではないかと。
 

by   at 09:00  | Permalink  | Comments (0)

ユニバーサルドックの憂鬱

ここのところiPODをアンプにつないでいるのだが、どうも巷の話とは全然違う。
マークレビンソンと戦う話もあるが、それ以前にそこらのmp3プレヤーの音に負けている。
これでマークレビンソンを打ち負かすのなら、@980プレヤーは圧勝だろう。

そのぐらい悪いと思うのだが、どうも原因はユニバーサルドックにあるようだ。
ここにLineOutがあるので買ったのだが、これがひどい原因のようだ。
イコライザは勿論なしであるが、ヘッドホン端子とも音質が違う。
ヘッドホン端子の方が「まし」で何のためのLineOutかわからない。
偶然、同じような書き込みを見たが、普通に聞いてもこのLineOutはひどいように思う。
http://bbs.kakaku.com/bbs/-/SortID=8306403/
とか。良いという話も出てくるけど、低音がきれているし、高音はキンキンしている。音そのものがボケている感じ。

そもそもLineOutでありながらボリュームが反映される。
まあそこは、リモコンもあって変えられるので長所と言えなくもないが、どうも音声そのものを処理している感じがする。
このユニバーサルドックは
・LineOut
・リモコン機能
・普通のドックコネクタでここから充電再生できる。
となっていて、スタンドアロンプレヤーにできる。
でもこのLineOutはないだろうと...。(TT)

3rdからのものでLineOutのものはあるが、充電再生できないと、またどこかで充電が必要で据え置きプレヤーとしてはいまいち。
リモコンは便利だけど、このリモコンは新品電池でも利きが悪い。強いて犠牲にしていいのはリモコンか。
そうなると探せばあるだろうけど...。
http://www2k.biglobe.ne.jp/~t_muto/ipod/option_cable.htm
にいろいろ。
なんか純正でも信用できない。(TT)
リモコンは要らないけど、立てかけたいってのはある。今は¥100ショップにスタンドもあるからいいのかな。

同じような体験もさぞかし多いだろうと思うと、案外少なかったりする。不思議...。
改造記事でもあるかと思ったら、全然だった。
じゃあ自分で改造してみようかと分解!!
ゴムの周囲をマイナスドライバではずしていくとはずれる。ただ根気が必要。
(ゴムははずさなくてもOK)

おおーー。ダイキャストだ!!
これを外したら基板もはずれるかと思ったら...
げげ!!基板はプラスチックのボスを溶かして固定してある。(TT)
それにしても素子数が多い。リモコンぐらいだろうと思ったら大違い。
ネットで調べるとやはり音声はChipを通るらしい。
リモコンで通信しているだけにして、後はLineOutを出してほしかった。音量なんて変わらなくてもいいし。普通LineOutは変わらないし。
ここはあえなく玉砕。(TT)

しょうがないのでaitendoのDebugボードを引っ張り出す。
ううむ。ドックになってないけど、全端子と機能がついている(らしい)。
でもシリアル通信の配列が間違っていると書いてあった。(^^!

でつないでみた。Hackしている雰囲気はあるが...。

音は見事に普通のプレヤー程度になった。(^^)
ってことで原因はやはり、Apple純正のユニバーサルドック!!
どうしてくれるんだ!!と叫びたいような製品。
音の相違がわからなかったのかしら?

by   at 09:00  | Permalink

USBプレヤー(14)

もう1つwavの再生に関して。
VS1003とかはwavでもどうもデータで「WAVE」の直後に「fmt」が来ないとうまく再生しない。
規約からすれば、ここにタグがあっても良いことになっている。

例えばWMP11でCDからWAVに変換すると「LIST」というタグがついていて、ここに演奏者などの情報が格納される。これは規約上は正しい。
しかし、VS1003では、この情報があると見事にこけて無音になってしまう。(TT)
CDの変換にCD2WAVで行うとこの問題は起きない。(LISTタグがないので)

ついでながら、fmtのバイト数もWMP11だと18が設定される。拡張部分に2Byteの00がある。
これも規約上はあってもいいし、VS1003もこれは許容しているような感じで’data’タグを見ているように思われる。
でも気になるのでこれも外すことにする。

なんとも困った感じであるが、まあWindowsで変換もできるのでWAV2WAVなる
・「WAVE」と「fmt」の間のタグを削除
・「fmt」の拡張部分を削除
するソフトを作ってみた。
面倒なのは最初の「RIFF」の後に全体のバイト数があるので、これを修正しないといけない。

まあH8ではないので楽勝と言えばそうだ。
H8でも最初のヘッダだけならなんとかなりそうだが、判断が面倒なので、Windowsで変換して食べさせることにする。

大半の人はWMP11あたりで取り込みするような気がする。(昔ならCD2WAVなのだろうが)
なんか妥協だらけの産物であるが、それでもWMP11から取り込んだWAVがならせるのは使い勝手がいい。

しかしタグぐらいはまじめに見てほしいよなあ~。#VS1003

WMP11からのデータ変換もできたのだが、今度はVS1003のWAV再生が時々おかしくなる。
mp3は凄く安定していて連続再生してもこうはならない。
転送ではないようで、転送そのものは間に合っている。転送が途切れると音楽も途切れるがそういうレベルではなく「ザーーーー」というノイズ音になる。音楽にならない。(TT)

いろいろ調べていくと...転送クロックのようだ。
そこでAVRのクロックは12MHz->16MHzに、ついでにバッファも8Kから16Kにした。
これで再度安定性を見よう。

そうこうしていたら日本ではなくスパークファンにVS1053のモジュールがあった。
レギュレータもついている(^^)

USBトランスポートにしたくなってくるが...意味無いか。
ビクターので同じことができるが、一向に話題にならないのはなぜだろう?
CDトランスポートだと盛り上がるのに...。同じようなものだと思うが。
クロックだけは交換したいのかもしれないが、その程度ではないかと。
コンポにつけたのがハイエンドのマニアには受けなかったのかも。
スピーカとアンプを外せば立派なUSBトランスポーターになるような...。エコじゃあないか。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(13)

せっかくできたので、USBトランスポートを検討する。
まずはVS1003からVS1053にしてみたくなる。

その前にちゃんと仕様を考えておくことにする。
I2SのDACもないではないがマイナーな気がする。
やはりここはS/PDIF変換だろうか?
それを前提に検討する。

まずVS1053b は12.288MHzがマスターになっている。
これだと12.288MHz/256fs=48KHzサンプリング標準のChipにつなぐことになる。
こういう書き方もいけないのだが。
ところがCDなどは44.1KHzなので、Chipでも周波数を限定していて11.2896MHzを想定しているものが多い。選択できても、せいぜいが、44.1KHz*384fs=16.9344MHzとか。

そういう理由かどうかわからないが、SDでトランスポートをやっている人は48KHzサンプリングしていた。内部のオーバーサンプリングを嫌ったのだろうか?
ただ、CDは44.1KHzサンプリングだし、サンプリングそのものは、その方(44.1KHz)が自然に思う。どこでオーバーサンプルしても同じような気がするが。
実際にVS1003ではちゃんと鳴るのでVS1053でも同じだろうから、気になるのはI2Sだけだ。
では、CDで44.1KHzサンプリングの場合、I2Sはどう出すのか?ということだ。

推定すると(違っているかもしれないが)
・VS1053はI2SのMCLKを出しているがこれは、データシートを読む限りでは12.288MHzに固定されているようだ。送出レートは48K,96K,192Kから選択できる。
仮に48Kに指定したとする。(レジスタ設定でできる)

・44.1KHzはオーバーサンプリングされて48KHzデータとして出力される!!(多分)
 これは多分、どんなサンプリングレートだろうが何だろうが、そうなるのではないかと思う。
 というのもWebで以下の記事を見つけた。VSのChip元なので間違いないだろう。
(これは日本でSDトランスポートを製作されている人の掲示板の記載)

A support staff of VLSI company pointed out our misunderstanding.
The frequency of the clock injected to VS1053b just confines the sampling rate of I2S LRCLK output.
12.288 MHz -> 48KHz, 11.2896 MHz -> 44.1KHz
Contrarily, even in the case of 12.288 MHz clock, VS1053b can accept 8,16,32,44,1,48KHz WAV files. The chip converts sampling rate (up-samples) automatically and internally.
Hence, our transport can handle WAV files of all the frequencies listed above.

まあ、音に対して、こういうオーバーサンプリングの影響があるかどうかは不明点もあるが、それはこの際よしとすることにする。
すると例えばSPDIF変換でCS8406を使うと、48KサンプリングのS/PIFデータになるはず。
S/PDIFはSyncによって同期するはずなので44.1Kでも48KHzでもいいというか。
それにVS1053が48KHz固定なら余計やりやすいような気がする。

と考えているうちに...
なんでトランスポートなのだろう?と思い始めた。(^^!

まあ、それもいいにはいいのだが、いっそI2SのままD級アンプに入れたらどうかと。
以前エレキジャックのD級アンプで、そういうのが販売されていたらしいが、今は無い。(TT)
これはI2Sがあったというわけではなく、内部に存在していたので改造でつけるという。
そういう意味なら、D級では幾つかあるかもしれない。
探してみると、まあ他にもありそうだし。
そうなるとUSBメモリからアナログを介さないフルデジタルアンプになる。(^^)
USBメモリ->I2S->D級アンプ
になる。
USBメモリ->I2S->S/PDIF->高級DAC->高級アンプ
には負けるか...。価格では勝つだろうが。

しかし、最近のD級は優秀で、そう悪くないと思っている。駆動力もある。高級アンプとの差も僅少のような。
むしろスピーカの影響が膨大なような。
余計なアナログがないとすると、
「USBメモリ->I2S->D級アンプ」
はとってもいいのかも。


by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(12)

なんとなくできたので、秋月の改造のまとめなど。

・SCI0
 今のRS232Cコンバータを介さないものを外部Pinに出す
 RS232CコンバータがSMTなので面倒。
コンバータがほしいのはSCI1だけなので、全部はずして、SCI1だけ外付けで用意したほうがいいかも。
 Pinは出す部分はある。
 SCI0は「SPI」「DMA」のために必須になる。

・SCI3
 本来はこれがSDの予定だったように思うが、これも外付けでいいのかも。
 これは、まだトランジスタに出ているし、外部Pinも出しやすい。
 実際作ってみるとやはりリモコンがほしくなった。(^^!
SCI3からキャラを送ると一応動くようなつもりでプログラムだけ入れておいた。
Debugしていない危ない感じはするのだが、そう使うのがよさそう。

・リセット
 外部で作成するのもいいが、せっかくスイッチがあるし、Pinに出してほしかった。
 AVRがあるので一応出しておいた。
 ただAVRのリセットはISPでかけなくなるのでショートピンで切れるようにしないといけない。

・SL811
 クロックは推奨回路に改造。
 これはやらないとまずいような感じ。
できれば、SL811のリセットをH8にやらせたいが、まあ最悪リセットSWがあるから我慢。

ううむ。結構大変かも。(^^!
でも自分で最初から組むよりは改造の方が楽だし。(^^v

ついでにVS1003の改造。
・XDCSとDREQにノイズがのる
 XDCSは入力なのでケーブルなのだろうか?
 するとDREQは受け側か?
 いずれにしても今はこの位置に10P入れてある。
無いと誤動作していた。AVRは無事だったので実装のせいかもしれない。

後、改造はしていないが、このユニット
・ACアダプタを抜いておくと出力は無音
なのだが、
・ACアダプタをつなぐと(電源を入れなくても)大きなノイズが出る
再生すると止まる。
なのでヘッドホン端子に510Ω程度を入れてみたが、小さくはなるがハムが出る。(TT)
電源がないのにちょっと悲しい...。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(11)

なんとなくせっかくできたので、使ってみる。

すると、電源投入でUSBが認識しない。
どうも5回に1度はそうなってしまう。(TT)

SL811が動かないというか...。
但しレジスタの読み書きはできている状態。

最初はSL811の初期化を疑った。
何度も何度もコードを修正してみたが、それでも一向に改善しない。(TT)

それならばリセットスイッチでも同じことが起こりそうなものだが...
・1度電源投入でうまく立ち上がると後は何度リセットしてもうまく行く
・1度電源投入でうまく立ち上がらないと後は何度リセットしてもうまく行かない
という感じ。

リセット回路とか電源の立ち上がりとか見直したが異常はない。
こういう感じで1日つぶしてしまった。

思い悩んだあげく、「もしかして発振しないのでは?」ということに行き当たった。
ただ不思議なことにこういう書き込みもあまりないが、発振が不安定なことが書いてあった。
クロック関係のエラッタもあるので、そういうロットなのかもしれない。

早速いろいろやってみた。
例えば、セラロックに変更すると、立ち上がる頻度は増えたが、USBがすさまじく不安定になりやめた。(^^!
元々秋月の回路はCypressの推奨回路ではない。コンデンサも15pだし。
推奨回路は以下。この100Ωがミソのようで、これで安定した人もいるようだ。

また、22Pも秋月のは15Pだ。

この回路は凄くデリケートらしく、変更するとしょっちゅうクロック停止や不安定になっていた。
そこで思い切ってCypress推奨にした。
・秋月のから15Pと1Mと水晶をはずしてしまう。
 外さないと推奨回路にできない。(TT)
・外部で水晶に細工する。

ちゃんと22Pをつけ、100Ωもつける。
・それを再び組み上げる。

ううむ。ま、いいか。

でやってみると、これが安定!!
まあ100回もやったら出ることもあるかもしれないけど。
調子にのってやっていたら今度はSL811がリセットしないことが...。(TT)
SL811のリセットはH8のポートにしてほしかったなあ~。

SMTの改造は面倒なので、プログラムだけ書いておく。
ついでにトーンコントロールも実装しておく。

やっと使えるレベルか...。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(10)

できるにはできたが、なんか今一。(TT)
ケースを想定していないというか。


念願の(?)ランダム再生も実装することにした。
EEPROMは
・演奏曲番号
・ボリューム
・再生モード
などを記録している。
スイッチは単純に4つにした。
<停止時>
1)再生モード(順次/ランダム)
2)音量Up
3)音量Down
4)スタート
<再生時>
1)なし
2)前の曲
3)次の曲
4)停止
なお、mp3、wav、wmaが再生できる。
まあwavで途切れガ無いので他はOK。(^^v

VS1053にしたいところだが、その前にケースに入れるべきような。
電源SWもリモコンもないが、スタンドアロンで動作できる。
数時間は安定動作している。

USBは今のところ3種やってOKだが相性はあるかもしれない。
手持ちでやったので、それ以外が危ないが上海問屋(トランゼント)はOKかも。

音はmp3はmp3。ただノイズが少し多い感じ。
wavはそれなりにいい感じである。(^^)
でもVS00XXの出力だしなあ~。
まあ制御としてはなんとかできた。(^^v
費用は¥7000ほどかな?
時間が大変だった。

こんなの作る人っていないだろうなあ~。
mp3だけならもっと安いKitもあるし、格好もいいし。
wavのためだけって感じだよなあ~。でもそれって結構しんどい。メーカが外したくなるわけだ。

MMC/SDでやるのも凄いが、まだUSBよりは情報があるような...。
SCI3とかもDMAできたら、かなり高速なSDプレヤーができるかも。
そういえばSDでWAVトランスポートをやっている人がいる。
192KHz/24bitだと、44.1K/16bitの6.5倍高速。凄い!!

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(9)

H8のDMAでなんとかwav再生はできたが、ブロック転送の欠点もある。
以下はその対策というか...。

1.ファイルの最終にゴミが残ってそれを転送してしまう。
 これはバッファを0クリアした。
 最初、プログラムクリアしたらwavでこけてしまった。(サイズによるが)
そこでクリアしたバッファを用意してそれをDMA転送してクリアした。(^^!
さすがにDMAは高速で瞬間的に終わってしまう。
なんせH8の外付けで2MByteもあるわけで、8Kごときを沢山とってもおつりだらけだし。

2.次のファイルのバッファクリア
 今度はVS00XXに残るデータの話。
よくわからないのだが、どうも最後のデータが残るらしく、2048の0を送るのが慣例らしい。
ソフトリセットでクリアしてくれてもよさそうだが、それがしきたりなのだろうか?
 これはバッファを2048クリアするためのコマンドをAVRに実装した。
データはH8なので、結局AVRは
・1クロックモード(XDCSはそのまま)
・32クロックモード(XDCS制御付)...使っていない
・2048クロックモード(XDCS制御付)=クリア用
・8192クロックモード(XDCS制御付)=DMA用
の4モードを搭載し、H8からの2bitで切り替えるようになっている。

確かに一番最初に音を出すとそういう感じの音がするような...。
でも、ハードリセットも出しているのだが...。

まあ曲間が一番時間が自由で、結局ここでいろいろ処理するのがよさそう。

3.音量調整で再生が止まる
 DMA中はAVRがXDCSを管轄していて、H8はわからない。そのためXCSを発行できない。
できるのはDMAが終わった時。ということは、次を送らなくてはいけないというか。
 まあmp3ならともかくwavでは厳しいものがある。
つまり
・転送終了を待つ
・ボリュームコマンドをかける
・転送を再開する
とやらなくてはならない。厳しいのはDREQとは無関係なこと。
 などとも思ったが、個人的にどうもデジタルボリュームが好きではない。
そもそもどこか電源を切っても覚えなくてはならないし、直感性がない。
 こんなの音量を最大に設定しておいて、出力にボリュームをつければ余計便利なような気がする。
別段ここでやっらないといけないこともなさそう。
 他にもトーンコントロールなどもそうか...。(つけてないが...。)

 ちなみに曲送り(戻し)はブロックで切ることができるので問題なし。
8Kぐらいだとレスポンスも良い。(mp3とwavでレスポンスが違うのも...。)

と割り切りも進んできた。(^^!

やっとスタンドアロンで動かす元気が出てきた。
で、LCDとSWとEEPROMをつけることにした。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(8)

さすがにH8とAVRがあると面倒。(TT)
でもAVRはそんなにたいしたものではない。CPLDよりははるかに有難い。

でもってやった結果。
こんな感じ。(wavを再生しているところ)

一番上のDebugというのは
LがUSBからファイルを読んでいる部分。
Hがお休み時間。つまりAVRの転送終了を待っている部分。これがなくなると転送ミスする。
転送が終わると、DMAをかけて再びLになる。
下がDREQとSCKで、これは忙しく出ている。(殆ど間断ない。)

基本的に「読み込み時間」<「転送(再生)時間」でないと音楽プレヤーとしては成り立たないわけで、H8は毎回転送終了を待つことになる。
この時間は操作関係に利用できる。
wav再生ではさすがに厳しく、読み込みの10%程度が待ち時間になる。
一方DMA転送は、それとは別にバックグラウンドで処理されているのがわかる。この転送にはCPUは携わっておらず、AVRがクロックを出しているだけで後はDMAが処理している。

やったーーー。wavが再生できた!!
ちょっと感動的だった。
ううむ全然落ちない。バッファは8Kでも16Kでも32Kでも、いいようだ。
この休み時間に操作を見るが、反応を上げるには8Kの方がよさそう。
ただ音量などのコマンドを出すと一旦転送が止まって変な音がする。

それと、8K単位にしろファイルの最終にゴミが残ってそれを転送してしまう。
DMAは一括転送だし、ここが泣き所...。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(7)

予想通り、並列転送型でこけてしまった。(TT)
まあUSBの250K/Sも1Byte4uと考えると立派ともいえる。
これにSPI出力転送を足して、176KB/S以上出せる魔法のような方式は???

ここにH8ならではの方式がある。
その名はDMA。SCI0はDMAの転送先に使える。(ここでSCI0にした理由が...。)
DMAはハード処理なのでプログラム負担がない。バスはとられるが、たかが知れている。

が、しかし、VS0XXXにバースト転送してもいけない。音楽再生中はバッファフルになってDREQが落ちる。
これで悩んだ。
で以下がこの記事の真骨頂というかエッセンスというか。
最早これだけで成り立っているというか。

・H8のSCIは外部クロックにする
・外部クロックはDREQが落ちると止まり、上がるとまた働く
(H8ではDREQは見ずにDMAが完了したかどうかだけ見る)
・外部クロックは予定されたバイト数を出すまで続ける。
例えば8KByteなら8KByteのクロックを出す

CPLDかと考えたが、この程度ならAVRでできる。
ただVS0XXXのXDCSなども制御するので8pinではなく、20pinのTyny2313にした。
秋月で...
AVRマイコン  ATTINY2313-20PU
1個 ¥100
安い!!12Mhzで動かした。早すぎるとSCKの上限を超えるほど強力!!

【H8(3096)の使い方】
H8でSCI0でDMAをかける。
クロック(SCK0)は外部入力にする。
8Kなら8Kの転送指示を出し、後はDMAにまかせる。
DMAはH8が管理しているというより、AVRが出すクロックで送信速度が決まる。

【AVRTiny2313の使い方】
外部を12MHz程度にすれば、PortのOnOffで4MHzのクロックは楽勝で作れる。(タイマは不要)
32Byte単位で送信し、XDCSを制御する。
DREQを見て、Lになれば一旦止め、Hになれば再開する。
8Kなら8Kまでこれを繰り返す。
通常の通信用のSCKも必要なので、クロック切替端子で「XDCSを出さないで1クロック出す」モードもつけておく。
H8からの指定は外部割込みで受けて、取りこぼしがないようにする。

H8とのハンドシェイクであるが、基本的には
・DMA転送
 DMAの終わりがAVRが全部送り終わった時点
・クロック転送
 送信レジスタがエンプティで送信完了になれば送り終わった時点
となる。
XCS、MOSI、MISO、XRESETはH8側で制御する。
AVRはSCK、XDCS、DREQを処理する。

こんな感じ。

どういう動作になるかというと...
・H8ではUSBを読み込む
 例えば8Kなら8Kをバッファに入れる
・H8でSCI0でDMAをかける
 AVRに「8K送ってね」と頼む
・H8は次のバッファにUSBを読み込む
 前とは別のバッファ(前のバッファは転送中なので)
・H8でDMAが終わったか見る
 終わっていれば、AVRに転送依頼する
...を繰り返す。

 VS10XXは2048Byteのバッファがあるので、フルであるならwavでも10ms程度は持ちこたえられる。この間にDMAをセットしてしまえばいいだけである。

DMAはバスを使うがプログラムを実行するわけではないので非常に高速で負担がない。(^^)
欠点と言えば、転送が小さな単位ではできず8Kなら8Kを送ってしまって中断できない。(^^!
32Byte単位のDMAもありだが、今度は設定が大変だし、細かすぎて意味が無い。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(6)

基本的なプログラム構造として2種類ある。

1.逐次転送型
 例えば「読んで」「送って」「読んで」「送って」...を繰り返す方式。
 一般的なmp3の製作例ではこれが多い。
VS10XX系は2048Byteのバッファがあるのでそのあたり(2048づつ)読んでは送るのが効率がよさそう。
大きくすると、FATには(平均速度として)有利に働くが、音源にデータを渡す時間間隔が延びるため転送が間に合わない可能性がある。

 まずはお手軽にこの方式でやってみた。
とは言えH8にはSPIがない。かと言ってIO転送は遅くてとてもではないが、350KB/Sなどは期待できない。
 SPIはないがSCIで実現はできる。この場合クロック同期転送を使う。
 VS0XXXの場合はSCKに24.576MHz/6=4M程度のクロックが使えるので500KB/S程度まで出せるはず。

【秋月H8の使い方】
SCI3を使う向きも見受けられるがSCI0を使った。(この理由は後述するがDMAを期待している)
SCI1はターミナルでそのまま。
SCI0は秋月はRS232Cのレベルコンバータに入っているので、これを浮かせる必要がある。
幸いにしてSDカードらしき部分があり、ここに3.3Vもあるので、そこから引き出す。
ついでにリセットも出しておく。
これでジャンピング2本でパターンカット2箇所になる。
ただ、ここのPinは他のコネクタとは半ピッチ(1.25mm)ずれているので、ここにピンをたてても乗らない。(TT)

【H8(3096)の使い方】
H8ではSPIは難しいと考えられるのはRS232CがLSB1stだから。
ただ3096はスマートカードが使えるのでMSB1stのレジスタがある。
SCMR0 = 0xFA; // MsbFirst送信を設定
とやるとMSB1stにできる。

これでどうだ!!とやってみると、速度は64KB/S程度しか出ない。(TT)
まあmp3はちゃんと音が出るが、wavでは音楽にならない。(TT)
原因は
・FATに対して2Kのバッファは小さい
・いくらSPIがハードでも1ch単位の転送ではかかってしまう。(1Byte=8usほどか?)
である。

2.並列転送型
 これは、例えば
・フォアグラウンドで「読んで」おいて
・バックグラウンドで「送って」
...を繰り返す方式。
当然ながらダブルバッファになり、ピンポン転送を行うことになる。
この場合はバッファは大きくとれる利点がある。

 こうやるとマルチタスクになるが、例えばタイマ割り込みで1msで512Byte送るのなら512KB/S出せるはずである。
 とやってみると、これが全然。当然だが
・USB読み込み+音源転送で176KB/Sを満足しない(つまり音源転送が遅い)
・USBでSOFを止めているため長期の割り込みでUSBがこける
となる。(TT)
 割り込みでこうであればマルチタスクであっても、後者は回避できても前者で引っかかる。 

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(5)

紆余曲折をしながらなんとかUSBメモリが動作するようになった。(^^)
実際は凄くかかっているのだが、そこを書いてもしょうがないし。

早速、速度を測定してみることにする。
テストは4MByteを読み捨てする方式で行った。

最初は全然速度が出なかった。
おかしいと思って調べると、

【SL811の使い方】
SOF(1ms単位に出る)に1パケットしか転送しない。
これはBulk転送でもそうなる。
つまりSOFを出すと1msに64Byte(64KByte/S)しか出ない!!
高速化するにはHUBをあきらめてSOFを出さないこと。

ことになる。
そこで強制的にSOFを止めるとこの4倍(250KB/S)は出るようになった。
ただSOFを止めるためHUBは使えないのだが、メモリを直接さすのでそこはあきらめても良いように思う。

ELMさんのページにもあるが、FATはオーバーヘッドがつくので、読み取りサイズが小さいと不利になる。
大雑把ではあるが、
・32K単位の読み取り:250KB/S
・512単位の読み取り:125KB/S
である。それ以上増やしてもあまり変わらないことから限度はどうも250KB/S程度らしい。
つまり転送は1Byte4usほどで、それ以外がオーバーヘッドである。
ちょっと目標の350KB/Sには及ばないが、今度は音源への転送を考えてみる。

【FAT-FSの使い方】
オーバーヘッドを少なくするには、沢山読む。
例えば512*16読めばオーバーヘッドは1/16になる。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(4)

というので早速作ってみた。

音源モジュールとは先に述べたように3.3VなのでH8の5Vとは、レベルコンバータが必要になる。
秋月に
3ステートバッファ(フラット) TC74VHC244F(5個入)
1パック ¥100(税込)
というのがあるので買っておいた。
ただ、これはDipではないので
SOP28ピン(1.27mm)DIP変換基板
1枚 ¥80(税込)
もあったほうが良い。

まずUSBメモリの読み込みからはじめる。

USB_Hostのプロトコルスタックであるが、Cypressのサンプル(AVR用)をH8に書き直した。
ただ、これにはマスストレージドライバがないので、ここは自作した。
マスストレージドライバはSCSIインターフェイスで
・テストユニットレディ0x00
・リクエストセンス0x03
・ リード・キャパシティ0x25
・拡張リード0x28
・拡張ライト0x2a
の5つを実装すれば動作する。

FATはELMさんのFAT-FSを採用した。
これは非常に素晴らしい。感謝感謝。m(__)m

理解するのにかなり時間がかかる。
モジュールを買えばよかったのかしら...。
やはりこの手は「使えるライブラリ公開」がChip屋さんのセールスではないかと。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(3)

USBのHostが決まったので、今度は音源モジュールを探す。

この手はVS10XXが有名で例外に漏れずそれを採用することにする。
本来ならAS1053というChipを使いたかった。
これはI2Sを内蔵しているので、SPDIF変換も可能そうだ。
Chipも秋月で@700だ。
でも...外付けが面倒。(TT)レギュレータは3.3V以外に1.8Vがいる。
秋月ではVS1011はPt板につけて@700なのだが、VS1053はやってくれないのだろうか。(TT)

結局は軟弱に日昇のMP3 Decoderモジュール(VS1003搭載) を使うことにした。
これは電源は+5Vだが、内部に2種のレギュレータがある。
インターフェイスは3.3Vなので注意が必要。

まあ後で乗せ代えればいいような...。

この音源のIFはSPIである。
SCKは4MHzまであげられるので500KB/Sまで期待できる。
但し内蔵のバッファは2048Byteと小さい気がする。8Kぐらいつけておいてくれたら楽なのに。

H8でSPIはないように思うが、スマートカード対応のものはMSBとLSBを入れ替えることができる。
これと同期式転送をつかえば、なんとかSPIもどきができることになる。

最近はこれに限らず、SPI形式のインターフェイスが増えているのでルネサスさんにもつけてほしいというか。これとI2Cは標準で是非!!

それはともかく、手持ちのボードを使うことにしたが、買っても@2500だし、ここまででで@6000以下とまあまあの価格。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(2)

いろいろと敷居が高いものがあるが、まずはUSB-Hostから検討する。
wav再生は44.1KHzの16bit*2cなので176.4KB/Sの速度が必要である。
USB2.0のHostはあってもフルスピードなのでUSB1.1の12Mbps程度。
ただこれでも1.5MB/Sなのでまともに出れば、転送速度としては申し分ない。

そこで候補をあげると
1.MAX3421(MAXIM)
 SPIのホストコントローラ。GHIエレクトロニクス社から、これを使ったAlFATなるモジュールが販売されている。
日本ではヒューマンデータ社が扱っていたようだが、やめたようだ。
 FATも搭載していて、扱いやすいのだが、転送速度は期待できそうもない。

2.S1R72U6(EPSON)
 これもSPIでマスストレージが扱えるらしい。
 ホームページを見ると資料は登録が必要で企業向けか?

3.BU9458KV(Rohm)
 これはUSBホストから音楽再生まで全部入っているし、SPDIFまでついている。
 対応でwavはないのだが、WMA9Standardとある。なのでWM9でサポートされたロスレスのwmaがサポートされていればこれだけで事足りてしまう。
 ただここも企業向けみたいで、個人向けではない。評価ボードやマニュアルも不明。
 問い合わせすると返事は来たが、どうもロスレスは未対応とのこと。(TT)
高級オーディオ向けじゃないってことだろうか...。

4.USB-Wiz(GHIエレクトロニクス社)
 どうもARMベースのモジュールで250KB/S出るとある。$60と微妙。

5.CH375(日昇)
 こちらはバス接続。FAT内蔵とあるが、USBマスストレージのドライバまででFATは自前で用意する必要がある。
 速度は不明ながら「バス接続」と「@2100(モジュール)」という価格が魅力。
 販売されているのは3.3Vだが、本家には5Vのものもある。

6.SL811(Cypress)
 老舗と言えば老舗で、これを搭載したボードは
・秋月のH8の3096ボード(RAM付)@3750
・みついわさんのSHボード(RAM付)@6300
などがある。

7.USB-Key(Atmel)
 秋月で@3400。これはUSB-Hostにもなりマスストレージも扱うことができる。
開発環境もUSBケーブル1本でできる。

8.VNC1L(FTDI)
USB-232C変換で有名なFTDIのChip。日本ではストリベリーリナックスさんが扱っている。
トラ技でこれでmp3プレヤーを作った例もあるし、同社のページを見るとそういうボードも存在する。
但し、相手はVS1003である。(^^!
内部を見るとDMAもあって高速なのだが、RAMが4KなのでFATでの速度はやや苦しい感じ。
WAVが再生するとは書いてないが、一番近いような気もしてきた。
ただ「内部は非公開でFTDIのものを書き込む」仕様なので、今回は断念。(TT)

まあ他にもあるかもしれないが、ホビーでめぼしいものはこんな感じ。

それならCH375でもいいのではないか?となるが、これでこけたのでさすがに考える。
元々、普通に考えるとwav再生するには176KB/Sの能力が必要になる。
単純に考えても
・メモリからCPU=350KB/S
・CPUからmp3モジュール=350KB/S
が安定に出てはじめて再生できる。
wavはbpsに換算すると
44.1KHz*2ch*2Byte*8bit=1411.2bps
となり、mp3の128Kbpsの10倍以上の速度が必要になる。
なのでmp3ならともかく、この速度はPCだと楽勝でも、組み込みのCPUでは苦しい。

350KB/Sとすると1Byteの転送は3usなのでかなり高速である。
なので
・Host-Chipはバス接続にする
 CH375はIOポート接続されていた。これはクロックなどのOnOffが必要で不利。
・それなりのバッファをつける
 特にFATを搭載した場合には、どうしてもオーバヘッドがつくため、こまごま読むより一括して読み込んだほうが有利になる。
 なので外付けでもいいからRAMがほしい。
という観点で選ぶことにした。

<結果>
秋月のH8の3096ボード(RAM2MB付)@3750
で行くことにした。
(SHでも良かったが、安かったのと多分IOネックになりそうなため。)
後は、後述するがDMAにかなり期待している。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

USBプレヤー(1)

以前に日昇のmp3PlayerKitを買った。
構成はここにあるように「ATmega64+VS1003+LCD」というものでオプションで「USB1.1 ホストモジュール(CH375搭載) 」というのがあり、これも購入した。
ソースコードも付属しており、ISPは必要だが、(これも@1500で売っている)自分で開発ができる。
でもって、サンプルを動かしてみたのだが...
・mp3は音が途切れることがある
・wavは音楽にならない(音が途切れながら再生される)
というのですっかりあきらめていた。

ただ、この進んだ世の中でCDプレヤーならぬメモリプレヤーがあってもいいように思う。
確かにあるのだが、「USBが使える」「wav再生ができる」「据え置き」「トランスポートになる」となると多くはない。
オーディオと言えば
・wav(でなくても可逆圧縮)再生
・据え置き(どうでもいいか...)
・USB-Host(HDDだってつなぐかもしれない)
・トランスポート(内蔵DAに不満な場合)
があるといいのだが。
iPODという手もあるにはあるが、USBが使えない。後は売られている。
HDD内蔵のiPODClassicという手もないではないが。

ビクターのEX-AR3などは候補としては良いように思う。
でもスピーカやアンプは要らないので安くしてほしいというか...。(^^!
5万なので微妙と言えば微妙だし、アンプもスピーカもよさそうである。
プレヤー部だけ販売してほしいものなのだが...。

それやこれやで、自作してみる決意をする。
目標として
・wav再生
・据え置き
・USB-Host
・トランスポートオプション
で材料費は1万以下でやってみる。(^^!

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

iPODをつなぐ(2)

Amazonで即日発送注文したら早速届いた。(今は無料キャンペーンだし)

早速、つないでみた。

さきほどの話ではないがLineOutとはなっているが
・音量はボリュームで変化する
・トーンもイコライザで変化する
となっていて、なんだかヘッドホン風の感じがする。
まあ他にヘッドホン端子しかないわけで、これで我慢することにする。

まずは、mp3の128kbpsを入れてみる。
ううむ。さすがに転送が間に合わないということはない。(^^)
でも音は...上海問屋のと互角程度かもしれない。

スピーカはエクリプスにつないでみた。
スピーカの分はよくなった印象。(TT)

wavデータも再生できる。これは確かにmp3の128kbpsよりは良い。
まあ当たり前と言えばそうなのだが、mp3のKitをやっていたので素直にwavの大変さがわかる。
mp3が仮に1/10の圧縮なら転送時間も1/10まで落としてもいいわけだし。

良い音なのに床置きではあまりなので台を作ることにした。
良い音を聞くのは「おお!!これなら置き台を作るぞ!!」とモチベーションをあげるためかも。

モチベーションがあがった割りにたいしたものはできなかった。(TT)
音とモチベーションは関係するが、モチベーションとDIYの出来は関係ないようだ。(TT)
それでもリモコンを入れてコンパクトな環境になった。

・BGMでリモコンが使える
・120Gまで入れ放題なので同じ曲が出てこない
・(多分)電気もそんなに食わない(携帯用だし)でもエコポイントはない。(TT)

というので、トランスポートこそないが、お手軽なBGM環境としてはいいように思う。
mp3の128kではエクリプスが泣くかもしれないが...。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)

iPODをつなぐ(1)

結局、MP3PlayerKitは製作してみたもののまだまだ改良が必要という現実。
ここまででも1万近くかかっているので、「それなら」とiPODを検討した。

ほしいものを再度考えると...
・USBメモリが扱えること
・WAV(非圧縮)が扱えること
・トランスポータにできること
という内容。
 USBメモリというのを除けばiPODでできてしまう。
・iPODにはLineOutが存在する。
・トランスポータも存在する
という。

1.LineOut
 コネクタを調べるとここにあった。
ヘッドホン出力ではないらしいのだが、後でやってみると音量とは連動するし、トーンとも連動する。(^^!
 それより据え置きで使いたいのでユニバーサルドックを買うことにした。
 いいのはリモコンもついている。

2.トランスポート
トランスポートはWadiaから発売されている。
¥59800とお手ごろというか。(^^!
こいういうオーディオのトランスポータに関しては破格の安値ともいえる。
ただwavを聞いてからにしようと今回はパス。
lameのmp3で320kbpsでも割と良いという話もある。

で、買ったもの。
1.iPOD
 いろいろ調べたが、どうしても聞く曲数が多いほうがいいのでiPOD classic 120Gにする。

2.ユニバーサルドック

3.ACアダプター
iPODにはUSBコネクタだけなのでスタンドアロンで聞けないため

AVケーブルなども候補にはあがったが、コネクタを見る限りは同じ場所から分岐させるだけなのでパスした。
まあドックのピンジャックからとるのもそうかと思うが、それでもヘッドホンよりはいいのだろう。
USBの電源であるが、iPODはUSBの信号電圧を見ているので、普通のものはNGだと思われる。

by   at 09:00  | Permalink  | Comments (0)  | Trackbacks (0)