超元祖ヨシヲ公式ブログ改β 〜マラビンタの夜明け〜

TESTACH のシクロフレームで組んだロードバイクに乗ってます。メンテナンスとかサイクリング日記とか。
PICマイコンを使った電子工作ネタ、電動ラジコンヘリ、Windowsアプリケーション開発とか気が向いたら何でも乗せる見境なしblog。旧ブログタイトルは ヨシヲたんの日記 。

2006年01月

W-ZERO3 音量コントロール

e8ead1ee.png

ミキサーがなくて(´・ω・`)ガッカリ・・・

という話を書きましたが、もうちょっと調べてみたらWAVE出力の音量というのがあるそうですよ。
waveOutSetVolume で設定可能。
ついでなのでwaveOutGetDevCapsで得られる情報も表示してみたりなんかするテストプログラムを作成。

何の役にも立ちませんがダウンロードはこちら。
http://www.easy-creator.net/will-storage/old/waveoutgetdevcaps.lzh
標準の音量コントロールと結果は同じでした。一応無段階で設定できる点はこっちのほうが優れていると言えなくもないです(ぉ

チャンネル数が1になってます。
モノラルなのかよ!と突っ込みたい。
右音量を変えても音量変わらないのでモノラル扱いだけど実はステレオ?
と思いきやサポートされている機能の「左右独立音量コントロール」はアリになっていたり…。

ドライバが適当?(;´Д`)

一つ分かった期待はずれなこと

W-ZERO3はイヤホン出力の音が小さい。

というのは前から言われてました。

ですがひそかにSDKドキュメントを見てオーディオミキサー関係のAPIがあるのが分かっていたので、ZERO3用ミキサ制御アプリ作ればこれを回避っていうかボリューム設定が自由自在!とか思っていましたですよ。
多分横についてる音量ボタンはマスターボリュームしか変えてなくて、普通のWindowsPCで言うWAVE出力の音量とか上げればマシになるんだろうな、と妄想してました。

で今日試してみようかなーと思ってまずは mixerGetNumDevs を呼び出し。
戻り値は0でした。

( ´゚ω゚)ェー

戻り値

関数が成功すると、ミキサーデバイス数が返ります。利用可能なミキサーデバイスがない場合は 0 が返ります。

( ´゚д゚`)えーーー

というわけで 糸冬 了 orz

Operaのばかー!

例のOperaブックマーク同期ツールですけど。

って、話が長くなりそうなので先に miniSD ベンチツールの新しいバージョンをうpしておきますね。ダウンロードは
http://www.easy-creator.net/will-storage/old/membench102.lzh
こちらから。
バッファとかファイルのサイズを変更可能にして、色々細かい修正しました。
測定結果も MB/s を追加で表記するようにしました。補助単位も自動でつけるようにしたので Kbps とか Mbps とかを自動で使い分けます。どうでもいいかw

で話は元に戻ってOperaのブックマークですけど。
フォルダ分けに対応させようかなとか思ったんですよ。

そしたら…

フォルダのパスが各エントリに書いてあるんじゃなくてエントリの順番で所属するフォルダが決まるようになってるんですよ!
なんだよこれ!

なんつうか…
ネフロみたいにIEのお気に入りそのまま使おうよ。
あれなら共存も簡単だし、中身はタダのiniファイルだからWin32ならGetPrivateProfile系APIで読み書き簡単だし、作成日時とかいちいちファイルに書かなくてもOSが勝手にやってくれるし…

とか言ってもしょうがないのでコツコツやります。
でもやる気がなくなってしまったのでちょっと別の事に手を出すかも(ぉ

話は微妙に変わって。

PocketPC2003 SDK を見ていたらなんとMIDIに関する記述があったのですよ。

W-ZERO3はMIDI音源載ってるらしいのですがJavaアプリからしか使えないという謎のウンコ仕様。
というか、そもそもWindowsMobileにそれ用のAPIがないからっぽいよなぁ。と思ってたのですが・・・!

これは試すしか!

というわけでSDKのドキュメントに載ってたサンプルをダイアログベースアプリに書き換えてビルドして実行。
音出ました。電話のピポパみたいな音(DTMF)が。

え?

えーと。
MIDIメッセージを書き換えてピアノでドレミ鳴らすように書き換えてみました。
で実行。

音出ました。サイン波でドレミが。

…え?

というわけで色々情報を探してみたら海外のサイトで以下のような記述を発見。

The MIDI player embeded with SmartPhone Edition is very very basic... 

The so-called MIDI functionality is nothing else than a way to generate simple and mono-tone sinus waves.... and nothing else. 

If you want to really play MIDI files, you have to write your own MIDI synthesiser... it's a hard job due to the timing constraints. I've done this a few month ago on PocketPC (wavetable based 24 voices stereo MIDI/kar player). It works very well on a PocketPC/PocketPC2002 with a (Strong)ARM processor, but I've not yet tried it with the SmartPhone (quite low processor capabilities due to clock frequency half of the PocketPC one)... moreover the wavetable size is no so compliant with the low amount of memory available on SmartPhone.

一応翻訳しておくと。

SmartPhone Edition に組み込まれている MIDI プレイヤーは非常に、ひっじょーに基本的なものだ。
MIDI機能と言われているものは、単純なサイン波を発生すること以外は何もできない…。
もし、本当にMIDIファイルを再生したいなら、君は自分でMIDIシンセサイザをプログラムで作らなければならない…。これは大変で時間のかかることだ。
私はこれを何ヶ月か前にPocketPCで実現した。(WaveTableに基づいた24ボイスのMIDI/kar プレイヤ)
これは(Strong)ARMのCPUのPocketPC/PocketPC2002で非常に良く動いているが、まだSmartphone(PocketPCの半分のクロック周波数なのでプロセッサの性能はかなり低い)で動くかどうかは試していない…。
さらに、WavetableのサイズはSmartPhoneで利用可能な少ないメモリには合わない。

だそうで。
投稿者はZebigbuildという人ですが、この人の作ったソフトは見つかりませんでした…
まぁ他に2〜3あるからそっち使えばMIDIの再生自体はできるんですが。

他には、MIDIデバイスのドライバを直接たたかないと無理、とMicrosoftの人から聞いたという話も見つかったり。

じゃあ直接たたくにはどうしたらええんじゃ!
という感じです。
なんか Windows フォルダにある PMD.dll が名前からして怪しいっぽいですがROMファイルなので抜き出せないし、某所にあったDLLのエクスポートテーブル表示ツールでも何もでてきませんでした。
JBlendVM.exe を解析とか…ってこれもROMだし。

あーもったいねー!
せっかくMIDI音源載ってるのにOSから普通に扱えないなんて(´Д⊂グスン

midiOutOpenとかを使えるようにしろとは言わないからドライバの叩き方のサンプルコードくらいは出して欲しいっす…マジで…

とは言っても、できるようになったら何かするって決めてるわけでもないんですけど(ダメじゃん)

さくらむすびサントラキタ━━━━(゚∀゚)━━━━!!!!

さくらむすびのサントラが届きましたよ。
っと思ったら梱包がやたらでかい。

そういえばカレンダーが特典で付くんだっけ。

というわけで開封。

さくらむすびサントラ

……!!

でけえよ!!
しかも…こりゃ…とてもじゃないけど部屋に張れねえよ!!!

そんな感じでした。

で同封の注意書きを見たら6月イラスト部分に印刷工程上の汚れが判明とかなんとか。
開封して確認してみると…

(;´∀`)・・・うわぁ・・・

