Skip to content

Latest commit

 

History

History
424 lines (250 loc) · 17.5 KB

REFERENCE.md

File metadata and controls

424 lines (250 loc) · 17.5 KB

va5 Reference

va5.bgm(path, opts) / va5.bgm(opts)

pathもしくはopts.pathをBGMとして再生する。 pathがまだロードされていない場合はロードを行ってから再生する。 (内部でロード待ちが発生する) optsの詳細は別セクションを参照。 既に別のBGMを再生中の場合は、まず再生中のBGMを va5.getConfig("default-bgm-fade-sec") かけて(デフォルト1秒) フェードアウト終了させてから、新しいBGMを再生する。 pathにnullが指定された場合は va5.stopBgm() と同じ挙動となる。

va5.bgs(path, opts) / va5.bgs(opts)

pathもしくはopts.pathをBGSとして再生する。 内部動作の実体は channel=__BGS として va5.bgm() を実行するだけ。

va5.floatToPercent(f)

小数値をパーセント整数値に変換するユーティリティ関数。

va5.getAudioContext()

WebAudioのAudioContextを取得する。Dumbの時はnullになる。 SEをon the flyに生成する時等に利用する。

va5.getBgmPos(ch)

BGMのチャンネルidを指定し、再生中の曲が先頭から何秒のところを現在 再生しているのかの位置を秒単位で返す。 途中から再生開始させた場合であっても、曲の先頭からが基準となる。 またpitchを変更している場合であっても、本来の曲の再生速度での位置となる。 再生が終了している等の場合はnullが返る。

va5.getConfig(key)

configパラメータ内容の取得。 詳細は別セクションを参照。

va5.getDeviceName()

内部で選択されたデバイスが文字列として返る。 "WebAudio" (再生可能)、もしくは "Dumb" (再生不可、何をやっても無音)。

va5.getDuration(path)

ロード済のpathの曲の長さを秒単位で取得する。 ロード済のpathのみ取得可能、未ロードの場合はnullが返る。 WebAudio非対応環境(Dumb)の場合は常に0が返る、注意。 もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる) ※音源ファイルの形式によっては、不正確になる事があります。 (勝手に無音部分が追加される場合がある為。詳細は他セクションを参照)

va5.getNowMsec()

WebAudio依存の、経過時間を測定する為の高精度のマイクロ秒数を取得する。 WebAudio依存の為、 va5.init() が実行される前はnullが返る。 また va5.init() が実行された後でも、タッチ操作等によるアンロックが 必要な環境では、アンロック前は0から進まない。 この秒数は現実の日時との相関関係がない。

va5.getSampleRate(path)

ロード済のpathのサンプリングレートの数値を取得する。 ロード済のpathのみ取得可能、未ロードの場合はnullが返る。 WebAudio非対応環境(Dumb)の場合は常に0が返る、注意。 単位はHz。ほとんどのケースで44100, 48000, 22050, あたりの値が得られる。 もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる)

va5.init()

システム全体の初期化。 最初に一度だけ行えばよい。二回目以上実行しても何もしない。 一部のconfigパラメータは va5.init() よりも先に設定しておく必要がある。 実行しなくても機能のしますが(再生時に内部でinitを実行している)、 「タッチ操作」等によるWebAudioのresumeのフックは この va5.init() によって設定されるので、なるべく早い段階で 実行しておく事をおすすめします。

va5.isCancelled(path)

指定したpathのロードがキャンセル終了していた時か、 そもそもロード要求が何もされていない時に、真を返す。 (つまり、ロード中、ロード成功、ロードエラーの時は偽を返す) もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる)

va5.isError(path)

指定したpathのロードがエラー終了していた時のみ真を返す。 もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる)

va5.isInBackground()

(ブラウザの)このタブがバックグラウンドかどうかを返す。

va5.isLoading(path)

指定したpathがロード待ちもしくはロード中の時のみ真を返す。 もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる)

va5.isUnlocked()

WebAudio固有の「ユーザのインタラクションによるアンロック処理」が 完了していて実際に音を鳴らせる状態になっているか、まだかを返す。 内部デバイスが"Dumb"の場合は常にtrueが返る。

va5.load(path, handle)

指定したpathの事前ロードを予約する。事前ロードはasyncに実行される。 handleが指定された場合、事前ロードが正常終了かエラー終了かキャンセル終了 した際にhandle()が実行される。 正常終了かどうかはva5.isError()やva5.isCancelled()等で確認する事。 pathが既にロード済(エラー含む)の場合は、何もせず即座にhandleを実行する。 もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる) bgm/se/voiceの各再生関数は、pathが未load状態だった場合は内部で このva5.load()を実行してくれる(ロード完了後に再生が開始される)。 もしエラー時にリトライしたい場合は、先にva5.unload(path)を行う必要がある。 (前述の通り、エラー時もキャッシュされている為)

va5.loadBuf(buf)

引数として渡されたオーディオバッファを即座にロードする。 返り値としてpath相当の文字列を返すので、 これをva5.se()等に渡す事でbufを再生できる。 このpathはunload可能だが、unload後の再利用はできないので注意する事。

