2016年3月30日水曜日

温野菜 しゃぶしゃぶ

プロジェクトの打ち上げで温野菜のしゃぶしゃぶ。

もうこれでもかと肉を食らう。

全体的に食べ放題という事もありほどほどの肉だが、

数で何とかカバー。

食えないなりにモリモリと頂きました。おいしかった。

2016年3月29日火曜日

ルクア大阪ザプラチナム ビュッフェ

娘ちゃんが高校に合格したのでバーサクモードに入っております。

外食しまくりで大丈夫かしら。

そしてビュッフェスタイルのお店に入ってランチ。

まあ優雅でいいことですわよ。

でも小食なので色々と食べられないのが悔しい!キーッ!

2016年3月26日土曜日

びっくりドンキー パインバーグと何か

梅田の隠れ家的な場所にあるびっくりドンキー。

店の雰囲気もいいので良く通ってます。

今回もパインバーグなんだけど、

から揚げ的なのも頼んじゃってますね。

まあ味は定期的に食べたいおいしさは間違いない!おいしい!!

2016年3月19日土曜日

チャールスとん ヒレカツとエビフライ

前回行った時には店の雰囲気が殺伐としていて息のつまったチャールスとん。

今回は従業員やお客さんがガヤガヤしていてほっとしました。

味は前回も今回もおいしいのは間違いない。

雰囲気さえ良ければ良く来るのに。

2016年3月18日金曜日

まいどおおきに食堂

自分で取ってくるタイプのお惣菜系のお店。

豆ごはんが季節モノということで頼んだらおいしかった!

おかずもおいしかったけど、基本的には味付けが濃い。

こういう系は薄味を希望するのは贅沢かね~ほえ~。

2016年3月17日木曜日

波形を画面に出す

現在作成中のアプリ、ミュージックプレイヤー部分に波形表示がさせたくなった。
巷のDAWのような雰囲気とまではいかなくとも、どんな波形が鳴っているのかが
目視できるのは非常にありがたいし見た目も良いハズ。

ということで、波形データを取得して画面に出してみるものの、ただ単にそのまま
データを画面に出すのは超簡単。

しかし!!

画面に収める為に、波形を小さくして出すのが難しい!!
要するにデータの間引きが難しいのだ!!

これはハマったし、未だこれだという所まで来ていない。

単純に途中のデータを飛ばして読んできて出すというやり方でもOKだが、周波数
に偏りのあるものは変な形になってしまうことも。

そこで、飛ばす時にそこまでの最も大きいまたは最も小さいモノを表示する事に
した。これで詳細はともかく、波形の雰囲気は割りと出せるようになった。(でも、
拡大のパラメータによっては、波形の上と下のバラつきに偏りがすごく出る。)

そして、リアルタイムに波形を扱う時は、波形データをそのまま触ると爆裂に時間
がかかる。フレームレートが2とかになる。

そこで、WAVを読み込んだら、読み飛ばした波形表示専用のデータを作成しておく
必要がある。DAWや波形編集ソフトもやってますな。これをやると高速に表示が
可能なのであった。

あたりまえのようなこれらの話、たどり着くまで時間はかかったのでした・・。

2016年3月13日日曜日

くるま 定食

良く行くようになった桜井駅に、くるまという中華屋さんがあって、
いつも食べたいと思いつつ機会が無く。
ようやくタイミングがあって行けた。

定食を頼んでみたが、どれもうまい!!
しかしここは取り壊しになるみたいで、お店が移動するようだ。
ちょっとだけだけど離れるのは残念。

2016年3月11日金曜日

C言語:スペースを含む文字列の入力

若干ハマったので。

簡易的にテキストファイルからデータを持ってきたいとき、今時は使わないかもだけど、
fscanf_sなどを使っている。普通に使う分には問題ないのだけど、スペースを含む文字列
を持ってきたい時には困る。スペースを区切り文字だと勘違いしてしまうのだ。

そこで、1行づつ入力して、strtok_sを使ってトークンで区切って持ってくるのが良いみたい。
strtok_sは若干扱いにくいのでココにメモ。

// ファイルオープン
fopen_s(&fp, filename, "rb");

// 改行まで一列読み込む
fgets(str, _countof(str), fp);

// これでタブまでの文字列がゲットできる
str2 = strtok_s(str, "\t", &ctx);

// 二つ目以降はNULLを指定する
str3 = strtok_s(NULL, "\t", &ctx);

ざっくりこんな感じ。\tのトコはコンマとか色々入れられるらしい。ちょいとハマった。

2016年3月9日水曜日

MID2MMLは諦める・・そしてMMLで和音対応

色々やるも、そこそこの変換精度でMIDIをMMLに変換されるようにはなった。
だが、あまりそこに力を注いでもしょうがないかな?という気分になってきた。

というのも、現在のゴールは自作曲のMML化であり、サンプルに使っている
のはドラスピのMDXをMIDIに変換したもので、一度変換したものをまた変換
するというのは余りにも効率が悪いのである。

少しづつ自作曲をMML化し始めた所、手打ちのMMLが最もキレイで効率的
な事がわかってきて、一旦MID2MMLは諦めることにした。

