「NeoMupl」に関する日記(3)

<前 次>

NeoMupl


ループ再生テスト機能です。
とりあえずその場でループ再生できる機能と、ループ前後だけ再生できる機能を付けてみました。
レイアウトがさっぱりなのは後で直すとして、実際に使ってみると、細かく調整したいから狭い範囲で何度もテスト再生したいとか、大まかなループ位置を見つけるため広めの範囲でテスト再生したいとか、テスト再生の柔軟性がもっともっと欲しいところです。
というか、普通に任意の位置から再生する単なるプレイヤー機能があればいいのでは??

NeoMupl

リリースしました。
そして、次に必要なループ設定のための機能も実装開始。

愛と勇気とかしわもちとNeoMuplと大神

愛と勇気とかしわもち

遊んでみた。
2万点が超えられない。

NeoMupl

Nullable対応を入れた。
リリース候補版のバージョン表記に問題があったので直した。

大神


輝玉と、あといくつか道場で技を覚えた。

NeoMupl

データや設定によってはループが全然完璧じゃなかったので、修正していました。
先走ってすぐリリースしてしまわなくてよかった。

それから、次期バージョン以降だけど、ループポイントをいい感じに設定するための技術情報調査中。
NAudioの作者が波形を表示するライブラリを作ってくれているみたいなので使えるかも。

NeoMupl

実装しました。完璧に。
0.1秒単位ぐらいで設定するといい感じ。
…なんだけど、ループそのものが完璧なだけに、設定が面倒臭いのは惜しい!
ループ未実装はバグ扱いなんで動作の検証が終わったら早めにリリースしますが、設定面倒臭い件についてはそれなりに画面を作り込みたいので後でゆっくり時間をかけてリリースする予定です。

大神とNeoMuplとナマライザ

大神


最初の村でおっさんが寝ているところまで進めました。
タッチ操作の筆しらべを楽しみにしていたのですが、筆しらべの画面に行くのに右手がふさがる都合で、結局昔ながらのスティック操作が一番しっくりくるのでした。

NeoMupl

昔から気になっていたバグなんですが、なんと未実装だったというオチ。
作ってないんだからちゃんと動くわけねーよな!

ナマライザ

もうあんまり更新することもないのですが、一点大きめな改修を加えようと思っています。
一点…と言えるのかも怪しいものですが。

NeoMupl

最新版アップしました。
最も致命的なバグを潰せたのでいっそのことバージョン0をやめて1に上げようかと思ったのですが、一応バグ修正だけなので、リビジョン番号を上げて0.31.2にしました。
勝手に落ちるバグは直ったとして、以前考えていたプロセス分離が落ちるバグ対策以外にも何か功を奏さないか確かめてみて、完成度をより高めてからバージョン1にしたいところです。
…もともと需要のないソフトだし、永遠にバージョン0のままでもいいっちゃいいけど。

NeoMupl

うん、ステータスバーのコントロールを自動生成している部分をシングルトン的設計に変えてみたら、ユーザーオブジェクトは増えないし、ずっと再生していても落ちないね。
中でも再生ゲージが決定的だったみたいだけど、せっかくなのでステータスバー全体を対象に修正を施した。
今週内にでも修正版を公開しよう。

NeoMuplと日記

NeoMupl

そもそも再生方法に関わらず落ちるのがおかしいと思っていたんだ。
どうやら音楽再生そのものは関係なかったようだ
何年もの間、私は見当はずれのところを探し続けていたのだ。

日記

日記のカテゴリ統計がメモリエラーで落ちていた模様。
ユーザーには関係ないけど、サジェストが頭悪くなってる。

NeoMupl

やはりユーザーオブジェクト数の関係なのは間違いない模様。
再生中だけ増え続けているので、再生に問題あり?
再生を止めても減りはしない。

NeoMupl

ユーザーオブジェクトの数が単調増加している…。
通常は10000までなので、長いこと使っていると自然に使い切ることになる。
リソースリークと思われるが、再生中に増え続けて、再生オブジェクトを解放しても減らないから、ライブラリ側の問題では…?

NeoMupl

項目のプロパティウィンドウにアイコンもなかったので補充。
あと、Gitのブランチの分け方がぐちゃぐちゃになって、分けたままにしていると不都合が出そうだったので、developブランチとmasterブランチの2本に統合しました。
一応、プロセス分離の方向性は決まっているので、統合しても問題はないはず…。

NeoMuplとTGWSDQXと雑多

NeoMupl

項目のプロパティウィンドウにタイトルがついていなかったので、付けました。
年明けの週内にでも公開する予定です。

TGWSDQX

未ログイン時に公式サイトのデータを収集しようとするとエラーで落ちるのを修正。
データ収集の仕組み自体をもっとスマートにしたいなぁ…。

雑多