va5.makePlaySePeriodically(intervalSec, path, opts)

毎フレーム連打されるSEを、実際の再生は一定間隔にしたいような時に使う ユーティリティ関数。引数なし関数が返される。返された関数を実行すると va5.se(path, opts)が実行される。ただし返された関数を毎フレーム実行しても 実際の再生間隔はintervalSec毎に間引かれる。間引かれた時はnullが返る。 (間引かれない時は通常通りチャンネルidが返る) もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる)

va5.percentToFloat(p)

パーセント整数値を小数値に変換するユーティリティ関数。

va5.playBgm(path, opts)

va5.bgm()のalias。

va5.playBgs(path, opts)

va5.bgs()のalias。

va5.playSe(path, opts)

va5.se()のalias。

va5.playVoice(path, opts)

va5.voice()のalias。

va5.se(path, opts) / va5.se(opts)

pathもしくはopts.pathをSEとして再生し、そのチャンネルidを返す。 チャンネルidはSEを途中で停止させる必要がなければそのまま捨てても問題ない。 pathがまだロードされていない場合はロードを行ってから再生する。 (内部でロード待ちが発生する) optsの詳細は別セクションを参照。

va5.setConfig(key, val)

configパラメータ内容の設定。 詳細は別セクションを参照。 一部のパラメータは va5.init() よりも先に設定しておかないと効果がない。 別の一部のパラメータは設定変更内容が即座に反映される。

va5.statsSe()

現在のSEの再生状況(再生中のchが何個あるか)の統計情報を取得する。 通常は利用する必要はない。デバッグ用。

va5.stopBgm(ch, fadeSec)

指定したchのBGMの再生をfadeSec秒かけてフェードアウト終了する。 fadeSecを指定しない場合はva5.getConfig("default-bgm-fade-sec")の秒数が 適用される。デフォルト値1秒。

va5.stopBgs(ch, fadeSec)

指定したchのBGSの再生をfadeSec秒かけてフェードアウト終了する。 fadeSecを指定しない場合はva5.getConfig("default-bgm-fade-sec")の秒数が 適用される。デフォルト値1秒。

va5.stopSe(ch, fadeSec)

指定したチャンネルidのSEの再生をfadeSec秒かけてフェードアウト終了する。 fadeSecを指定しない場合はva5.getConfig("default-se-fade-sec")の秒数が 適用される。デフォルト値は0秒。

va5.stopVoice(ch, fadeSec)

指定したchのVoiceの再生をfadeSec秒かけてフェードアウト終了する。 fadeSecを指定しない場合はva5.getConfig("default-voice-fade-sec")の秒数が 適用される。デフォルト値0.1秒。

va5.unload(path)

ロード済のpathをメモリから解放する。 このpathの全ての再生中のbgm/se/voiceは即座に再生停止する。 pathがロード中だった場合はキャンセルされる。 pathがロードされていない/既にunload済の場合は何も起きない。安全。 一度unloadしたpathを再度loadしたり再生しても問題ない。 もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる)

va5.unloadAll()

全てをunloadする。

va5.unloadAllIfUnused()

全てをunloadIfUnusedする。 ※現在の実装はかなり重いです。あまり頻繁に実行しないようにしてください。

va5.unloadIfUnused(path)

このpathがロード中でも再生中でもない場合にのみunloadする。 もしpathがObjectだった場合は、path.pathがpathとして参照される。 (bgm/se/voiceの第一引数にObjectを渡す時と対称になる)

va5.version

va5のバージョン文字列が入っている。

va5.voice(path, opts) / va5.voice(opts)

pathもしくはopts.pathをVoiceとして再生する。 optsの詳細は別セクションを参照。

va5.getConfig("is-output-error-log")

真なら、何らかのエラーがあった場合にその内容をコンソールに出力する。 デフォルト値true。 開発時は真にしておく事を推奨します。

va5.getConfig("is-output-debug-log")

真なら、非常に細かい動作情報ログをコンソールに出力する。 デフォルト値false。 通常はこれを真にする必要はありません。

va5.getConfig("volume-master")

va5のあらゆる再生の音量倍率。変更すると即座に反映される。 デフォルト値0.8。

va5.getConfig("volume-bgm")

va5.bgm()全体の音量倍率。変更すると即座に反映される。 デフォルト値0.5。

va5.getConfig("volume-se")

va5.se()全体の音量倍率。変更すると即座に反映される。 デフォルト値0.5。

va5.getConfig("volume-voice")

va5.voice()全体の音量倍率。変更すると即座に反映される。 デフォルト値0.5。

va5.getConfig("default-bgm-fade-sec")

BGMをフェードアウト終了させる際のデフォルトのフェード秒数。 デフォルト値1。

va5.getConfig("default-se-fade-sec")

SEをフェードアウト終了させる際のデフォルトのフェード秒数。 デフォルト値0。

va5.getConfig("default-voice-fade-sec")

Voiceをフェードアウト終了させる際のデフォルトのフェード秒数。 デフォルト値0.1。

va5.getConfig("is-pause-on-background")

これが真値ならタブがバックグラウンドになった際にBGMを停止します。 デフォルト値false。

