スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

金曜が終われば

金曜が終われば魔の中間テスト期間も一段落です。
今日も中間テストだったのでもう無理ってくらい疲れてますが、明日が最後とおもえば、なんとか~~~。。。。あぁ長かった1ヶ月。7教科とかしんどいって。。。

中間テストが終わったところでサークルも忙しくなってくるころです。
アプリ作成がなかなかできませんなぁ。


昨日も勉強の合間にアプリ若干強化。
MBをMIDIに変換するときの音色設定を追加。
公開以来初の追加です、多分。
タム周りが特に変わりました。スピーカーでは全部似て聞こえるタム類ですがイヤホンで違ったら結構ちがくて、MIDIでの音色と聞き比べつつ設定してみました。(今までタムは全部同じ音色に設定していたような気がするw)ただサッパリ自信がない。でも、今までの曲の雰囲気が変わるほどの変化はあります。今度ウチのアプリで設定されているMB⇔MIDI対応表を書いてみたいと思います。ここはコレだろうとか、そういうのがあればぜひ教えてくださいw

徹夜明けなので寝ます…
スポンサーサイト

LEO-NETが高速化?

なんか一週間くらい前から速くなったw
回線すいてる昼とかなら光らしい速度はでていたんですが、夕方、夜までも最近はスイスイ。
なんとニコニコが見れちゃうwww今まで夕方-夜にかけてのニコニコ動画視聴は遅すぎて不可能でしたが、ストレスなく見れちゃいます。

随分前に光回線になりました、と便りがきてから逆に遅くなった感じがあったのに、今度は何の通知もなく高速化。

一体なにがあったのやらレオパレス。
なにはともあれうれしすぎるwレオパレスの不満は回線速度くらいですしね~。

擬似ファイルシステム

擬似ファイルシステムクラスを作成しました。
ツリー構造をとれるようになっています。

中身は前つくったArrayList。フォルダはArrayListそのもので、ArrayListにArrayListを入れていくことでツリー構造を再現しているというわけです。便利ですね、可変長。

ファイル一覧を作るメソッドでフォルダには後ろにスラッシュをつけるかつけないかとかそういうどうでもいいことに結構なやんでしまった…まぁ結局フルパス表示の時も含めてフォルダの後ろにはスラッシュをつけない、で統一。フォルダを開くときもスラッシュをつけては開けない。どちらでもいいようにできるにはできるけど、処理増えるし、ひとつにバシッと統一した方が作りやすいし、使いやすい。


これができたので、あとはZIP内のパスを解読して、フォルダの振り分けをできるメソッドをどっかに作れば、作業完了。

ちまちま

びーもばちまちまと今日もいろいろ変更中。

■今日やったこと
・キーが光ったときの色。
→元キーに+赤50%から、元キーの赤のみを取り出したものにした。だいぶ光ってる感じがでるようになった。

・スピードレベルのフォント画像変更
→経過時間よりも1dot幅を広くした。

・BPMを表示
→パーセンテージのフォントを細くして作ってみた。
あと1dot潰さないと少しでかい。間隔もあけないとな~。

・スコア計算精度向上
→割り算やったあとに加算するような計算でスコアだしてるんですけど、計算前に各分子を1000倍して、計算終了後1000で割って計算するようにした。これで結構小数点以下も拾えて精確になったと思う(この小技は結構つかってます;浮動小数点使いたくないんでw)。5000ノートでもしっかり計算しきれてるっぽい。

・独自クラスを全搭載
→ArrayListとZipのアレ。結構うまいこと動いてくれてる。これなら旧インポート方法の再実装も楽かも。ってかソースの可読性がグンっと上がった感じ。Zipのクラスには全取り込みの機能もついてる。

・ゲージの本数を減
→60から55に。50にしようと思ったのにそれなら短か過ぎたので55に;;

・緑のライトをよりリズミカルにした
→ふにゃふにゃ上下するのではなく、下までいったら一気に上までいくようにした。ドンドンドンって感じに。

