あまちゅあプログラマ 活動履歴 08/04 〜 08/10

08/10

日中、とんでもないことに気づいてしまったのです!!
プログラマ的話題ですが、ちょっと書かせていただきます。


ボクは、ダイアログプロシージャを次のように書いています。


HRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
    switch(msg)
    {
          // あれこれ
    }
    return false;
}

関数の戻り値が HRESULT なのです。手持ちのMSDNライブラリによると…[ MSDNライブラリ ] によると、このダイアログプロシージャは


BOOL CALLBACK DialogProc(
  HWND hwndDlg,  // handle to dialog box
  UINT uMsg,     // message
  WPARAM wParam, // first message parameter
  LPARAM lParam  // second message parameter
);

と、戻り値を「BOOL 型」にしないといけないと、書いてあるのです。
しかし、以下のようなコードを書くと、「ウィンドウが移動できなくなる」等の問題が発生し、ダイアログの動作がおかしくなってしまうのです!^^;


// 戻り値を HRESULT から bool に代えてみた。
bool CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
    switch(msg)
    {
          // あれこれ
    }
    return false;
}

「しっかり、戻り値を bool にしとるやないか〜!!なんで、動作がおかしくなるねん〜〜!!(涙」と、仕方なく HRESULT と記述していた日々を送っていたのです……
!!今日の日中、プログラムにつかれて、ぽてち食べながらの休憩中に気づいてしまったのです。

bool」 じゃない……BOOLじゃないか!!

大文字小文字を間違えていました……というより、BOOL は内部で bool に置き換わるという先入観がいけませんでした。前に調べたのですが、「BOOL」は、内部で 「int」に置き換わるのですよ!!^^;
戻り値の型が、4バイトと1バイトじゃ、トラブルが発生するのはあたりまえですね…

…と、ふと思い、[ 最新版のMSDNライブラリ ] で、この [ ダイアログプロシージャ(文字コード : UTF-8 使用です) ] を調べてみたところ…


INT_PTR CALLBACK DialogProc(
  HWND hwndDlg,  // ダイアログボックスのハンドル
  UINT uMsg,     // メッセージ
  WPARAM wParam, // 最初のメッセージパラメータ
  LPARAM lParam  // 2 番目のメッセージパラメータ
);

…って、戻り値の型が変わってるんかい!^^;
とおもったら、内部では結局「int」に #define されてました……なんだかなぁ……


…と、明日はコミケ3日目ですね〜 ^^
ボクも一般で、参加する予定です。 いやはや、今年の夏は、どんな感じになることやら。(笑

08/09

コミケ1日目参加の方、おつかれさまでした。^^
コミケ2日目参加の方、がんばってください。^^
ボクは、3日目に死んできますので。(ぉ

さてさて、今日は、今の今まで(10日の午前3時ぐらいまで)、完成したアレンジの曲のマスタリングをしていました。 …まぁ、マスタリングとかっこいいコト言ってますが、結局のところ「XGWorks+SW1000XGで、複数のWaveファイルをならして、ボリューム調整しているだけ」なんですけどね。^^; あ、少しはエフェクトとか掛けて遊んでますよ〜。

…とまぁ、こんな感じで今回はMIDI的な技術話を少々させていただきましょう。…またもや、一部の人しかついて来れない話題です、すんません。^^;

さて、ボクが曲を創る(又はアレンジ)するとき、結構やることは「El.Grand (Piano3) + Flanger」という組み合わせです。個人的に、何でかこれがかなり好きです。(笑 ピアノなのに しゅわしゅわ 鳴っているのがすきなのかもしれませんが、 だからといって、「GrandPiano(Piano1)」とか「BrightPiano(Piano2)」とかの音色じゃダメなんです。必ず「El.Grand (Piano3)」なのですよ。(笑 どうも、この音色だと大分相性が良いみたいです。
ちなみに今回のアレンジでも、案の定この組み合わせを使用しています。……というか、どーもこれぐらいしか発想が出こてないようです。(爆 ^^;

今回、ベル先生のテーマをアレンジしたことは、2日ぐらい前の日記を見てもらうとわかっていただけるのですが、 この曲のアレンジ中に、次のことを発見しました!!

XG 0/126/49 String1# + GS 0/3/50 SlowStrings がグー
XG-String1# は、ボクの中じゃ、どうしようもない Strings だったのですが(笑)、どーも GS音源 の Strings と混ぜるとかなりよさげに鳴ってくれます。 ものすごく厚みが出て、やわらかくなります。

…まぁ、ホントは、この XG-String1# は「生に近い Strings」の音色なんでしょうが………すいません、ボクには使いづらい音色で仕方なかったのですよ。^^;
でも、今回このことを発見して、えらい得した気分です。というか、えらい音が良くて、もう XG-String1#(+ GS-SlowStrings) が好き好きです!(笑

…とまぁ、こんなことがあった今日この頃ですが……プログラムってないんですよね〜 ^^;
ちゅうか、ボクの本職は「プログラマ」なんですけどね。(笑 ^^;

08/08

どーも、今日はまた書く内容に困った日でありまする。^^;

というのも、一言で今日やっていたことがすんでしまうのです。「曲の打ち込みしてました。」という具合に。(爆
ちなみに、打ち込みの調子がかなり良いんですよ! 最初は、どう音を入れ込んでいけば言いのかわからなかったのですが、 どうも「電波」が届いたようで(笑)お昼頃から、えらいさくさくと打ち込みが進みました。…いやはや、MIDI士としては今日は快挙の一日でしたわ。(笑

……まぁ、反面、プログラムは全然進んでいないんですけどね。^^;

…と、よく考えてみれば、明日からコミケですね〜。 1日目の皆さん、がんばってくださいね〜。^^

08/07

今日は、部の集まりがあったので、学校へ行ってきました。
うちの部は、(困ったことに)結構適当なもので、集合時間までは指定されてないわけです… ^^; とりあえず、マイペースに若干自分の仕事を済ませてから 部活に行くことにしました。出発時刻、10:30時前後。
そして、学校の最寄駅に着くこと、12時前後。ボクは、この最寄駅から学校まで歩く習慣があるのですが、またこれが30分近く歩くのです。 ……30分歩くんですよ。この真夏の12時という時刻に!!(爆 ……果たして、生きてたどり着くのかどうか……(ぉ
まぁ必ず歩かなきゃいけないということもないのです。駅から、大学方面への私バスが出てますからね。……とはいっても、ボク的にはコミケ前だからあんまりコストを掛けたくないわけですよ。いくら、最寄駅から学校までの料金が片道200円だといえど!(爆 往復してしまうと、400円……コピー本が何冊買えることやら…(ぉぉ

ついでに千葉にも出てきたので、JTBに行って りんかい線の前売り乗車券 も購入してきました。これで、 りんかい線の乗車はさくさくっとできるわけですね。^^
はっきりいって、あの乗車券買う山のような列には並びたくありませんからねぇ…(笑 ^^;

………ん〜…今日はこれぐらいしか書くことがないような…^^;
ついでなので、今やってることも書いておきましょうかね。

いま現在、ベル先生[ RUNEさん の "ぴヨナ=ピコナ" を参照 ] のテーマ曲の、ノリのよさげ方面の曲アレンジをしています。 ちょっと、プログラムが行き詰まったので、気分転換にMIDI士になってます。最近は特に、曲作りもしていなかったのでなんとなく新鮮な気分です。^^
……まぁ、とりあえずは、自分が楽しめてればいいので、アレンジの完成度は2の次ですケドね。(爆<現段階では

……早くプログラムに手をつけないと、ヤヴァイ状態になるんですが…… 自分で設けた締め切り(α版完成日時目標:夏休み明け)に、間に合うのかどうか…^^;
まぁ、自分で自分の首をしめてるんですけどね………

P.S.
ベル先生は「」のほうが、良いと思うのだ!!(ぉ

08/06

なにやら、夜遅くまで起きてしまっている今日この頃です。^^; ん〜、あんまり生活のリズムを崩すのは良くないとは思うのですが………夜のほうが、涼しくて活動しやすいんですよねー(笑

さてさて、今日は教習所へ行ってきました。 現在ボクは、第一段階の「みきわめ」を受けるためのテストを受ける段階です。
……実は7月終わりに、1回このテスト受けてるんですが見事に落ちまして(苦笑)…… 今回こそは、合格しないと! と、気合を入れ、教科書を読んでテストを受けてみました。

結果。 44点(45点合格です。)

ぐぉぉぉぉ〜〜〜〜〜〜〜〜〜!! あと1点ですよ!あと1点ッッ!!(号泣
もー、シャレになってませんがなぁ〜…… トホホ……

…そんなわけで、また次回かぁ………… と思ったのですが、結果蘭をみると「良」とのハンコが。……?? どうやら、合格みたいなんですよ。 「何でかなぁ〜???」と思って聞いてみると…

「あぁ、2回目の人は、無条件で合格なんだよ。」

……えぇんですか、それで。(笑

08/05

ぬー…今日は昨日の疲れが出てしまったためか、どーもノリが悪い……^^;
というか、今日は延々寝ていた気が居ます。^^;

そんななか、若干プログラムも打ってました。この日記始まってから、全くプログラム打ってませんでしたし…^^;  というわけで、今日はちっとばかし、プログラマっぽいことを書いてみようかと。(笑
ちなみに、プログラマじゃないとおそらくついていけない話です……すんません。^^;


今日作ったクラスは「C9Rect」「C9Point」「C9Size」の3つのクラス。まぁ、見たまんまなんですケドね。(笑
この中で、ちょっと力を入れたのは「C9Rect」です。ソースを出すと…

C9Rect.h


#ifndef _C9Rect_
#define _C9Rect_

/**
 % RECT 構造体を継承したクラスです。演算子の多重定義等をして、便利さを向上させただけです。(爆 ^^;
 **/
class C9Rect :
    public tagRECT
{
public:

    C9Rect();
    C9Rect(const long top, const long right, const long bottom, const long left);
    C9Rect(const RECT& rect);
    ~C9Rect();

    RECT* Centering(const RECT* src, RECT* out);    /// センタリングや!

    C9Rect& operator &= (const RECT& src);
    C9Rect  operator &  (const RECT& src);

    C9Rect& operator |= (const RECT& src);
    C9Rect  operator |  (const RECT& src);

    C9Rect& operator *= (const RECT& src);  /// operator &= と同じ
    C9Rect  operator *  (const RECT& src);  /// operator & と同じ

    C9Rect& operator += (const RECT& src);  /// operator |= と同じ
    C9Rect  operator +  (const RECT& src);  /// operator | と同じ

    C9Rect& operator %= (const RECT& src);  /// センタリングを %演算で可能にする。 // % 演算子にしたのに、深い意味はない。(笑
    C9Rect  operator %  (const RECT& src);  /// センタリングを %演算で可能にする。 // % 演算子にしたのに、深い意味はない。(笑

    C9Rect& operator = (const RECT& src);   /// コピー

    bool    operator <  (const RECT& src);  /// 自分のほうが小さい?
    bool    operator >  (const RECT& src);  /// 自分のほうが大きい?
    bool    operator <= (const RECT& src);  /// 自分と同じ or 小さい?
    bool    operator >= (const RECT& src);  /// 自分と同じ or 大きい?
    bool    operator == (const RECT& src);  /// 同じ?
    bool    operator != (const RECT& src);  /// ちがう?(ちゅうか、!(aRect == bRect) でえぇやんか!(笑

};
#endif // _C9Rect_

とまぁ、RECT構造体を継承しているところがポイントですね。んで、良くある「デスクトップの中心にウィンドウを出したい」って時は


C9Rect desk, src;
::GetWindowRect(::GetDesktopWindow(), &desk);
::GetWindowRect(thisHWnd, &src);

desk %= src;    // これで、センタリングが終わってしまう!

と、こんな具合に % 演算子にて、Rect 同士でセンタリングが可能にしたところが、ボクなりに工夫した点です。

しっかし…この C9Rect は、無意味に演算子の多重定義していますね…(笑) まぁ、単純に いろいろ機能をつけてみたかっただけだったりするんですが……面白そうだったから。(爆

明日は、しっかりとしたプログラミングをしたいなぁ……と思いつつ、よく考えたら 教習所も行かないといけなかったり…… 第一段階の見極め前テストでとまったまま、すでに2週間ぐらい過ぎているような…(爆
ついでに言うと、昨日買ってきた物資の整理もしないと。(笑

いやはや、今週は色々と忙しそうです....
コミケもあるし!(笑

08/04

さてさて!いよいよ、4日です! 過去の日記でも語っている通り、今日は「ワンダーフェスティバル(通称:ワンフェス)」です!!
朝起きてから「うっしゃ〜〜〜!!行くっス〜〜〜〜〜!!」と、気合を入れ………る予定だったのですが、どうも体調が悪い…^^; 腹痛やら、鼻水やら…… どうやら、昨日の夜、微妙に寒かったにもかかわらず薄着で寝てしまったのが、いけなかった模様です………いやはや参った。^^;
……とはいっても、ここで行くのを中止するのも、男として……いや、マニアとして(笑)情けないので、 そのまま準備続行〜(ぉ ^^;
出発する直前には、熱が高くなり汗が大量に出てくるという状況にまで陥ったりしましたが(汗)、移動中、自転車こいでいたら とりあえず良状態はなくなったので、とりあえず一安心です。
…ホントは、こういう状況の時って、主催者さんに迷惑がかかるからいけないほうがいいのですけどね……^^;>スンマセン


さて、無事会場である東京ビックサイトに着きました。時刻は9:00! とりあえず、入場チケット代わりのパンフレットはすでに購入済みなので、 すぐさま入場列の最後尾に移動してみたところ……やっぱりというかなんというか、前回来たときよりも約50mほど下がったところに最後尾があるではありませんか!!
う〜ん…ボクが遅かったのがいけないのか、単にワンフェス人口が増えたのか…… ボク的にはあんまり、人口増えてほしくないなぁ……なんておもってみたり。^^;  コミケみたいになって、いろいろ問題が発生したらやですからね………^^;
……ちゅうことは、単にボクが遅かったって事ですね。うん。そうですそうです。絶対そうですっ!(笑

さて、会場入りは、大体10:40分ごろでしたでしょうか。すでに会場はごった返しておりました。^^; 東館1〜6でやっていたものを西館に持ってくるのは、ちと無理があったようですね…
……とはいっても、このごった返しのなかを突き進まなければいけません!えぇ、お宝が待っていますから!(笑 ついでにいうと、1週間後はこんなもんじゃないんだ!ここでヘコたれているかぁぁぁぁ〜〜〜〜!!(ぉ

…と、早速お宝検索です。……………が、ふと見回してみると、ガレージキットなディーラーさん(出展者)ばっかり(注:それが主のイベントです)。 まぁ、もともと、どこのスペースでやっているかはチェックしてない(しようが無い^^;)ものなので、とりあえず 全てのイベント会場をうろついてみると……… いやぁ、ありました。はじめに入った「西1」とは全く逆の「西2」に集まっておりました!(涙 …時間と体力の無駄遣いしてしまいましたわ…^^;
とはいっても、ボクの目的の物を出しているようなディーラーさんの数が少ないのですよ!やはり、西館だったこともあり、数を減らされたのでしょうかね……あぁぁぁ〜〜(涙
それでも、無いわけじゃありませんので、この数少ない中からお宝を掘り出さなければいけません。すくさま、発掘開始です!!!

探してみると、ちょこちょこと欲しいものがHitします。とりあえず、こころんのポスターを入手したりしました。(笑
さらに検索を続けると………おぉぉ、ありましたありました。パルフェの下敷き・リトルモニカ物語のメイのミニポスター・パンドラの箱のスゥのミニポスター・マイフェエンジェルの子(ぉ) の4つを約30分程度かけて(笑)、掘り出しに成功! そのままさらに検索を続けると…………ん?? なにやら大きなオブジェクトが机の上に展示されています。……よく見てみると、純愛Girlの等身大スタンドポップっ!?!?!? ななななな、なんじゃありゃ!? 野々原ファンのボクはもうそこに直行です!(笑 そこには…「純愛Girl等身大スタンドPOP¥7,000。 他にもあります。」…と!!! ……ニヤリ。他にもあるんやな! と、期待に胸膨らませて、そこのディーラーさんに聞いてみると…「これがリストですが、値段に斜線が引いてあるものは、売り切れですね。」と、一言。 そんな言葉は、目的のポップがあるかどうかが気になって、小耳にはさむ程度になっています!(爆

さて、いざリストを確認してみると……ぉぉぉぉおおおおおおお!!! あったぁぁぁぁ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜!!!!!!!!

ぴヨナ・ピコナ の 等身大POPぅぅ〜〜〜〜〜〜〜〜!!!

………

値札に斜線がァァァァァァ〜〜〜〜〜〜〜っっ!!!!!(号泣

ふっ……ふふっ……… こ、これでリストが終わったわけじゃないぜっっ……まだ、次のページがあるぅぅぅぅ!!!

…ペラリ

ぅぉぉぉぉぉぉぉぉおおおおおおおおおおおお〜〜〜〜〜〜〜〜〜〜!!!!!!!!

リトルモニカ物語スタンドPOPがぁぁぁァァァァ〜〜〜〜〜〜ッッッ!!

………

値札にナナメ線がぁぁァァ〜〜〜〜〜っっっっッッッッ!!!!!(滝涙

他には……… Fifth-Twin- の等身大スタンドPOPかぁ…… ん〜、もう持っているからいいとして……(笑
…………………他にHitするものはないですな……(涙

そんなわけで、スタンドPOP購入失敗……(涙
もう、悔しくて悔しくてたまりませんわ……… ぐふっ…


というわけで、今回は比較的「負け」なワンフェスになってしまいました……
じ、次回こそは「勝ち」のワンフェスにしてやる……(涙

ちなみに、何度も言っていますが、ワンフェスは「ガレージキット即売会」です。あくまで「ガレキ」がメインですよ。 ボクもガレキをしっかり見てきました。「ちぃ(等身大)」とか「木之本さくら」とか「雪使いシュガー」とか。 ……って、女性キャラしか見てないやんか。(爆
(戦車とか、かっちょいい系もありますので… 念のため。(笑

しかし、何か、激しく乱れてる文章になってしまいましたなぁ……^^;