va5.getConfig("is-unload-automatically-when-finished-bgm")

真値ならbgm/voiceの終了時に自動的に va5.unloadIfUnused() を実行します。 デフォルト値false。

va5.getConfig("se-chattering-sec")

同一SEがこの秒数以内に連打された場合は再生を抑制する。 デフォルト値0.05。 ※この値を動的に変更するのはおすすめしません。 SE毎に変動させたい場合は va5.makePlaySePeriodically() を推奨します。

va5.getConfig("is-use-dumb-mode-forcibly")

常にDumbモード(無音モード)で起動する。デバッグ用。 デフォルト値false。 va5.init() 後にこの値を変更しても効果がありません。

va5.getConfig("additional-query-string")

pathをロードする際に自動的にこの文字列をQUERY_STRINGとして付与する。 なお自動ではuriエスケープされないのでその点に注意する事。 デフォルト値null。

va5.bgm(opts) / va5.se(opts) / va5.voice(opts) のオプション詳細

  • opts.path : 再生関数の第1引数にObjectを渡す場合は、ここで再生したい音源のpathを指定する。

  • opts.volume : 再生時の相対音量の倍率を指定する。マスターボリュームとBgm/Se/Voiceのボリューム設定の影響を受ける。デフォルト値1.0。

  • opts.pitch : 再生時のピッチを指定する。デフォルト値1.0。下限0.1、上限10.0。

  • opts.pan : 再生時のパンを指定する。デフォルト値0.0。下限-1.0、上限1.0。

  • opts.loopStartSec : 「ループ再生の復帰ポイント位置」をファイル先頭からの秒数で指定する(これはpitchを変えた場合であっても本来の速度で換算される)。省略時は0秒地点。

  • opts.loopEndSec : 「ループ再生の末尾位置」をファイル先頭からの秒数で指定する。ただし0およびマイナス値を指定した場合はファイル末尾基準で換算される。省略時はファイル末尾。

  • opts.playStartSec : 曲の再生開始位置を秒数指定する。省略時はloopStartSec(もしくはloopStartから換算される秒数)と同じになる。loopStartSecと異なる値を設定可能。

  • opts.playEndSec : 省略時はループ音源として扱われる。これが指定されると非ループ音源扱いとなりループ系パラメータは無視され、この秒数地点に到達したタイミングで再生が即座に終了される。基本的には省略するか0を指定するかの二択。

  • opts.transitionMode : Bgm専用。 "connectNever" "connectIfSame" "connectIfPossible" のいずれかを指定する。デフォルト値は "connectIfSame" 。あるBgm再生中に同じ(もしくは近い)パラメータのBgmを再生しようとした時の挙動を指定する。 connectNever だった場合は常に一旦フェードアウト終了してから新たに再生し直す。 connectIfSame だった場合はボリューム以外のパラメータが同一の場合はボリューム適用のみ行う(pitch等が違っている場合はたとえ同じpathであってもconnectNeverの時と同様の処理になる)。 connectIfPossiblevolume pitch pan 以外のパラメータが同一の時に限り connectIfSame の処理を行う(この3パラメータは新しい値が適用される)。

  • opts.fadeinSec : Bgm/Voice専用。再生開始時にこの秒数かけてフェードインを行う。デフォルト値0秒。

  • opts.channel : Bgm/Voice専用。指定したチャンネル名(任意の文字列)に対してBgm/Voice再生を予約する。チャンネル名を指定する事で、同時に複数のBgmの再生とその制御が行える。指定したチャンネルに古い再生がなければ即座に再生が開始される。古い再生がある場合はそれを規定の秒数かけてフェードアウト終了した後に再生を行う。省略時のチャンネル名は "_bgm" だが、Voiceの場合はこのチャンネル名指定は必須となり省略する事はできない(Voiceに対応する人名などを示す文字列を指定するとよい)。

  • opts.isAlarm : Se専用。va5.getConfig("is-pause-on-background")が真値の時にバックグラウンド状態であってもSeを再生する(未実装)

specialFilename

音源ファイルの名前に特定の文字列を含むようにrenameする事により、 再生開始位置、再生終了位置、ループ開始位置、ループ終端位置を指定できます。 これらの詳細についてはplay系関数の該当引数の項目を参照してください。 もしplay系関数の引数も同時に与えられた場合は引数の方が優先されます。 ※play系関数の引数では単位が「秒」ですが、こちらの単位は「マイクロ秒」 になっています。注意してください。

以下のパラメータが指定可能です。

  • ループ開始位置 LS
  • ループ終端 LE
  • 再生開始位置 PS
  • 終了位置 PE
  • 特殊ショートカット NL ME (どちらも「非ループ音源」である事を示す、PLAYEND=0の省略形)

foo.m4a があった場合に foo__(パラメータ名)(数値).m4a のように renameする事で、パラメータを指定する事が可能です。 fooの直後のアンダーバーは二個必要です。 以下に実際のrename例を示します。

  • foo__LS500_LE2000_PS1000.m4a
  • foo__NL.m4a / foo__ME.m4a

Repository

https://github.com/ayamada/va5