アラーム+mp3再生+歌詞表示機能搭載ぴろシステム”「偽ぴろ」Lv4.2β”‥なげぇよ
Lv4.2β(2001/4/1)
とりあえずWindows2000推奨状態を維持します。
今まで『一行づつ歌う』モードでの行の歌いだしのタイミングはonsecondchengedを使って毎秒チェックしていたんですが
今回からpiro.dll側から能動的にSakuraにイベントを起こさせる手法を使ってみました。
こっちの方がプログラム的にも単純で負荷も低いようです。
Lv4.2β修正/変更点
1.『一行づつ歌う』モードを根本から修正。タイミングがかなり正確になったはず。Win98での音跳びも改善されてると思います。
2.ツールバーのデザインを変更。
3.曲のシークもホイールで操作できるようにした。
4."LyricsPos"での曲のシークに対応。行単位でシークします。
5.プレイリストへのD&Dを有効にした。
6.\wや\_wを避けて表示文字のみ\_qタグを有効にするように変更。
ウェイトタグを\_qではさむとウェイトしている間操作がロックされる為。
Lv4.1α(2001/3/30) (非公開)
結局操作系の変更に終始しました。
依然Windows2000推奨状態です。
\_w/\_qを有効にするとパネルの操作が一時的に出来なくなります。
特に『一気に歌う』モード時は曲が終わるまで固まるようです。
(Win2Kのみ?) Win98では\_w \_qを付けると音跳びが発生します。
Lv4.1α追加点(2001/3/30)
1.ホイールによるスクロールバーの操作に対応。
面倒くさいので、曲のシークには対応してません。(ちょっと厄介な処理が必要)
2.偽ぴろ終了時に状態を保存するオプションを追加。
終了時とは、ユーザによる終了要求時、ゴースト/スキンの切り替え時、ネットワーク更新時です。
曲の途中で終了した時は、その場所から再開します。
3.縮小表示モードを追加。
タイトルバーの『最小化』ボタンを押すと縮小モードに移行します。『最大化』を押すと元に戻ります。
4.ID3Lv1のタグ読み込みに対応。
5.プレイリストに現在の状態(再生中、ポーズ中、など)を表示するようにした。
Lv4.1α修正/変更点
1.プレイリストを操作パネルの下に表示するようにした。
2.ツールバーの『ファイルを開く』操作時にスクリプトエラーが発生する問題を修正。
3.メニューの表示をポップアップタイプに変更。
Lv4.0α追加点(2001/3/27)
1.操作用のパネルを実装。
ボリューム調整、シーク機能、ポーズが出来るようになった。
偽ぴろ起動時にタスクトレイに現れるアイコンをクリックするとパネルが開きます。
使い方は一般の再生ソフトと似ているので特に説明は不要と思います。
一応下の4つのスクロールバーの機能について、
* "文字表示速度"一文字表示するのにかかる時間をmsecで指定。(Default:40msec)
* "ウェイト時間" \wタグの待ち時間を指定。(Default:50msec)
* "テンポ増減" 歌詞の表示スピード調整。一行表示モードならその行、
複数行表示モードなら歌詞全体に対してテンポを増減させます。
* "歌いだし位置" 歌いだしの位置を50msec単位で増減させます。
(マイナスの設定は現在のバージョンでは無視します)
表示スピードは環境によって微妙に違ってくると思うので最適な設定を見つけてください。
設定したデータは歌詞のタイプ(カラオケタグを含むかとか、さくらスクリプトを含むかなど)と
他の設定(\_wが有効など)によって分類され保存されます。同タイプの歌詞を読み込んだ時以前の設定が復元されます。
なお、さくらスクリプトを含む歌詞は手を加えないでそのまま出力します。
2.新仕様の\_w \_qに対応 とりあえず実装しました。完成度は低いです。
パネルのメニューの『設定』で有効/無効が設定できます。
developer's test 20.40では\_qによるノーウェイトセッション中に\wタグが入ると、CPUの負荷が非常に高くなるので、
通常文字だけを\_q〜\_qで括っています。
カラオケタグを含まない歌詞なら問題は無いですが、カラオケタグを含む場合頻繁に\_qが入るのでそのオーバーヘッドが問題になります。
また、\_qを有効にした場合"Message speed"の設定値を変更する必要があります。
Lv4.0α修正/変更点
1.10ミリ単位のタイムタグをそのままミリ秒として扱っていた部分があったのを修正。
ダウンロードLv4.0α
Lv3.1b修正点 (2001/3/22)
歌詞ファイルで256文字以上の行を最後まで読み込めてませんでした。(汗
差し替えた方がいいです。
Lv3.1追加点 (2001/3/22)
developer's test 20.00版での動作確認。developer's testに参加している人はなるべくこれで動かしてみてください。
偽ぴろが出力した歌詞ファイルは各自自己責任で使用してください。web上等で公開する際も私(ふぁふぁ)の承諾は必要ありません。
1、カラオケタグをさくらスクリプトの\w[n]に変換してファイルに保存できるようにしました。
偽メニューの「拡張」→「さくらスクリプト形式で保存」で選べます。
カラオケタグのみを変換するモード(形式1)と、全てのタイムタグを変換するモード(形式2)を選択できます。
(形式1)は、通常のタイムタグ付き歌詞ファイルの形式になります。
(形式2)は、"\h\s[0]\t〜歌詞〜\\e"という形式のさくらスクリプトになります。
ファイル名はオリジナルの歌詞ファイルと同じ場所に、拡張子を*.$$$に変えて保存します。同名のファイルが存在する場合確認のメニューが出ます。
その他、注意事項など。
*現在演奏中、またはプレイリストでポイントされている曲のみ保存します。
*内部データをそのまま吐き出してるだけなので見ずらいです。(タイムタグが昇順でソートされた状態)
*行頭のタイムタグのミリ秒部分は0にリセットされます(変わりに\w[n]で置き換えてます。)
*(形式2)の場合タイムタグとタイムタグの間の文字が多すぎるとそれ以降の歌詞表示がずれる事があります。
例えば、[00:00:00]〜歌詞〜[00:01:00]で、歌詞が21文字ある場合21文字表示した時点で1秒+50ミリ秒経過するので、
それ以降の歌詞表示が50ミリ秒遅れる事になります。
2、歌詞の表示方法も一行ずつ歌う(形式1)と一気に歌う(形式2)を選べるようにしました
偽メニューの「拡張」→「うたいかた」で設定できます。設定は次回起動時も有効です。デフォルトは(形式1)です。
形式2の場合再生し直さないと反映されません。
3、歌詞の歌い出しを50msec単位で調整できるようにしました。
*今の所、[00:00:00]より前には設定できません。つまり歌い出しを遅らせる事しか出来ません。
4、偽ぴろ起動中はタスクトレイにアイコンを表示するようにしました。
曲が読み込まれているとアイコンが赤くなります。‥それだけですけど(笑
Lv3.1修正点
1、文字表示の遅延をカウントしていなかった為表示がずれていたのを修正。
2、時間を巻き戻すタグ(間奏で表示する曲名をファイルの先頭においてある場合など)に対応。
3、タイミングのずれが少しましになったような気がして‥ます。
Lv3.1ダウンロード
Lv3.0追加点 (2001/3/19)
久しぶりの更新。
カラオケタグにとりあえず対応。但し、
*時間が巻き戻るようなタグが含まれていると死にます。
*ウェイトの最小単位は50msです。それ以下の端数は切り捨てられます。
*後述する行の表示開始のタイミングの変更に伴う副作用で、行末の歌詞の表示がキャンセルされる事があります。
*対応しているタグの形式は[xx:yy:zz]のみです。(ミリ秒の記述が10ミリ単位になっているもの)
偽ぴろは歌詞を表示する時にカラオケタグをさくらスクリプトの\w[n]タグに変換します。
「何か」のセリフ表示の設定が『ウェイト』になっている事が前途です。
歌詞表示のタイミングを偽メニュー(胸をD-Clickすると出ます)の「拡張」→「表示スピードアップ/ダウン」で調整できます。
偽ぴろが置かれているフォルダの下にnisepiroの名前でフォルダを作ります。ここには設定データ等のファイルが置かれます。
Lv3.0修正点 (2001/3/19)
行の表示開始のタイミングを多少正確にした。但し副作用があって、行末の歌詞の表示がキャンセルされる事があります。
タイミングを合わせ易くする為に、行頭の♪表示をやめました。
フォルダ名に空白が含まれているとpiro"Basic"が見つけられなくなるバグを修正。今さら。‥ゴメンなさい。
Lv3.0ダウンロード
Lv2.6d修正点 (2001/1/24)
Phase39.41のParsonaからGhost/Skinフォルダの移行に伴う変更。
要するにゴースト側の偽ぴろがオリジナルを見つけられなくなる問題を修正。
Lv2.6dダウンロード
Lv2.6c修正点 (2001/1/16)
Phase37.01-02の変更に対応、の続き。
piro.dllのゴースト毎の起動に対応。
全てのゴーストで使う場合は今までどおりの設定でOK
特定のゴーストでのみ使う場合は、そのゴーストフォルダの下に「偽ぴろ」piro.dll を置き、\data\フォルダの下にはオリジナルのpiro.dllを置いてください。
その他の修正点
「偽ぴろ」があるフォルダに"echino_alm.txt"が無いとメモリエラーを起こしていた腐れバグを退治。
その他細かいバグ、間違った仕様を修正。
Lv2.6c ダウンロード
Lv2.6b修正点 (2001/1/15)
Phase37.01の変更に対応
onmousewheelイベントでSAKURA側がローカル座標を送るようになったので、スクリーン座標から変換する部分を削除。
半角スペースを詰めなくなったので、半角スペースを全角に変換する処理を削除。
Lv2.6b ダウンロード
Lv2.6修正点 (2001/1/15)
操作系を変更。ホイールなしでの操作を可能に。
ホイールが無いとまったく操作が出来ないと言うのも何なんで、左クリックだけで操作が出来るようにしてみました。
「対応ファイルが読み込まれた状態」で胸のあたりをクリックすると「偽メニュー」が開きます。後は見れば判ります。
通常のメニューを出すときは、胸以外を使ってください。
ファイルが読み込まれていなければ「胸いじりナビゲーション」は無効になります。
ホイールボタンによる再生停止は止めました。
その他の変更点として、
歌詞表示の優先度を最低にした
歌詞を表示中に、ほかの表示の割り込みがあると表示をストップします。但し自動的に再開はしません。
再開するには、「偽メニュー」から、「何でもない」を選ぶか、胸のあたりでホイールボタンを押してください。
ホイールによる曲選択の方法の変更
フキダシに表示される曲名をクリックすれば再生します。
Lv2.6ダウンロード
Lv2.5b修正点 (2001/1/14)
ホイールが効かない問題の修正
某掲示板で指摘され、それに対して「最新版使えば?」とか「本体の問題じゃない?」
とかスカな事言った結果がコレ。あっしが悪うございました。
今は亡き(心の)師匠の「100回自分を疑ってからシステムを疑え」の格言を忘れてた。
恥ずかしいよぅ(・_・、)
んで、原因は、ホイールイベントで本体から渡されるマウスのスクリーン座標を、
ローカル座標に変換する際APIに渡す構造体の初期化を忘れてた為です。(Win2kではなぜか動いてた)
というわけで修正版をババンと公開。
Lv2.5追加点 (2001/1/13)
プレイリスト読み込み+フォルダD&Dによる再生+胸いじりナビゲーションシステム
やっぱり一曲ずつしか読めないのはあんまりなんで、プレイリスト(.m3u .pls)の読み込みに対応しました。
同じようにフォルダをD&Dして再生可能なファイルを読み込ませることも出来ます。
一度に読み込める曲は256曲までです。
胸のあたりでマウスのホイールを回せば再生する曲を選べます。
胸のあたりをダブルクリックすると選択した曲を再生します。この時、本体とダブルクリックの取り合いになるので、頑張って奪い取って下さい。
真中のボタンを押すと停止します。もちろん胸のあたりで。
surface0s.datファイルが用意されていないスキンではナビゲート機能は使えません。
あと、どのサーフェスが表示されていてもsurface0s.datの設定を使用します。(piro.dllから表示中のサーフェスnoを取得できない為)
Lv2.5ダウンロードLv2追加点 (2001/1/11)
mp3再生+歌詞表示=(お好きな言葉を入れてください(汗))
mp3ファイル(に限らず、MCIデバイスが再生可能なファイル)をD&Dすると再生します。
同じフォルダにそのフィルの拡張子を".txt"に変えたタイムタグ付き歌詞ファイルがあると、歌詞を表示します。(mp3 or wavのみ)
歌詞をSAKURAスクリプトで書けば‥‥試してないんで何ともいえないや‥
複数のファイルをD&Dしても再生されるのは一つだけです。
歌詞表示中に偽AIが割り込むことがあります。気になるときは喋り頻度を調整してください。
演奏を止める方法は‥
‥一応偽(妨害電波)のSurface0で言うと襟元のリボンの結び目あたりをダブルクリックすれば止まるようにしてます。
手抜きで悪かったな。えっへん。
Lv2ダウンロード
ぴろシステムを使ってアラーム機能を実現してみました。
ぴろシステムは、毎分毎秒の定周期イベントやマウスクリックなどのイベントを拾える大変便利なシステムなんですが、
同時にスクリプトオーバーライドを自前でやらなければならないという仕様になっていて、うぐぅな感じです。個人的に。
そこで基本的にオリジナルのぴろを使って処理を行い、必要な機能(ここでは毎分のイベント)だけを自前のルーチンを
使ってまかなうやり方でいってみました。
オリジナルのぴろが何の反応も返さなかった場合(戻り値が0のとき)のみアラーム機能がONになります。
[概要]
最大20件までのアラームを設定できます。
設定した時間の10分前、5分前、ちょうど、5分後になったら、偽(妨害電波)に任意のSAKURAスクリプトを送ります。
んでインストール方法、
偽(妨害電波)がインストールされているフォルダの下の"data"フォルダにある piro.dll を piro2.dll にリネーム。
同じフォルダにここから落としたpiro.dllをコピー。
下の説明を参考にして設定ファイルを作り"echino_alm.txt"の名前で同じフォルダにコピー。
設定ファイルをスキンフォルダの下に置くとそのスキンでのみ有効になります。
設定がうまくいってると、起動時に「アラ〜ム機能ON。だよ〜。」と、のたまいます。(Lv2:うざいんでやめました。)
注意
重要なのは、元々ある piro.dll は絶対に消さないと言うことです。
確実に piro2.dll にリネームしてください。(無いと偽「ぴろ」(妨害電波)が文句を言います。そして逝きます。)
あ、それと、ネットワーク更新で piro.dll がアップデートされた時は、当然ながら消えます。綺麗さっぱりと。
もし継続して使いたい時は入れ直してくださいね、
お手数かけます。
ダウンロード
[year/month/day/week/hour:minit TITLE]
10分前に表示するスクリプト
5分前に表示するスクリプト
設定時間に表示するスクリプト
5分後に表示するスクリプト
year =年(4桁)
month =月
day =日
week= 曜日(0=日曜日 1=月曜日 ・・・ 6=土曜日)
hour =時
minit =分
各項目に-1をセットすることで、その項目のチェックを無効に出来ます。
#アラームの設定例
#毎週日曜日午後6時にセットする場合
#
[-1/-1/-1/0/18:00 『カードキャプターさくら』]
\h\s010分前だよ〜。\e
\h\s05分前だよ〜。\e
\v\h\s0\8[notify.wav]ぴんぽ〜ん 時間だよ〜。\w9\w9\n見てますか?\e
\h\s05分過ぎたよ〜。\e
#毎日午後11時にアラームを鳴らす場合
#
[-1/-1/-1/-1/23:00 テレホたいむぅ〜]
\h\s010分前だよ〜。\e
\h\s05分前だよ〜。\e
\h\s0\8[notify.wav]時間だよ〜。早くつなごうよ〜\e
\h\s05分過ぎたよ〜。もう更新した?\e
えんいー