よりによって☆画野朗さんの絵の!しかも顔面!

こりゃ無償で修正版送ることになるよなぁ。南無。

ていうか交換とは一言も書いてなくて再生産版を発送としか書いてなかったりする。
…まじっすか。

miniSDのベンチマーク その2

速攻でご意見いただきました。
W-ZERO3 ソフト関連スレの>>802さんありがとうございますです。

落ち着いて数字を見るとちょっと遅すぎ、というものです。

確かに遅いのでファイル読み書きの際のバッファを増やしたらめっちゃ速くなりました(汗)
増やせば増やすほど速くなってしまうので、miniSDの性能の限界に到達できませんでしたよ!

バッファ 1KB (ver-1.00)
書き込み: 25159ms (1667.12Kbps)
読み取り: 11982ms (3500.50Kbps)

バッファ 10KB
書き込み: 8652ms (4847.79Kbps)
読み取り: 2352ms (17832.93Kbps)

バッファ 100KB
書き込み: 2341ms (17916.72Kbps)
読み取り: 1585ms (26462.49Kbps)

バッファ 1MB
書き込み: 1766ms (23750.31Kbps)
読み取り: 1406ms (29831.47Kbps)

よしじゃあ10MBだ、と思ったら、ベンチ開始した瞬間プログラムが落ちる。
ヒープエリアに収まらなくなったぽい(;´Д`)
2〜3MBにもできるけど最初のダミーデータ準備が長くなるのとあんまし結果が伸びなかったのでバッファ1MBでいいか。って感じに。

でもここで東芝の容量小さいminiSDに変えたら書き込みが遅いのが目に見えて分かりました。
miniSDの性能以上の速さで書き込みができてるってことですね!

というわけでこのへんで決定ということにしときます。
ダウンロードは
http://www.easy-creator.net/will-storage/old/membench101.lzh
こちらから。

おまけで手持ちminiSDの計測結果を再度掲載します。

GREENHOUSE 1GB
書き込み: 7989ms (25200.47Kbps)
読み取り: 7327ms (27477.36Kbps)

TOSHIBA 128MB
書き込み: 20346ms (9895.14Kbps)
読み取り: 7530ms (26736.60Kbps)

おまけ:内蔵メモリ
書き込み: 11332ms (17766.20Kbps)
読み取り: 8986ms (22404.47Kbps)

ビットレートではv1.00の10倍以上になってますね(;´Д`)
東芝128は書き込み遅いけど読み取りはほとんど差がないのね。

うーん。
1.5Mbpsとかでエンコした動画がマトモに再生できないのは、やっぱりminiSDのスループットじゃなくてエンコードのためのCPUパワーが足りないんですね。

このblogについて
このblogは、私のホームページ内の日記コンテンツ…でしたが、もう何年もこっちがメインです。
ホームページはこちら。
http://www31.ocn.ne.jp/~yoshio2/
2ちゃん系掲示板に書き込むときのトリップは ◆GBrDo4K0i. を使用しています。
GoogleAds
最新コメント
ついったー
リンク
すなけ日記
なんて言ったらいいかよく分からないお友達、すなけさんのblog(ぉ
自転車メンテとかマニアドリンクとかトラベラーズノートとか。
hazimelog
湘南のガチムチおにぎり、はじめちゃんのblog。SCOTT FOIL Team Issueとか買っちゃってとどまる事を知らない。
不器用工房
自転車で通勤しているアニメ大好きなギタリスト、S木さんのHP。
月別アーカイブ
livedoor プロフィール

ヨシヲ

  • ライブドアブログ