---------------------------------------------------------------------------------------------------
hoot演奏支援「HootFavoritter」240310
黒羽製作所

C.H.E.A.P.の代わりになりそうな気がするhootフロントエンド
---------------------------------------------------------------------------------------------------

※ 初期状態が必要です、初めて使う方は初期設定の項目を済ませてください ※


Ｏ 特徴

・hootでドライバ単位ではなく曲単位でリストを作って時限再生をするためのツールです。
  曲単位で音量の設定、初期化時間等を設定もできます。ADPCM等の前読み込みが長いタイトルも安心です。
  曲切り替え時にフェードアウトも可能です。
  ついでにhootにD&Dできる形式のファイル(nsfやhesなど)も混ぜて登録できます。

・メイン画面は黒猫SPCのプレイリストにhootのキー操作を合体させたような操作性、
  プレイリストは真空波動研とほぼ同じような操作性になってます。


Ｏ 必要なもの/動作するOS

・動作OS
  Windows2000/XP/Vista/7/8/8.1/10です。

・hoot... - Sound Hardware Emulator
  20130602版以降が必要です。それ以前のバージョンでは動作しません。


Ｏ 他言語対応

  Langフォルダの中のiniをHootFavoritter.exeと同じ場所にLang.iniとして置く事で各種メッセージ等が入れ替わります。
  (Lang.iniが存在しない場合は日本語となります)


Ｏ 初期設定

  先にhootを起動させておいてください。(hootが起動してないとエラーで終了します)
  hootの起動が完了したらHootFavoritterRegistを起動して、hootserv.dllの場所をしてください。
  通常であればhootの本体と同じ場所にあります。

  次に[ファイル]->[リストをhootから読み込む]を選択して
  リストの取り込みます。

  登録が完了したら終了して、HootFavoritterの起動をしてください。

  [ファイル]->[リストを読み込む] はhootからリストを読み込まずに、hootclient listコマンドで得られるファイルを読み込みます。
  既に作ってあったりする人(いないと思いますが)はそちらでも良いと思います。

  xml更新で曲が増えた場合等もこの初期設定をしてDBの更新を行ってください。


