Release #97
Muse V5.10
ステータス: | 終了 | 開始日: | 2007/07/01 |
---|---|---|---|
優先度: | 通常 | 作業時間の記録: | - |
担当者: | - | ||
カテゴリ: | - | ||
対象バージョン: | - |
説明
アクセント記法が登場。アルバム機構が強化
関連するチケット
履歴
#1 Redmine Admin がほぼ11年前に更新
;《Ver5.1 開発後記》2007.06.30
;
; ◆今回は近年まれに見る短いスパンのバージョンアップになりました。前回新設の
; アルバム機構。自分でも早速活用し始めたのですが、皆さんから頂いた演奏デー
; タは珠玉の作品ばかりで、あれもこれもとお気に入りに追加してしまい、気づい
; てみたら総計600曲にもなってしまいました。まあ母数が6千曲近くあるので
; すから高々1割のピックアップをしたとしても膨れ上がるのは無理もありません。
; ◆そうなってくると1階層だけのアルバムでは整理が付きません。そこでアルバム
; の多段階層化に臨むことにしました。どうせなら階層段数に制約のない構造に挑
; みたくなります。当然の事ながら再帰呼出しプログラミングになる訳で、しかも
; タイトル行とアルバム行、ログ行が混在する実に難解な制御です。まあマクロ解
; 釈のシーケンス程ではありませんでしたが、それでもアルバム機構のデータ構造
; を大幅に見直すことになり、久々にエキサイティングな開発でした。開発期間中
; は頭が冴え渡っていたような気がします。ボケ防止のために一生プログラミング
; を続けよう、なんて思ってしまいました。そんな訳でとても苦労したのですが、
; 出来上がってみれば前回のバージョンよりもプログラムが構造的で、そこに数学
; 的な美しい規則性さえ見出せる結果となりました。こういう結果を得る時にこそ
; 「完成した!」という実感を味わうものです。一般的にその製品やスペックの美
; しさに翳りのある状態とは、まだ過渡的で未完の状態なのかも知れません。
; ◆本格的な階層が組み立てられるアルバムとなったので、タイトル部と登録曲とが
; 入り乱れた状態になることも考えられます。そこで、タイトル部と登録曲の視認
; 性を高めるため、登録曲の先頭にグレーの三角形マークを添えることにしました。
; プログラム内部のデータ構造のみならず見栄えもなかなか美しいのでは、と自負
; しております。
; ◆既にリリースしてしまった履歴ファイル形式ですので、当然ですが上位互換を意
; 識しなければなりません。多分、ミューザーの皆さんの中には苦労して履歴ファ
; イルを編集された方もいることでしょう。その人たちに「もう一回作り直してく
; ださい」と言い放つ事はとても出来ません。上位互換を保って無限多段の階層を
; 表現するにはどうしたら良いのかいろいろ考えました。結果として、*の個数で
; 階層レベルを表現するという極めて単純な書式に辿り着きました。後で気づいた
; のですが、Wikiのセッション記述文法と類似しています。誰が築いた文法か知り
; ませんが、まだ見ぬその人と妙な親近感を感じてしまいました。
; ◆基本的に、アルバム機構の編集はエディタにて外側で行ってもらう方針でしたが、
; やはり登録・除去という基本機能ぐらいはMuse起動上から実施したいと、利用者
; である私が感じ始めました。さりとて専用のダイアログが出てきたり、操作の手
; 数がやたらと増えるような形式にしたくありません。最低限のストロークで望み
; の機能が実効する洗練されたユーザインターフェースにしたいと思いました。初
; めは、履歴メニュー上でマウスを右クリックすると編集用のメニューが出てきて、
; そこで機能指定するといったタイプにしようと思いました。ところがメニュー上
; でポップアップさせる方法がどうしてもわかりません。メニューがキャプチャを
; グリップしている間、ウィンドウメッセージをどうしても取得できないのです。
; この技術的な限界に直面し、別の切り口の操作仕様に思考を向けたとたん、閃き
; が起こりました。右クリックしたメニュー上の場所がタイトル部なのか演奏曲部
; なのかで、利用者が登録と除去のどちらを望んでいるのかを一意に決められるこ
; とに気づいたのです。まさに「必要は発明の母、障壁は閃きの父」とでも申しま
; しょうか。結局、1クリックだけで登録も除去もできる快適な機能となりました。
; ◆アルバム登録時、それが登録済みの曲の場合は二重登録しないように考慮しまし
; た。しかし、この二重登録ガードに引っかかる場合、マウス右ボタン押下に対し
; てまったくの無反応となります。利用者の指示に対してコンピュータ側が何もエ
; コーバックしてこないのは、挨拶しても憮然としている愛想の悪い人に出会った
; ようで実に不愉快です。さりとて、いちいち「登録致しました」というメッセー
; ジを出すのでは、意味も無く礼儀にこだわる執事に追い回されている様な堅苦し
; い気分になります。そこで対象曲のグレー三角マークを黒く強調するエコーバッ
; クを思い付きました。控えめでありながら手応えのある反応です。他ではあまり
; 見かけない、ユニークなマンマシンインターフェースを実現できたと思っていま
; す。この開発で苦労したのは、その黒く強調したマークを元に戻すタイミングで
; した。Windows が管理している制御メッセージを解析し、独自ステータス管理で
; こっそり戻すという綱渡りをしています。
; ◆今回のアルバム登録・除去の機能提供に伴い、前回muse.iniのパラメータで提供
; したLGS(アルバムからの選択時に履歴を更新する/しない)の機構を撤廃しました。
; 曲の履歴が残ることで、誤った除去オペレーションをしてもすぐに登録し直せる
; ことに気づいたからです。履歴が、一種のUNDOバッファとしての役割も発揮する
; という訳です。一方で、そもそもアルバム中心で履歴エリアは不要と考える方の
; ために、履歴メニューにおける表示曲数(LGM)にゼロを指定できるようにもしま
; した。加えて、muse.logのセーブタイミングをMuse終了時のみに変更し、データ
; ロード時やアルバムの登録・除去時の負荷を低減することにしました。
; ◆アルバム機構の強化が中心の今回のバージョンアップでしたが、あと2つ小さな
; 強化を加えています。前回、テンポラリフォルダに展開されたロード曲は、ウィ
; ンドウタイトルを@で縮退表示させるようにしましたが、hiroさんから所詮Muse
; データを格納管理しているフォルダパスが長いと意味を成さず、演奏時間が確認
; できないことを指摘されました。当然と言えば当然なのですが、今まで誰からも
; 指摘がなかったので、まあなんとか大丈夫なのだろうと高をくくっていたのです。
; やはり付け焼刃では駄目ですね。対応をいろいろ考えた末、初期化ファイルにパ
; ラメータ(DWT)を新設することにしました。このパラメータ設定で、ウィンドウタ
; イトルにフォルダ自体を表示しないようにすることができます。
; ◆もう一つは、アクセントという指定を追加したことです。これは長年実装したい
; と考えていて延び々々になっていた文法強化です。アクセント値には負値も指定
; できるようにしたので、いわば逆アクセントといった面白い演奏表現も可能です。
; 開発上苦労したのは、和音やコードそして再現表記などとの組み合わせ問題です。
; 表面上の機能は単に一過的に音を強くするだけなのですが、複数の音が鳴る場合、
; 元の強弱値に復帰するタイミングを制御するのは結構大変でした。仕様としては、
; アクセント量をフィンガー単位に保持し、省略記法も提供することで、今までの
; Muse記法コンセプトに従った統一感のあるものにできたと思っています。完成し
; たアクセント指定。特にパーカッションのメリハリに効果があるのではないかと
; 私は期待しています。この新文法が、皆さんのMusingのお役に立てれば幸いです。
#2 Redmine Admin がほぼ11年前に更新
- トラッカー を Bug から Release に変更
#3 Redmine Admin がほぼ11年前に更新
- 題名 を Muse V5.1 から Muse V5.10 に変更