まだまだやることは多いなぁ。
組み立てアクションもつけないと…


■QVGA版対応機種
ドコモ公式サイトのiアプリ関連のページ→http://www.nttdocomo.co.jp/service/imode/make/content/spec/iappli/index.htmlを見て『描画領域』の部分が240x320よりデカイものはすべて対応しているはず。(これをみたしていても表示領域が正方形なのはどうかな…)

具体的に書き出してみると、、、

□902iシリーズ
D902iS

□903iシリーズ
SH903i、D903i、F903i、SO903i、D903iTV、F903iX、SH903iTV、F903iBSC、SO903iTV、(N903i)

□703iシリーズ
SO703i、(F703i)

□704iシリーズ
SO704i、SH704i、(F704i)

□904iシリーズ、905iシリーズ
全機種

※括弧の機種は表示領域が正方形だったり、プロファイルがLEだったりよくわからん。

FとDが如何に先進的かどうかわかるなwPは結構後発。性能は圧倒的にP>>>>>>F、DなんですけどねwSHが905からメモリ合計25MBと神がかってるwwwwゲーム機かよw性能面でもSDアクセスもはやそうですし、動作も安定しまくりだし、速度ではPに負けますがゲーム最強機の称号は伊達じゃない。

独自クラス

ArrayListクラスの代用クラスとSD内のZIPの管理を行えるクラス完成。

いやはや今まで気づかなかったがクラスというものがこれほど便利なものとはw
可読性と後々の発展性が抜群に上がる。
特に流用利かせる気で書いたクラスは初めてでいい経験になった。

ArrayListってObjectクラスを格納できる分けだから結構使い道がありますよね。
例えば弾幕シューティングゲームとか?
弾の基本クラスを各種類の弾のクラスに継承させてそれをずらりListにadd、add、addで弾を追加できる。それを先頭から順に処理していけばバッチリなような気がする。
まぁArrayList使わないでリンクリストをそのまま使った方が速度は出ると思うけど、そんなの画像一枚分に比べれば微々たる物で。

いや~、なんかオブジェクト指向とやら見えてきたぞw


一冊の本より実践ですな。
JAVAやりはじめのころ一冊JAVA入門的な本を買いましたが、即効、クラス、インスタンス、オブジェクト指向とかが書かれていたけど当時は分けがわからず、参考ソースを見ても「これ何に使うの?」って感じで結局その本はそれっきりでネットに頼っていたわけだったんですが、今ならわかるわ~wwうんうん、いいものだぞ、クラスw

それにしても今さら入門書の最初の方を理解できたオレって…

1.2.0読み込み高速化版公開

更新開始しました。

■1.1.5→1.2.0更新内容
SDカードにあるZIPファイルが任意のサイズ以下である場合、メモリにファイルを完全に保持させることで起動時以降のSDアクセスを完全になくすことができるようになりました。デフォルトでは1MBですが、バージョンアップから1.2.0にした場合は0KBになっています。この値はオプションより変更可能で、変更した場合完了を押したのち、再起動することで反映されます。完全に取り込むことができた状態では、デバッグ情報の枠が赤で表示されるようになります。このサイズを大きくしすぎるとメモリを圧迫しすぎる可能性があるので、ZIPにあわせて変更してください。
Pなどのこれまで読み込みに数十秒かかかっていた機種がこれを有効にすると、1秒近くまで短縮可能です。これまでで十分に速かった機種は0KBにしておくのがいいと思います。


といった感じ。
P機種以外に特に利点はありません。
機能を有効にするには、オプションからZIP最大取り込みサイズをZIPサイズ以上に設定して完了を押し、再起動が必要なので注意。

Nではなんにも変化は見られませんでした;
ぜひぜひ動作報告お願いします~。

P機種用高速化処置

ZIPファイルを丸々読み込ませておくことで譜面ロード速度を高速化させました。
丸々読み込ませることでメモリを食うもののSDへアクセスする必要がなくなり、ネイティブからのロード並の高速ロードができるようになりました。