「Magical Circle」の記事を更新しました。
表題の楽曲自体には関係ないのですが、余談に書いたことについて進展があったので、追記しました。

TGWSDQXとアンパンマンDBとNeoMupl

TGWSDQX

ファイルの保存処理が甘くて、ファイルサイズが小さくなるときに、前のファイルの残りが末尾にゴミとしてくっついたのが問題でした。
今まで、書き込み用にファイルを開いていた時はいつも自動的にファイルサイズ0になっていたので気付きませんでした。
修正はもちろん、ファイルサイズを0にするという方向で。
あと、エラーメッセージも表示するようにしました。

アンパンマンDB

差分取得がかなりいい感じに。
ショートカットと画像とカテゴリの項目をもうちょっと頑張ればいよいよ使えそう。
リスト編集だと、100個一度に更新するんですが、これを本当に編集したものだけに絞れるんですね。
あとは、更新告知に更新箇所の情報を含めるという、大昔のアンパンマンDBにあった機能が復活させられるはずです。

NeoMupl

こまめに再起動していたら今日一日エラー落ちしませんでした。
やけくそで根本が何も解決しない修正だけど、これは正解だったかも。
配布用ファイルを整えたら、週末の休みの日にでもアップできそうです。

NeoMupl

やはり問題の根本から目を逸らして再起動だのプロセス分離だのに逃げている場合じゃなかろうということで、ちょっとハンドルリークについて調べています。
ハンドルリークとは何ぞや、ということに関しては、 http://keicode.com/iis/iis504.php 参照で。

で、手始めに、BGMとしてランダム再生しながらメモリ使用量、ハンドル使用量の増減から見ていますが、今のところ、増えたり減ったりを繰り返しつつ微増傾向で、落ちるほどドーンを増えている印象はないですね。
でも落ちるという…。

TGWSAdminはもっとメモリもハンドルも使っているんですが、あっちはOSの再起動ぐらいでしか止まらないぐらい安定しているんですよね…。
いったい何が問題なんだろう。

アンパンマン日替わり紹介botといっしょにチョキッとスニッパーズとNeoMupl

アンパンマン日替わり紹介bot

日別画像アップロード実装完了。
画像をそのままアップするのと、放送日当日用の切り抜きを行うパターンができています。
それ以外のパターンは、今のところは、アップロード前に加工してからそのままアップですね。

いっしょにチョキッとスニッパーズ


ユニークな形でもぼちぼち攻略中。
写真は昨日の分ですが。

サルベージのステージがユニークな形ではかなり高難度でした。

NeoMupl

プロセス分離がまだ時間がかかりそうなので、暫定対応として、エラーで落ちる前に自主的に再起動できるように、再起動メニューを作ってみました。
暫定対応なので最終的になくせればいいなと思うのですが、とりあえずは再起動メニュー自体に問題がないかどうか確かめてから、いったんリリースしようと思っています。

地味ーに再起動処理と二重起動防止がかち合うという現象が発生したので、これをネタにプログラミングコーナーを更新してみるというのもいいかもしれませんね。

NeoMupl

プロセス分離のための準備をのろのろと進行中。

NeoMupl

マルチプロセスにするために、橋渡しとなる共通部の抽出中…。

NeoMupl

追加機能のリリースが一段落ついたので、何年も悩まされている勝手に落ちる問題への対応に着手。
UI側と、再生側を別プロセスにして、再生側で問題が起きてもUI側が巻き添えで落ちないようにします。
再生側をサーバーとして、UIがクライアントになって、サーバーに対して再生リクエストを送る感じです。
んで、サーバーは、落ちる原因が結局はっきりしないので、落ちる前に再起動です。
原因はわからないのですが、開始後すぐに落ちることがないことだけは分かっているので、常に「開始直後」の状態を維持するのです。
果てしなく非効率的になってしまうのですが、原因を解決できない以上、こうするしかないと思っています。

PHPCRSSとNeoMupl

TGWS内のPHPコードをphp-cs-fixerで整形してみました。
管理の都合でイレギュラーな書き方にしている部分も多々あるので全部とはいきませんでしたが、だいぶすっきりしました。true/false/nullの大文字小文字の不統一や、publicの付け忘れなどが解消したのが特に有益でした。

PHPCRSS

で、同じのをPHPCRSSにも使ってみました。
動作内容が何も変わっていないのでダウンロードコーナーは更新していませんが、GitHubで今のURLにて修正版を公開しています。
https://github.com/mifumi323/PHPCRSS

以前も言ったように、PHPCRSSそのものに対する開発モチベーションはすでにありません。
アーカイブ形式をLZHからZIPにするぐらいはしてもいいかなって思ったりもしますが、それをする価値もあるかどうか…。

NeoMupl

最新版公開しました。

<前 次>