(日々の記録)デジタルオシロを買った。ランダム表示とタクトスイッチでの制御スライドショー機能は出来たが、電源を入れる度に最初の画像から同じ順番で表示されるのはフォトフレームとしては面白くない。実用的であることをめざして追加機能の開発にもう少し時間をかけてみた。前回までの表示位置を覚えているレジューム機能や、ランダム表示機能、スタンドアロンで画像の切り替えができるタクトスイッチの実装などである。忘れていたリニアPCMプレーヤーの改修(2/6/2011)フラッシュROMを使ったレジューム機能開発のため、以前に開発したAVRのリニア(L)PCMプレーヤーのソースを久しぶりに覗いた。ここでは内蔵のEEPROMに、SDカードのディスク情報を記録し、10枚までのSDカードの頭出しができるようになっている。このやりかたのおさらいだ。Player(以降WMP)でデコードしたWAVファイルのサポートが懸案になっていることを思い出した。これは、LPCMプレーヤーのソースコード公開後、Shuji009さんから指摘のあった不具合である。WMPで、音楽CDからWAVファイルをリッピングすると、WAVファイルの基本的なパラメーターの入ったデータブロック(FMTチャンク)の前に、WMPは何故か附帯情報の入ったLISTチャンクをヘッダーの直後に入れてしまう。これが原因で不正なWAVファイルとみなされ再生されない。チャンクなので、何処にあっても問題はないだろうと言うのがMSの言い分だろうが、これまでのWAVファイルで、ビットレートや、データレングスを規定する最も基本的なFMTチャンクが後に来たものを見たことはない。いう業界常識を無視したいつもの横暴なMSの態度に腹が立って(というのは言い訳で、このときはたまたま猛烈に忙しかっただけ)、放ってあった。修正が一年後というのも気の抜けた話だが、まあ修正しないよりはましだろうと、ソースを見直す。Shuji009さんの言うように修正はあっけなかった。FMTチャンクのサーチのための3ステップの追加とパラメータの入っているアドレスを固定値から相対値に変更する数ステートメントの修正で終わった。これまでのWAVファイルが再生できることは確認したが、WMPが作ったテストするべきファイルを作ることが出来ない。WMPには、MP3や、WMAファイルをWAVに変換する機能がないのだ。やれやれどうしたものだろう。何だと、WMPは音楽CDからリッピングすることができるだけで、PC上のファイルをいじることは出来ないのか。MSらしい虫の良い仕様だ。自分のところに囲いこんで外には行かせないのかなどと、悪態をつきながら、音楽CDを入れて短い曲をWAVファイルにする。バイナリエディターで確認する。CDタイトルなどの漢字テキストが入ったLISTチャンクが、しっかりヘッダーの後に納まっている。よーし、問題なく音が出た。これで心配なくリリースできる。最初、1号機(パラレルLCD)のファームをブレッドボード上のミニLCD(2号機以降)の回路に書き込んでうんともすんとも言わず、動かない、動かないと悩んでいたことは秘密である。いや忘れること、忘れること。自分でも驚くばかりだ。LPCMプレーヤーのハードが2種類あることをすっかり忘れていた(修正したソースは、元記事、「量産を目指したリニアPCMプレーヤー3号機完成」に並べてファイルを置いてあります)。スライドショーのランダム表示の開発(2/9/2011)ランダム表示のためには、乱数を作る必要がある。UNIXの乱数関数rand()は余り評判が良くなさそうだが、とりあえずは今のところこれしかない。ARM用のgccにあるのか試しにコンパイルしてみた。