Ｏ 使い方

  先にhootを起動させておいてください。
  起動していなくても立ち上がりますが、再生とかはできません。

  メイン画面はhootのプレイリストとほぼ同一の操作方法です。
  よく使うショートカットキーは以下になってます。

  最初の操作時はDBの読み込みに少々時間がかかります。

  停止ボタンは演奏中であればいつでも有効ですが、
  再生ボタンは曲名選択の階層でのみ有効です。

  [マウス左ダブルクリック] または [ENTER] : 1階層進む・曲名選択の階層の時は再生開始
  [BS] または [マウス右クリック] : 1階層戻る
  [INS] : 選択中の曲をプレイリストに登録(曲名選択の階層の時のみ)

  [ファイル]->[終了]
  終了します。

  [表示]->[プレイリスト]
  プレイリストを開きます。

  [プレイリストに登録] ※タイトル・曲名選択の階層の時のみ選択可能
  選択中の曲、またはタイトルの全曲をプレイリストに登録します。
  登録時の音量、ドライバロード時のウェイト(初期化)、曲切り替え時のウェイト(曲間)は標準のものが使われます。
  [INS]キーでも同じ操作ができます。

  [検索]->[次の候補]
  上部のテキストボックスに入力した単語を部分一致でリスト上を検索します。
  リスト最下部まで検索すると、リスト先頭からの検索をします。

  [検索]->[前の候補]
  上と逆の動作をします。リスト最上部まで到達すると、リスト最下部からの検索をします。

  [演奏]->[再生] ※曲名選択の階層の時のみ選択可能
  現在選択中の曲を再生します。
  
  [演奏]->[停止] ※曲名選択の階層の時のみ選択可能
  現在再生中の曲を停止します。

  [演奏]->[次の曲] ※曲名選択の階層の時のみ選択可能
  現在選択中の次の曲を再生します。リスト一番下の場合は先頭に戻ります。

  [演奏]->[前の曲] ※曲名選択の階層の時のみ選択可能
  現在選択中の前の曲を再生します。リスト一番上の場合は末尾に戻ります。

  [演奏]->[ランダム] ※曲名選択の階層の時のみ選択可能
  ランダムで選曲します。

  [設定]->[現在の音量を変更]
  現在再生中の曲の音量を変更します。hootのtotal_mixの値をそのまま入力します。
  0x100で等倍、0x200で2倍といった感じになります。
  入力は10進、16進どちらでも受け付けます、16進入力の場合は頭の0が不要です。(例: x100)

  [設定]->[現在の音量 +8]
  現在の音量を+8します。(最大0xFFFF)
  ショートカットキーを割り当ててあるので、それを使った方が楽だと思います。
 
  [設定]->[現在の音量 -8]
  現在の音量を-8します。(最低0)
  ショートカットキーを割り当ててあるので、それを使った方が楽だと思います。
 
  [設定]->[標準の音量]
  再生やプレイリスト登録時の音量を設定します。メイン画面から再生する場合は普段この音量が使用されます。
  数値に関しては上の[現在の音量を変更]と同じです。

  [設定]->[標準のドライバロード時のウェイト]
  再生時、ドライバをロードしてから再生開始しますがロードに時間がかるタイトルの場合、再生指示が無視されたり、
  演奏がおかしくなったりする場合があるので、その対策用のウェイトです。
  ロード後、指定された秒数待った後に再生を開始します。
  ADPCMのロードが長いものやMIDIもの等、前処理に時間がかかるタイトル用です。
  単位はミリ秒で1000で1秒です。通常は標準の値(500)で問題無いと思います。普段はこの数値のままにしておき、
  プレイリストからの再生で不具合が出るようであればプレイリスト側で個別に修正をした方が良いと思います。
  タイトーのF2,F3,JC等やSEGAのMODELx等は2000以下だと再生直後の発生が音抜けするようです。

  [設定]->[標準の曲切り替え時のウェイト]
  同じドライバで曲だけ変わる際のウェイトですが、曲停止時にもこのウェイトが使われます。
  単位はミリ秒で1000で1秒です。通常は標準の値(50)で問題無いと思います。

  [設定]->[標準のフェード時間]
  プレイリストに登録する際の標準のフェード時間を指定します。
  単位はミリ秒で1000で1秒です。

  [設定]->[標準のリスト再生時間]
  プレイリストに登録する際の標準の再生時間を指定します。
  単位は秒です。通常はプレイリストの方を個別に編集する事になると思うのであくまでもただの目安です。

  [設定]->[表示フォント]
  リストの表示フォントを指定します。プレイリストの方はプレイリストの方に別であります。

  [設定]->[ダークモード]
  VCLのStyleを使った似非ダークモード(Carbon)を適用します。
  現状のWindows10(1809)より良い結果のダーク具合になりますが起動するまでに1秒近く時間が余計にかかるようになります。
  似非なのでWindows10以外でもダークになり、Windows10上ではダークモードの設定の有効/無効に関係無く任意に変更できます。
  ※次回起動後から有効になります

  [設定]->[Hoot連携]->[起動時にhootも起動させる]
  [設定]->[Hoot連携]->[hootの指定]
  [設定]->[Hoot連携]->[hootのコマンドラインオプション]
  [設定]->[Hoot連携]->[終了時にhootも終了させる]
  HootFavoritter起動時にHootを起動、同じく終了時にHootも終了させます。
  先に[hootの指定]と[hootのコマンドラインオプション]の指定をしておき、[起動時にhootも起動させる]や
  [終了時にhootも終了させる]のチェックを付けると、次回起動時から反映されます。

  [設定]->[タスクトレイアイコンを使用しない]
  最小化時にタスクトレイに格納しなくなります。

  [設定]->[タスクトレイのバルーンヘルプを使用しない]
  タスクトレイ格納時にプレイリストでリスト順に再生をしていた場合、曲切り替わりの際に曲情報がバルーンで出ますが、
  これを出さなくします。

  [ヘルプ]->[バージョン情報]
  バージョン情報を見ます。URLとメールアドレスはクリックすると開けます。

  [ヘルプ]->[Readme.txt参照]
  このテキストを開きますのでちっとも参考にならない事請け合いです。

  [ヘルプ]->[History.txt参照]
  HISTORY.TXTを開きます。何か意味あるのかどうか怪しいんですが。


