Calendar
2006年07月
Su Mo Tu We Th Fr Sa
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
amazon検索
最近のコメント
Archives
Recent Entries
Search


Links
Powered by
Movable Type 2.65
カテゴリ別アーカイブ
RadioSharkPlayer [14件]
VBA [2件]
VC [1件]
VSTi_ChordMaster [8件]
アセンブラ [2件]
知識 [4件]
TOTAL:

TODAY:

YESTERDAY:


2006年07月17日

_成果無し!

ラジオデバイスを操作するための簡単なUI はできました。
周波数を変えたりなんていう簡単なことしかやりませんが、

リッチエディットコントロール(テキストボックスのこと)のフォント設定や少数もしくは整数の文字列しか入力してはいけないといったチェック処理も入ってる親切な仕様なのですが、

この2日間かけて、出来上がったのはそれだけ!
DirectSoundでのラジオデバイス再生は鬼のように難しく、意味不明。
IMediaControl型の変数の準備までやったけど、どうやらそれだけでは音はなってくれないっぽい( ´ ・ д ・`)ナッチャッテイイノニ…

RUN()とかっていうメンバ関数を実行してもうんともすんとも言わない。
そもそもIMediaControlのサウンド制御用の変数を構築するプロセスがDirectX初心者プログラマには意味不明です。グラフとかフィルタとか他にも沢山の専用の構造体を駆使してやらないといけないっぽいです。疲れた。たぶん、この準備過程にもなにかしら足りない部分もありそうです。何が足りないか?それはわかりません。時間かけて、調べてみます。

たとえ上手くいったとしても、音を鳴らすのにはもうひと仕事ありそうな気配です。
このIMediaControlで制御した出力を更に音声出力へ引き渡さないと音が鳴らないとかそんな感じになってるんじゃないかと予測します。じゃないとSoundデバイスのどれで鳴らすかとかも指定しないで勝手に音が鳴るとかいう、ありえない世界になってしまいそうだから。

ひょっとしたらファイルに録音するほうが簡単なのかもしれないね。付属ソフトでも録音だけは出来るみたいだし…

また来週だね。

とりあえず、今日までにやったことは、
●オーディオデバイスを探索処理完成
●RadioSharkのオーディオデバイス取得処理完成
●はじめての再生時には各種オーディオコントロール用の変数にオーディオデバイスとの関連付けを行う処理を作成(たぶん未完成)
●2回目以降の再生および、停止(ストリームなので一時停止機構はいらない)処理の制御作成(たぶん未完成)。

ここまで。音が鳴ったらWin用初のRadioSharkPlayer(再生専用機)として、ここに実行ファイルをこっそりアップロードしてみたいと思います。やっぱお手軽に操作できるプレイヤーって大事だと思います。

できるかなぁ。心配。
パソコンって複雑ね。

以下はオーディオデバイスを取得したところのデバッグ画面です。
RadioSharkPlayer3.png

Posted by yo-net at 23:13 | Comments (0) | TrackBack(0)

2006年07月10日

_USB通信できた。

USBで書き込み信号を送って
○周波数の変更
○AM・FMの切り替え
AM
0x00 0xC0 0x12 Gb Lb 0x00 0x00
FM
0x00 0xC0 0x02 Gb Lb 0x00 0x00

(Gb Lb は繋ぎ合わせて出来る16進数周波数でAMなら0x01C2を加えたもの FMなら 0x0358 を加えた値の0.8倍が実際の受信周波数になる。単位はAMのときHz FMのときMHz
○照明(青・赤ON/OFF)のコントロール
青LED ON
0x00 0xA0 0xFF 0x00 0x00 0x00 0x00
青LED OFF
0x00 0xA0 0x00 0x00 0x00 0x00 0x00
赤LED ON
0x00 0xAF 0x00 0x00 0x00 0x00 0x00
赤LED OFF
0x00 0xA8 0x00 0x00 0x00 0x00 0x00
○現在の周数問い合わせ
0x00 0x80 0x00 0x00 0x00 0x00 0x00

ができました。

SnoopyとかっていうアプリでGriffinTechnologyのアプリを動かしたときの
USBに流れる信号を解析してみました。解析しきったときに物凄い達成感を得たわけです。

ところが!

自分とは別の人がUSBに信号をおくるだけのアプリを公開しているようでした。

ひまつぶし空間 ne533さん
http://www.geocities.jp/ne533/index.htm
です。

しかも青の点滅とか明るさまで調べていました。すげー。
ne533さんのほうが俺よりずっとスゴイやん!
因みに
明るさは青色に限って調整可能らしく
0x00 0xA0 NN 0x00 0x00 0x00 0x00

(NNには明るさの度合いを示す16進数が入るそうです。大きいほど明るい。
点滅は
0x00 A1 NN 0x00 0x00 0x00 0x00

(NNには点滅間隔の長さを示す16進数が入るそうです。大きいほど長い。

点滅とか明るさとかの調整ってどういうときに使うんだろ。
すごいな。面白発見だ!ne533さんすごい!

ne533さんの解析結果とも同じになりました。
ne533さんは双方向通信はしてないみたいで
現在周波数の取得については触れられていなかったので、自分の収穫はたったのそれだけ。所詮2番煎じっすね(汗

しかも、現在の周波数取得なんてアプリ側で管理すりゃいいだけの話だし…
とにかく、返答時は
0x00 nH Gb Lb 0x00 0x00 0x00 が返ってくるね。
(nHは波長種別信号が返って来てAMなら0x12 FMなら0x02
(Gb Lb は繋ぎ合わせて出来る16進数周波数でAMなら0x01C2 FMなら 0x0358 を差し引いた値を80で割った値が実際の受信周波数になる。単位はAMのときHzでFMのときはMHz。

付属ソフトではなぜかこの問い合わせ処理をWindowが実体化されてるあいだず−っと2秒間隔で繰り返してるね。
Windowを閉じるときときは今の状態に合わせたLEDの色を更新してる。何がしたいのかさっぱりわからない挙動だな。録音し終わった後にLEDの色の更新が失敗するとかっていうのがあるのかもしれませんね。

この付属ソフト単体で再生こそできないもののとりあえず通信信号だけは
正しく出してるみたいです。

このGriffinTechnologyという会社を集団訴訟で訴えれば勝てると思うくらいにWinでは十分な動作をしない。Winでも動くとか言って販売してるくせに。8000円返せって言われてもおかしくない状況ですよね。
この付属ソフトのせいで、ストレスをかかえて生きてる人が日本に何人いると
お思いなのでしょうか?え?、勝手に日本で使うな?…うん、そういうことでしたね(汗

とにもかくにも、一通りの通信が出来ました。
はじめてUSB機器を自分のアプリで動作を操作することができて感動ものです。
VSTで音がなったときくらいの感動が再び!あのときの感覚によくにています。

MIDI信号もUSB信号も比較的わかりやすいし、操作していて楽しい信号だと思いました。

ラジオ音声のストリームをしているデバイスを取得しないとなぁ。とりあえずDirectSoundでやってみっか。mp3録音がめっちゃむずかしそうだなぁ。やるからには、エンコーダーもプログラムに内臓したいなぁ。ま、とりあえずwav録音ができればいいよね。
あー、設定ファイルとか、UIもそろそろ作りこまないといけないね。
今のはUIがないのでラジオ聞くまでの一連の流れがハードコーディングされてる状態。
あいたたた。

画像は、デバイスに現在設定されている周波数を問い合わせて、文字列変数に波長種類(AMorFM)と整数変数Frequencyに1242Hz(日本放送)を取得したところのデバッグ画面です。


Posted by yo-net at 04:39 | Comments (0) | TrackBack(0)

2006年07月09日

_RadioSharkをなんとかしようと思います。

正直DTMのVST、一回消えてから、もう一度同じ事をやる気が起きませんでした。
というわけで、気分転換に、RadioSharkをなんとしようと思います。

とりあえず、アプリ単体で
再生
予約mp3録音(再生無し有り選択化)
ボリュームコントロール
AM FM切り替え
周波数変更・放送局選択方式
ランプコントロール

これだけ出来るようにしようかなって思っています。
とりあえずこの1日で、デバイス名とかデバイスパスの取得までやってみた。
画像はデバッグ画面で、変数の中身をウォッチしてるところっす。
DeviceNameっていう変数とMyDevicePathNameっていう変数が今日の成果。
まじで、低レベル。たったこれだけのことに1日。なけてくるよね

使うのは楽なのに、USB通信って切れそうなくらい面倒っす。

現状は複数のアプリを使って、なんとかやってました。
正直、ナインティーナインのためにあれこれのアプリを使って予約設定を
日々繰り返し、自分の貴重な時間(5分程度だけど)が奪われるのがイヤになりました。

かくして、プログラムで音なんか鳴らしたこと無い、よねっとの挑戦がはじまったわけであります。おとなしくDTMのVSTアプリ作ってた方が楽だったかもしれないっすね。

Posted by yo-net at 05:09 | Comments (0) | TrackBack(0)