そして次はMMLの強化である。

MMLは1トラック1ポリという流れは当たり前であり、和音ナド対応しないのが
普通であった。MIDI機器の登場により、場当たり的に対応はされていたが、
そこに触れずにMMLから去ってしまった経緯もあった。

お手本としているZMUSICを見ると、和音の表記方法はアポストロフィで囲む
というやり方らしい。この方法だと理論的にはあらゆる和音が表現できそう。

しかし、MMLを読み解く側からいくと、ものすごく大変なのだ!!

具体的には、和音のタイ関連。

1.単音から和音へのタイ
2.和音から単音へのタイ
3.和音から和音へのタイ

こういう場合が出て、さらに、3の場合でもドミソからドファラに繋ぐ場合、
ドはそのまま発音し続け、ミソをノートオフし、ファラは発音、最後に全ての
音をノートオフとしなければいけない。

これの実装にハマった・・。2~3日くらいかかったかしら。

自作曲を放り込んでは聴いてみてバグを潰すの繰り返し。
なんとか自作曲がちゃんと鳴るようになった。

MMLはMIDIから変換せずに手打ちがやっぱり良い。

これで一通り自作曲をMMLから鳴らす事ができるようになったので、次はゲーム
的アプローチのアプリを作成していくことにしている。現在仕様策定中。

2016年3月3日木曜日

仕事でポカ ル・ヴァン・ビアン







仕事でポカをしたので罪滅ぼしの為に新梅田食堂街のル・ヴァン・ビアンにて会食。


普段食べられないようなフレンチ料理の数々。

特に、ワインに合わせた形でチーズを数種類頂いたのはすごかった!!

どれもわーってなる味。
お支払いを担当したので財布には痛かったけど、おいしかった。

2016年3月1日火曜日

MMLとの戦い

FM音源のVSTインストでドラゴンスピリットのジャングルの曲を作ってみた。
MDXからMIDIにコンバートして、CUBASE上でエディット。

さすが名曲、ちゃんと鳴るまで色々と工程は必要だったけど、キモチのいい
音になって満足。

そして、次の工程、にせぱんの新曲をFM音源でMMLで発表という誰得な
ものではあるが、それをやろうと決めたので最後まで頑張る。

MMLをイチから起こすのもいいが、せっかくだったらMIDIからMMLに変換
できて、それをエディットした方が効率的な気がした。今後も新曲をその
方式で発表というのも面白い・・かな?誰得な話ではあるが。

そこで、MIDIを読み込んで、MMLを吐くコンバータ作成中。

まだデロデロの演奏ではあるが、大きくは鳴るようになってきたので、
忘れないウチにハマりポイントをメモる。

■音長が全て
音階はすぐに表現できる。

char cNoteTbl[12][3] = { "c", "c+", "d", "d+", "e", "f", "f+", "g", "g+", "a", "a+", "b" };

こんな感じでテーブルを用意して、ピッチの値を12で割ってオクターブを出して、
余りをこのテーブルに当てはめればすぐに出る。これは簡単。

しかし!音長を表現するのがものごっつい大変!!

MIDIデータは絶対時間ではなく、デルタタイムの積み重ねなので、一つデータ
を見落とすだけで後ろが全部ズレるのである。現在はズレズレである。

問題は、ノートオン→ノートオフの繰り返ししかないので、それをMMLで表現
しようと思うと、一音鳴り終わって、次鳴る時にしかMMLを吐けないのだ。

1.音が鳴った
2.音が鳴り終わった←ココではまだ表現できない
3.音が鳴った←ココで初めて1と2の評価をする
→3の音が鳴った時に全部音符でいいのか、休符を伴うのか、調査する。

※CUBASEがスタンダードMIDIファイルを吐く時、常に480の分解能で2tick程
短く発音するようになっているのだ。なんだこの仕様は!!例:480→478

これがハマりポイント!!

デルタタイムはどのように表現してもいいけど、MMLは4分音符などの音符で
表現するので、そのままストンと変換できない!!難しい!!!

そこで、以下のテーブルを作ってみた。

char cLengthTble[22][5] = {
"1", // 4.0
"2.", // 3.0
"2", // 2.0
"4.", // 1.5
"3", // 1.3333333333333333333333333
"4", // 1.0
"8.", // 0.75
"6", // 0.6666666666666666666666666
"8", // 0.5
"16.", // 0.375
"12", // 0.3333333333333333333333333
"16", // 0.25
"32.", // 0.1875
"24", // 0.1666666666666666666666666
"32", // 0.125
"64.", // 0.09375
"48", // 0.0833333333333333333333333
"64", // 0.0625
"64",
"64",
"64",
"64"
};

4分音符を1として、他の音符の割合だ。一番細かい音符は64部音符にしたけど
これが現在のバグの原因かもしれない・・。

このテーブルを使って、音や休符の長さを少しづつ削ってやることにした。そう
して、何となく表現ができるようになってきた。

でも、サンプル曲などを変換するとズレズレになってしまう。これは現在原因を
調査中である・・。