DigiClock Ver2.03 ついに公開しました。 このバージョンで追加した時報機能は、時計というアクセサリー系ツールには必須機能でしょう。しかし、パソコンから出る音はサウンドカード経由です。パソコンを起動しただけでは音は聞こえてこないという方も多いのではないでしょうか?
実際、私のPC は切替器でアンプに接続しているので、ノートパソコン以外の全て(5台)のPCの音を同時に聞くことは出来ません。(^^;) 各PC に安いスピーカーを接続しておけばいいという話もありますが、それ以前にサウンドカードが装着されていないPCもあります。ファイル・サーバーとして起動させるだけという感じで使っているPC なんか、まさにそうです。
そこで、PC スピーカーを使って音を出させることは出来ないものか? という考えに至ったわけです。このような機能を持つソフト自体、非常に少ないですし、機能としてはまさに実用的であり非常に良いのではないかと自負しています。フリーウェアが多い時計ソフトの中にあって、シェアウェアを名乗るだけの資格を得ているかなと思っています。
おっとっと、このページはため息を吐くページでしたね(^^;) 自慢なんかしてはいけないですね。
PCスピーカーを使って任意の音程を発生させるには、MCI 等の手段は一切ありませんので、周波数設定、時間の管理など全てを自作のクラスで管理しています。そこまでは良かったんですが(^^;) ・・・・・この機能をクラスとしてまとめ上げ、DigiClock へ実装(実際には、その前にPCスピーカー経由でのWAVEファイル再生機能を実装してあり、それは特に問題なく出来ました)した途端に、時報発生と同時にページ違反で落ちるようになったんです(^^;) もちろん、VB コードの中にAPI は多く利用されていますが、それらによって引き起こされているようなエラーではありませんでした。このトラブルの原因を突き止めるために、私は丸2日間、ひたすら、PC の時計を59分55秒にセットし直し、時報の鳴るタイミングを待ってデバッグし続けていました(^^;)
そして、なんとかこの重大なトラブルを回避する方法を発見したのでした・・・・。詳しくは述べませんが、明らかにVB5 のバグです。しかし、このプロジェクトでは、WIN API や外部ファイルを利用しているのでMSKK に文句を言ったところで何の情報も得られないでしょう(^^;) ま、全然、当てにしていないのでどうでもいい事ですが・・・・
しかし、プログラミングとは本当に大変な作業です。機能をクラスとしてカプセル化し、1つ1つは比較的単純な構造で作成する。アプリケーションにそれらのクラスを実装することで部品を組み立てるような感覚で最終的な目標を目指していく。私は、こういう手法でプログラミングを行っています。実際、有る程度のレベルの複雑さまではこの手法で上手く乗り切ることが出来ます。ただ、個々の部品には欠陥が無くても組み合わせたときにのみ、重大なエラーが発生することがあるという事を忘れちゃいけない、と改めて、実感したのでした。
今回のバージョンアップは思わぬトラブルでかなり脳力(^^;) を使ってしまったので、DigiClock 以外のソフトの開発スケジュールに支障が生じそうです。次バージョンのDigiClock にはアラーム機能を盛り込む方針ですが、1、2週間以内の早急なバージョンアップはしないでしょう。
理由は、1つのジャンルだけにのめり込むと柔軟なアイディアが浮かんできませんから、クリエイティブなソフト開発ができないのでね(^^;)