Ｏ プレイリストについて

  登録された曲について色々設定をしたり、実際に再生をしたりするリストになります。
  リストの[編集]メニューのほとんどは曲名を右クリックでも出ます。

  hootにD&Dで登録できるファイルの登録はリストにD&Dでも可能です。

  上部のテキストボックスに入力した単語で、タイトル名と曲名いずれかの部分一致で検索ができます。
  [検索]->[次の候補](F3) or [前の候補](SHIFT+F3) またはテキストボックス横のボタンで検索します。

  [ファイル]->[リストを開く]
  保存してあるプレイリストを開きます。
  元のリストはクリアされるので注意してください。

  [ファイル]->[ファイルを開く]
  hootにD&Dで登録できるファイルをリストに登録します。
  ファイルの形式はチェックしていないので注意してください。

  [ファイル]->[名前を付けて保存]
  リストの保存を行います。

  [ファイル]->[閉じる]
  プレイリストを閉じます。

  [編集]->[ドライバタイプ]
  ドライバタイプの変更します。変更できるのはファイルとして登録してある項目のみになります。
  その他の項目では何も起こりません。
  ※不用意に変更すると更新[F5]で見つけられなくなります

  [編集]->[ドライバ名]
  ドライバ名の変更します。変更できるのはファイルとして登録してある項目のみになります。
  その他の項目では何も起こりません。
  ※不用意に変更すると更新[F5]で見つけられなくなります

  [編集]->[タイトル]
  タイトルの変更します。変更できるのはファイルとして登録してある項目のみになります。
  その他の項目では何も起こりません。
  ※不用意に変更すると更新[F5]で見つけられなくなります

  [編集]->[曲名]
  曲名の変更します。変更できるのはファイルとして登録してある項目のみになります。
  その他の項目では何も起こりません。

  [編集]->[曲番号]
  曲番号の変更します。変更できるのはファイルとして登録してある項目のみになります。
  その他の項目では何も起こりません。
  入力は10進、16進どちらでも受け付けます、16進入力の場合は頭の0が不要です。(例: x100)
  曲番号を0xFFFFとしておくとロード時に再生コードの発行をしなくなります。
  hootにD&D後、即演奏が始まる形式に関しては0xFFFFにしておくと良いと思います。
  音量が0x100以外の場合は音量の変化が曲頭で一瞬解ってしまいますが、これは仕様です。
  気になる場合は音量は0x100のままにしておいてください。

  [編集]->[音量]
  選択した曲の音量を変更します。hootのtotal_mixの値をそのまま入力します。
  0x100で等倍、0x200で2倍といった感じになります。
  入力は10進、16進どちらでも受け付けます、16進入力の場合は頭の0が不要です。(例: x100)

  [編集]->[ドライバロード時のウェイト]
  選択された曲のロード時のウェイトを指定します。この秒数を待ってから再生になります。
  ADPCMのロードが長いものやMIDIもの等、前処理に時間がかかるタイトル用です。
  単位はミリ秒で1000で1秒です。

  [編集]->[曲切り替え時のウェイト]
  同じドライバで曲だけ変わる際のウェイトですが、曲停止時にもこのウェイトが使われます。
  単位はミリ秒で1000で1秒です。

  [編集]->[再生時間]
  リスト順に再生する場合の再生時間を指定します。
  単位は秒です。

  [編集]->[フェード時間]
  フェードアウトする場合の時間を指定します。
  単位はミリ秒で1000で1秒です。
  0でフェードアウトをしません。

  [編集]->[一つ上へ] / [一つ下へ]
  選択項目を一つ上か下へずらします。

  [編集]->[先頭へ] / [最下段へ]
  選択項目を先頭か、最後尾に移動します。

  [編集]->[削除]
  選択項目を削除します。

  [編集]->[クリア]
  リストを空にします。

  [編集]->[シャッフル]
  リストの内容をランダムで並べ替えします。元に戻せないので注意して下さい。

  [編集]->[更新]
  DBから曲名を再取得します。ファイルとして登録してある項目では何も起こりません。

  [編集]->[全て選択]
  全て選択します。

  [編集]->[選択の切り替え]
  現在の選択を反転します。

  [検索]->[次の候補]
  上部のテキストボックスに入力した単語を部分一致でリスト上を検索します。対象はタイトルと曲名です。
  リスト最下部まで検索すると、リスト先頭からの検索をします。

  [検索]->[前の候補]
  上と逆の動作をします。リスト最上部まで到達すると、リスト最下部からの検索をします。

  [演奏]->[再生]
  現在選択中の曲を再生します。
  
  [演奏]->[停止]
  現在再生中の曲を停止します。

  [演奏]->[次の曲]
  現在選択中の次の曲を再生します。リスト一番下の場合は先頭に戻ります。

  [演奏]->[前の曲]
  現在選択中の前の曲を再生します。リスト一番上の場合は末尾に戻ります。

  [演奏]->[ランダム]
  ランダムで選曲します。

  [設定]->[リスト順に再生]->[有効]
  プレイリストが画面に出ていて、かつどれか1つでも選択されていると、現在再生中のファイルが終り次第、
  リスト上の次のファイルの再生へと自動で移行します。(リストを開いていれば最小化していてもOKです)
  現在のファイル終了直後に選択されていた場所の次を選ぶ、という点に留意しておいて下さい。最後まで到達すると先頭に戻ります。

  [設定]->[リスト順に再生]->[そのままの順番]
  上の[リスト順に再生]->[有効]にチェックが付いている場合、次のファイルはリスト上で選択されている次の曲になります。
 
  [設定]->[リスト順に再生]->[ランダム再生]
  上の[リスト順に再生]->[有効]にチェックが付いている場合、次のファイルはランダムになります。

  [設定]->[リスト順に再生]->[単曲リピート]
  上の[リスト順に再生]->[有効]にチェックが付いている場合、現在選択されている曲を繰り返します。

  [設定]->[リスト順に再生]->[リストのループをしない]
  上の[リスト順に再生]->[有効]にチェックが付いている場合、リストの最下段まで演奏したら停止します。

  [設定]->[同じ曲は複数登録をしない]
  プレイリストに登録する際に重複する曲を登録しなくなります。

  [設定]->[演奏時にメインのリストを追従させる]
  リストからの再生時に、メインのリストを演奏するタイトルと曲名まで自動で選択させます。
  dbの都合上、起動して初めての読み込みは時間がかかります。

  [設定]->[表示フォント]
  リストの表示フォントを指定します。


