What's new

MIDIピアノ

2016年9月14日

直接プログラムからMIDIを鳴らすのは結構簡単です。
最近発見したんですけどね(笑)。

まず、MIDI出力デバイスを開いて。
あとは発音コードを送ってやれば勝手に音が鳴ります。
注意すべき点は、MIDIはビックエンディアンであることを常に忘れないことかな(笑)。

そんなわけで、キーボードソフト「MIDIピアノ」を公開しました。

http://kimurashuuichi.com/visualstudio/application/piano.html


このアプリケーションはパソコンのキーボードをピアノの鍵盤にみたてて音を鳴らします。
ただ鳴らすだけなのでぶっちゃけおもちゃレベルなんですが、楽器、オクターブや音の強さを自由に変えられるので、そこそこ楽しめます。

さらに昔作ったMIDI作成CGIを使えば、全盲でもパソコン上で簡単な曲ぐらいは作れます。

http://kimurashuuichi.com/desktopmusiccreation/midi.html


あなたもお試しあれ。

ダブルタップってムズイ

2016年9月5日

おお!
気がついたら9月。

夏休み終わってた。
おいっ子がだるい空気を全身から放ちつつ学校に出かけていった。

今日から本番なんだなー。

昨日、親がスマホに乗り換えるというので一緒に行った。
ガラケー一族としてはスマホに興味ありだからね。

ぼくが「音声読み上げしてくれるスマホを見たい」と言ったら、ショップの店員さんが探して出してきてくれた。
機種はたぶん、SONYのXperiaTM。

なかなかきれいな声だ。
メニューやメールの文書、インターネット検索結果なんかもしっかり読み上げてくれる。

正直、結構つかえそうだと思った。

でも、画面読み上げの音声(トークバック)をオンにしているときは、
一度タップしてカーソルがあたったものを読み上げる。
なので、そいつを起動させようと思ったら、ダブルタップする必要がある。

問題は、そのダブルタップが難しいというところだ。
2回画面をすばやくたたくのだが、これがどえりゃームズイ!

もしトークバックをオフにしていれば、
一度タップするだけでいいんだけどね。

最初は親もトークバックを使ったほうが画面をあまり見なくていいのでらくだといっていたが、
ダブルタップがむずかしすぎるので、トークバックをやめて普通に使うことにした。

見えている人はそれでいい。

問題はぼくのような見えていない人種。

ダブルタップの難しさを実感した。
修行必須だ。

あぁ、またスマホが遠くなった気がした。

MFCの難しいところ(その3)

2016年8月30日

やっと最後の3つ目。

今までのはぶっちゃけ前置きみたいなもので、今回が一番大事だ。
なぜなら今までの2回というのは、目が見えていようとそうでなかろうと主に知識不足という悲しい原因がもとで起こってしまう事故みたいなもの。

でも今回は違う。
目が見えていれば数分で解決することが、目が見えていないばっかりにかなりの時間を費やしてしまった話をしよう。

それは、ウィンドウズからなんらかのメッセージを受け取れるようにプログラムを作ろうとしたとき。

具体的には…。
前回書いたようなユーザーがメニューを開こうとしているときとかに、ウィンドウズからみくみくオセロに「メニューが開かれようとしているよ」というメッセージが飛んでくるのだ。
こいつをうまくキャッチしないとメニューを自由に変更することができない。

ということは、コーディングする際にも
「この部分のプログラムは、ウィンドウズから送られてくるメッセージをキャッチして動く部分だよ」
という手続きを踏まなくてはいけないことになる。

そしてこの手続きをする部分というのがやっかいなのだ。

具体的には、クラスウィザードという専用ツールを立ち上げて、目的のメッセージとそれを受けるプログラム名を選んで関連付ける処理をさせる。
しかし目が見えていない場合、当然スクリーンリーダーでクラスウィザードを読み上げさせるのだが、これがうまく読み上げてくれないのだ。

目が見えていれば何回かマウスの左クリックをするだけでできてしまうらしいのだが…。
ぼくみたいな目の見えていない人間の場合は、ほかの方法を試みるしかない。

まぁでもこのあたりまでは目の見えない生活を10年以上やっていれば普通に起こることなので、そんなにへこむことではない。

しかし問題はここから。
ほかの方法を探そうとネット検索をしたのだが、出てくるページ出てくるページすべて「クラスウィザードを使いましょう!」ときたもんだ。
「おまえらそろいもそろってクラスウィザードの手下かよ!」
と突っ込みを入れたくなるぐらいだ。

そんなわけで手動で何とかする方法なんて載ってなかった。
正確に言えば、ぼくが見つけられなかっただけなのかもしれないが…。

きっとよっぽどクラスウィザードが便利なのだろう。
それにそもそも手動で何とかすることは不可能なのかもしれないというあきらめモードにもなりかけた。

しかし、本家マイクロソフトのページの奥深くに書いてあったのをやっと見つけた。
そのページにしたがってコーディングし動かしてみた。

そうしたら動いたのだ。
やった!
自力で壁を乗り越えたのですごくうれしかった!

実は今回書いたことは、以前すでに書いている。
そのときは、マウスの左クリックを認識させるというような内容で書いているので興味がある人は探してみてほしい。

話は戻るが…。
そのページには心強いことに、マイクロソフトは作成するアプリケーションの設定などはなるべくプログラム上に記述することが望ましいと考えていることもわかった。
なぜならプログラム上に記述したほうが、それを書き換えるだけで簡単に変更ができ、結果柔軟なプログラムができるのだ。

さすが泣く子も黙るマイクロソフト。

ぼくのような視覚障害者のためではなかったが、プログラム上に書いてくれるのであれば…。
そこから設定を理解したり、変更したりできる。

VisualC++は正直、スクリーンリーダーでは使えない部分もあるが、今回工夫しだいである程度は何とかなるものなのだということを体験できてよかった。