P902iで20秒かかったものが1秒ですむようになりました。

取り込める最大サイズはオプション一番上より100KB単位で指定可能です。
(デフォルトで1MB、バージョンアップをした場合0KB)
変更した場合、次回起動時より有効になります。
ZIPファイルサイズを下回る値を設定した場合はこれまで同様の動作をします。
(つまりPなら20~30秒の読み込み時間)

動作に支障がないようなら3MBくらいで固定でも問題ないとおもいますが、できるだけZIPのサイズに合わせて調整するのが無難です。
これまでで十分に高速読みだった機種は0にしておくのがいいでしょう。


あとは外部MIDIの読み込みとか画像読み込みとかもメモリ内のZIPからの読み込みに対応させれば完了。終わったらバージョンアップできます。


■追記
音楽や画像に関してもメモリ内に落としたZIPからの読み込みに対応。
これで読み込み系すべてについて、メモリ内ZIPとSD内ZIPの両方に対応完了。
P機種はかなりの恩恵を得られるバージョンアップになりそうです。
メモリ内にZIPがおさっまた場合はアクセスもすべて切るので省エネにもなるかも?

Nでの動作確認をSDのアダプターを忘れて取れないので、明日確認をとったあと更新します。尚、更新内容はこれのみで半透過とか新スキンは未実装です。

P機種のSDアクセス速度

実家においてあった元の機種P902iで現在公開中のMobileDJ(仮)を試してみた。

いや~、想像以上に読み込み速度遅いwww
並のサイズの曲を読み込んで再生開始まで約20秒。
こんなもん使い物になりませんな。

しかし、せいぜい50KBのBMSを読み込みにコレだけかかるとは思えない。
起動時にはその10倍ともあとうかというZIPファイルそのもの全体を1~2秒足らずでメモリに落とせているところを見ると、バッファの設定とか、読み込み方の問題でまだまだ短縮可能なに思える。


デフォルトのバッファサイズを図ってみたところ、P902iでは1KBですが、N904iでは100KBでした。これもなにかしらの影響を与えている感じか。このバッファサイズの違いがN904iで一気にread()で読み込ませなくても十分に速かった原因かもしれない。Pでは一気読み込み必須か。(読み込んでしまえればあとは従来程度の時間で再生が開始されるはずなんですが~…つまり3秒くらい。)


にしてもPの動作は理想通りですな~。
めちゃくちゃ高速で滑らかに譜面がスクロールしてくれる。
AudioPresenterの時間最小単位も4msくらいでしょうか。


■原因
一気に読み込ませてもほとんど変わらなかった。
最初のZIPの読み込みと譜面の読み込みで違いといえば、ファイルそのものをみるかZIP内のファイルを取得するかの違い。つまりはZIPにアクセスするのがPではとても遅い、ということになる。多分JarInflaterでランダムアクセスが発生しちゃうとか、そんなところ。

これを完全に解決させるにはZIPをメモリに保持しつづけるしかない。
メモリ圧迫するからいやんなんですけどね~…

やはり選択式ででもこの機能はつけなくてはならない。
特にP機種ユーザーさんがまともに遊べるか遊べないかの重要な問題。
やってみるしかありませんな。

丸々メモリに読み込むとなると読み込めるZIPファイルサイズに限界がでてくる。
メモリは平均10MB。ヒープとかわかれてる機種だと5MBたらず。
通常の作業で使用するメモリが合計で2.5MBくらい。となるとこの方法での最大ファイルサイズはMAX3MBが妥当かも…う~やってみるか~。
Go To 物置。
プロフィール

書いてる人:つん

まったりのんびり。書いてる人の息抜きブログです。

多分連絡先↓
metal_tsun@yahoo.co.jp

カテゴリー
リンク
月別アーカイブ
バロメーター
Java歴:2005年2月から今まで。
3DCG歴:2005年8月から数年。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から数年。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月からちょっと。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
CSS歴2012年5月から今まで。

ブログ開始日2005/10/11


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。