Ｏ プレイリストの内容について

  UTF-16LEで保存されています。内容はタブ区切りのテキストなので内容を崩さなければExcel等でも編集可能です。
  項目の並びは以下の順です。

  データ種別 : [1] DBからの登録 [2]ファイルからの登録)
  ドライバタイプ
  ドライバ名
  タイトル
  曲名
  曲番号 : 16進
  音量 : 16進
  初期化(ドライバロード時のウェイト)
  曲間(曲切り替え時のウェイト)
  時間(再生時間)
  フェード(フェード時間)
  ファイルからの登録の場合のファイル名のフルパス


Ｏ アンインストールについて

  レジストリを使っていませんので、フォルダごと削除してしまえばそれで完了です。
  DBがおかしくなった場合はHootFavoritter.hfdbを消して再度初期設定をしてみてください。プレイリストの内容は消えません。


Ｏ 現状での仕様と決り事

  以下はC++Builder11に絡む仕様ですが、回避方法等が見つかった場合はできるだけ修正しようと思っています。

  ・ごく希にタスクバーとタスクアイコンが両方出てしまう場合があります。
  ・プレイリストがメインウインドウより上位に固定されます。


Ｏ お世話になった方々、ツール、その他

・Mersenne Twister (mt19937ar.c)
  Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
  All rights reserved.
  Copyright (C) 2005, Mutsuo Saito
  All rights reserved.
  http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html


Ｏ 使用許諾等

  当ソフトを使用した結果被った損害には一切保証しません。
  自己責任にて使用してください。

  使用形態に関して商用、非商用を問いませんが、
  商用の場合は事後報告でも良いので連絡をお願いします。


Ｏ 要望、文句とかはこちら(できる範囲で要望はなるべく実現します)

------------------------------------------------------
黒羽製作所(KUROHANE Works)
https://kurohane.net/
kurohane@kurohane.net
