
PHASE SURFER — STRATEGY GUIDE

PHASE SURFER — STRATEGY GUIDE
PLAYBOOK
攻略ガイド
読まなくても遊べるらしい
0. まず触る
いろいろな部分を触ると何か起こるらしい。
II/▶︎のボタンでSTARTするらしい。
中央にあるのがどうやらMAIN NOB。押すこともできるようだ。
再生中に伸びてゆくSEEK Barは掴むことができる。動かすことでJOGできる。
II/▶︎は再生中に押すとSTOPするらしい。
どうやら好きな曲も再生できるようだ。今のところ確認できているのは.wavと.mp3だが他の形式も対応しているらしい。
Mac版では音声ファイルを左右にあるSLOT、目立つ中央にあるSIDE A / SIDE B 、上部にあるP.1〜P.3 、そして叩くとすぐ音の鳴るT.1〜T.6へ直接D&Dできるようだ。
iPad版ではどうやら「ホーム画面に追加」したものの方が扱いやすい。
そしてMac版なら環境によってはMIDIで演奏もできるようだ。
vocoderに似ている。だがP・vocoderの表記なので少し普通とは違うようだ。MODホイールでパーティクル成分を混ぜて使うらしい。
確かにこれなら微妙な調節をしなくてもトーナル成分が少ないキャリアでも音程がつけやすい。
また外部入力音声も使えるようになったらしい。
iPadではSafariから「ホーム画面に追加」して使うのを推奨されている。通常のブラウザでも動くが、ホーム画面版の方が演奏向きだ。
MacでMIDIを使う場合はChrome / Firefoxを推奨。Safariでは現在MIDI演奏できないことが確認された。
Mac版Chromeでは、右上の︙メニュー →「キャスト、保存、共有」→「ページをアプリとしてインストール」からアプリ化できる。
iPadでは現在MIDI演奏には対応していない。将来については予測ができない。
上部にあるPOLYという化け物はファイルを噛み砕いて1部分だけにしてしまうらしい。
P.1〜P.3へ送り込むのは注意が必要だ。
だが、スライスして一つの断片にしてくれると思えば、逆手に取ることができるかもしれない。
再生中のSIDE Aへ落としても、古いAはすぐには切れないらしい。新しいAがREADYになり、次のSTARTで切り替わるのが確認された。
直接叩けるPADである『T』は普通に叩けば1ショットトリガーだ。
押し続けると、素材が最後まで鳴り終わるたびにループするらしい。
指を離しても現在鳴っている1発は途中で切れない。素材の長さが、そのままHOLD連打の周期になるようだ。
1. マルチタッチ
iPadのマルチタッチに対応しているようだ。LOOP / GAIN / FXなどを別の指でも操作できそうだ。
一つの指が何かを掴んでいても、別の指の演奏まで止めないらしい。指を離すまでは、可能な限り効果が続くようだ。
MUTEは通常のSURFER/POLYをmuteするが、Tだけは鳴るらしい。
ただしMASTERはTを含めて全部に効く。
少し早い。少し遅い。余計な指が触れた。
PHASE SURFERはそれを全部「誤操作」としてではなく、内部の数字として数えているらしい。
どうやら全ての場面において同じ操作をすることができれば同じ結果を呼び込めるらしいが、そんなことおそらく不可能だ。
2. SIDE A
Aは主役のtransportらしい。Bとは性格が違うようだ。
II/▶︎のボタンでSTARTするのはこのSIDE Aのようだ。もう一度押すとA transportが止まる。
再生中はseek barが進んでいく。SEEK / JOGで時間を直接掴むことができるようだ。
慣れれば複数地点を飛ぶ演奏技にもなるかもしれない。
3. SIDE B
B LOOPという縦方向のBARがある。どうやらBの再生ができるようだ。
音量が高い位置ほど大きい。
基本的にはどんな場合でも音がなるようだ。
たとえばAをSEEKで掴んでいてもB LOOPはSIDE Bを再生してしまう。
AにもBにもいくつかつまみがある。そのうちの一つはGAINのようだ。
後の二つはどうやらHPFとLPFになっているらしい。
4. GAIN
いろんな場所にGAINを意味するツマミがある。下げることもできるが、上げるとどうやらインプットゲインとしても働くようだ。
PHASE SURFERは明らかに過入力を歪に変えているように聴こえる。
どれくらいの強さなのか数字の表示がない。耳と指で探すしかないようだ。
5. PUSH
FADERの見えるものがある。だが普通のFADERではないようだ。
押し上げると何かが強くなる。これをPUSHと呼ぶことにしよう。
FADER PUSHは普通のvolume UPではないみたいだ。
上限から、さらに重く上へ押すことができる。
一番上が、「限界」のようだ。
だが離せばバネで戻ってしまう。
他の操作と同時に使えるらしい。
派手に聴こえるが固定することができないようだ。
……おや? MIDIだとこいつ固定できるぞ。
6. Slot Deck
筐体の外側には6箇所の空きスロットがある。
どうやらここに素材をおいていけるようだ。
Mac版ならD&DでもLOADでも対応しているらしい。
iPad版だとLOADするしかないようだ。
素材が入ると色がつく。好きな場所に移動できるみたいだ。
動かすとコピーされる時と入れ替わるときがある。
どうやらなんらかの法則があるようだ。
7. SURPRISE
MAIN NOBを叩くとSURPRISE FXが起きる。
何が選ばれるかは内部でPHASE SURFERが数えていた数字によるようだ。
連打すればコンボ回数を表示する。
8. 《空》は無音ではない
空とは無音ではなく、custom materialがいないことを意味するようだ。
《空》を運ぶこと自体が盤面の文法になる。
RESETも、ただ「消す」操作ではない。
その場所が持つdefaultへ帰るらしい。
9. 持ち帰る
どうやら左上の『PHASE SURFER』のロゴを長押しすることで『AUDIO EXPORT』や『.pfer』に関してSAVEに近いことができるらしい。
演奏して、良い状態や素材ができたら外へ持ち帰ることができるようだ。
『AUDIO EXPORT』は盤面の素材を.wavに書き出してくれるらしい。
だが『AUDIO EXPORT』は全ての演奏が止まった状態からでないとどうやらプレビューも持ち帰りもできないようだ。
『.pfer』はPHASE SURFER専用の拡張子のようだ。
= SELF-CONTAINED SESSION / STATE RESTORE
つまりセーブ機能のようだ。
『*_default.pfer』のファイル名ならパーカッシブな部分のdefault音が書き変わるらしい。
ファイル名に_defaultを書き足すのは面倒だができないよりマシだ。
マック版なら操作中『.pfer』ファイルもウィンドウ内にD&DでLOADと同じように切り替わるらしい。
再生中なら古いAをbridgeとして残したまま新しい盤面へ切り替わり、POLYが走っていればclockも止まらない。
ここで威力を発揮するのは操作盤面上にある『HARVEST』と書かれた3種類の長さを持つ録音に近い機能だ。
ダブルタップで開始して、1タップで終了する。時間切れでも終了する。
実際に鳴ったlive historyから新しいmaterialを作ってしまう。
最長30秒という制限があるらしい。
だが左右にあるSlot Deckに『空』の場所が必要のようだ。これはかなり重要な機能のようだ。
10.面倒くさくなってきた
完成させる方が先だ。
◆メモ書き
■以下にいま分かっていることを書き記す。
・PHASE SURFERのロゴを長押しするとABOUTが開く
・ABOUTには現在のバージョン表記がある
・ABOUTには「読み込む素材および制作物の権利については、利用者自身の責任で判断してください。」と書かれている
・ABOUTにはGUIDEへのリンクがある
・ABOUTにはSAVE .PFERがある
・ABOUTにはSHARE .PFERがある
・ABOUTにはLOAD .PFERがある
・ABOUTにはAUDIO EXPORTがある
・ABOUTにはRECORDED ERRORSがある
・ABOUTにはEXPORT DEBUG LOGがある
・PHASE SURFERはブラウザで動作する
・iPadで動作する
・Macで動作する
・iPadのホーム画面から起動できる
・MacのDockに追加できる
・一度オンラインで必要な本体ファイルを取得するとオフライン起動できる
・フライトモードで起動できることを実機確認済み
・フライトモードで音が鳴ることを実機確認済み
・フライトモードで完全終了後に再起動しても音が鳴ることを実機確認済み
・新しいService Workerが入っても演奏中に強制リロードしない
・新しい版への切り替えは通常のnavigation/reloadで行われる
・Cloudflare Pages経由でiPad実機再生まで確認済み
・音声ファイルをSLOTへ読み込める
・読み込み候補にはWAVがある
・読み込み候補にはWAVEがある
・読み込み候補にはMP3がある
・両サイドにはSLOT 1〜SLOT 6までの計6個がある
・空のSLOTにはEMPTYと表示される
・各SLOTにはLOADがある
・各SLOTにはEJECTがある
・各SLOTにはHOME表示がある
・各SLOTにはLEN表示がある
・各SLOTには5段階の星がある
・星の数は自由につけられるが音そのものには関係がない
・SLOTを1回タップするとSIDE Bとの交換が行われる
・SLOTを2回タップするとSIDE Aとの交換が行われる
・SLOTのダブルタップ判定時間は340ms
・SLOTをダブルタップしてSIDE Aへ送るとHEADから再生される
・SLOTダブルタップは停止中からでも再生を開始できる
・SLOTダブルタップでSIDE Aへ入れた場合、通常のSTART時のSURPRISEは発生しない
・SLOTシングルタップはSIDE Bを使う
・SLOTの表示にも「1× B · 2× A」と書かれている
・EJECTは1回では捨てない
・EJECTを1回押すと確認状態になる
・確認中の表示はAGAINになる
・EJECT確認時間は850ms
・850ms以内にもう一度EJECTするとそのSLOTのmaterialを破棄する
・外部LOADはそのSLOTへの明示的なoverwriteとして扱われる
・EJECTは明示的なdiscardとして扱われる
・materialの内部移動では空の行き先と埋まった行き先を区別する
・空の行き先へmaterialを送るとCOPYになる
・埋まった行き先へmaterialを送るとSWAPになる
・COPYでは元のmaterialが残る
・SWAPでは双方のmaterialが入れ替わる
・COPYだけでは音声bufferを焼き直さない
・SWAPだけでは音声bufferを焼き直さない
・同じmaterialのCOPYは同じ音のまま
・materialの置き場所が変わっただけでは別の音として扱わない
・SLOT、SIDE A、SIDE Bは同じmaterial ratingを共有する
・SIDE Aで★を変えるとそのmaterialのratingが変わる
・SIDE Bで★を変えるとそのmaterialのratingが変わる
・SLOTで★を変えるとそのmaterialのratingが変わる
・同じmaterialを別の場所へ運んでもratingはmaterialについて移動する
・TRIMで新しい音になったmaterialは0★になる
・P STATE PRINTで新しく作られたmaterialは0★になる
・HARVESTで新しく作られたmaterialは0★になる
・読み込んだファイルにはmaterialごとの色が付く
・同じfilenameは同じsession内で同じ色keyを使う
・黄色・amberはmaterial色ではなく現在状態やLIVE表示用に残してある
・SIDE Aがある
・SIDE Bがある
・通常のtransport再生対象はSIDE A
・Ⅱ/▶︎でSIDE Aを再生できる
・SIDE Aは繰り返し再生される
・停止中にⅡ/▶︎を押すと再生が始まる
・通常のSTARTではSURPRISEが1回発生する
・停止中に人間がLOOP POSITIONを決めていない場合はHEADからSTARTする
・停止中に人間がLOOP POSITIONを決めている場合はそのCURRENT POSITIONからSTARTする
・SIDE Aのカードを1回タップするとSIDE AをARMする
・ARM後にSIDE Aをもう一度タップするとSIDE A自身のHOMEへ戻りHEADから再生する
・SIDE Bのカードを1回タップするとSIDE BをARMする
・ARM後にSIDE Bをもう一度タップするとSIDE BがSIDE AになりHOMEへ戻りHEADから再生する
・SIDE A/Bカードのこの操作にはタイムアウトがない
・別のdeckをタップするとARM対象がそのdeckへ移る
・SIDE AとSIDE BにはそれぞれGAINがある
・SIDE AのGAIN範囲は-48dB〜+12dB
・SIDE BのGAIN範囲は-48dB〜+12dB
・SIDE AとSIDE BのGAINは別々の指で同時操作できる
・SIDE A/B GAINには4msのlive smoothingがある
・SIDE AとSIDE BにはそれぞれHPFがある
・SIDE AとSIDE BにはそれぞれLPFがある
・FILE HPFの範囲は20Hz〜5kHz
・FILE LPFの範囲は90Hz〜20kHz
・FILE HPF/LPFはmaterialに保存されるpersistent state
・FILE HPF/LPFはmaterialと一緒に移動する
・FILE HPF/LPFは操作しただけでは元bufferを書き換えない
・FILE HPFを長押しすると全開状態へ戻る
・FILE LPFを長押しすると全開状態へ戻る
・FILE FILTERのQは0.707
・FILE FILTERのfull throwは900px
・SIDE AとSIDE BにはHOME値が表示される
・SIDE AとSIDE BにはLENが表示される
・SIDE AとSIDE Bにはratingが表示される
・A◀︎/▶︎Bボタンがある
・A◀︎/▶︎BはSIDE AとSIDE Bの役割を入れ替える
・停止中にTURNするとSIDE BがSIDE Aになる
・停止中のTURNでは新しいSIDE AはHEAD位置になる
・再生中にTURNすると現在の相対再生位置を次のmaterialへ引き継ぐ
・再生中TURNでは現在の動きも次のmaterialへ引き継ぐ処理がある
・source BPM情報が双方にある場合はBPM bridgeを使う
・再生中TURNではcourtesy delay throwが入る
・再生中TURNのあとSURPRISEが1回発生する
・TURN先がまだ再生準備できていない場合、現在のSIDE Aを止めずに準備を待つ
・TURN待ち中にもdeterministicな時間稼ぎSURPRISEが使われる場合がある
・TURN準備中にSIDE B自体を交換すると古いTURNはキャンセルされる
・TURNではSIDE Aのrelative phaseをSIDE Bへ移す
・TURNはHEADへの単純な切り替えではない
・SIDE Bをカードから直接SIDE Aへする操作はHOME/HEADから始まる
・A◀︎/▶︎Bは現在の動きを引き継ぐ操作
・SIDE Bカードの二段タップはそのrecord自身のHOMEへ戻る操作
・LOOP POSITION表示がある
・LOOP POSITIONを人間が直接変更できる
・absolute LOOP POSITION SEEKがある
・SIDE A再生中にもSEEKできる
・停止中にも位置を決められる
・LOOP POSITION SEEKは最初の指をPRIMARYとして扱う
・PRIMARYを保持したまま別の指をLOOP POSITIONへ置ける
・追加の指はSTANDBY位置として記憶される
・PRIMARYを離すと保持中の古いSTANDBYがPRIMARYへ昇格する
・このSEEK handoffは複数の位置を手で持つことができる
・別の指がPRIMARYを勝手に奪わない
・iPadではabsolute SEEKを開始したTouch.identifierも追跡する
・Pointer Eventsのreleaseが失われた場合に同じtouchだけを使ったrelease rescueがある
・SIDE A TRIMがある
・SIDE A TRIMを1回押すとTRIM sessionが開く
・TRIM sessionには2個のmarkerがある
・head markerを動かせる
・tail markerを動かせる
・markerは何度動かしてもreleaseだけではcommitしない
・SIDE A TRIMをもう一度押してreleaseするとcommitする
・2回目のSIDE A TRIMは押したまま待てる
・markerを一度も動かさなかった場合、2回目のrelease時点の再生位置で耳によるtail cutができる
・TRIM中にSTOPしてもTRIM sessionは残る
・TRIM中に停止して再開してからTRIMを続けられる
・TRIMではheadとtailの順序を逆にすることもできる
・reverse TRIM状態が存在する
・TRIMの最小長には128frameのtechnical floorがある
・TRIMでmaterial自体のSTART/ENDが変わる
・TRIMしたmaterialは別の場所へ運んでもその切断位置を保持する
・MAIN KNOB TAPはTRIM previewの明示的cancelにも使われる
・基準速度は94BPM
・通常の速度操作領域は24〜140BPM相当
・raw playback rateの最小は1/32倍
・raw playback rateの最大は8倍
・SPEEDを変えるとpitchも一緒に変わる
・time-stretchでpitchだけを固定する処理は使っていない
・メインノブを縦にドラッグするとSPEED + PITCHが変わる
・メインノブを長押しするとHOMEへ戻る
・HOMEでは94BPM相当に戻る
・ユーザー素材のHOME表示は1.000×基準になる
・HOME復帰アニメーション時間は150ms
・メインノブをタップするとSURPRISEが発生する
・TURN FXに次のSURPRISE候補が表示される
・SURPRISEの候補にはSTUTTERがある
・SURPRISEの候補にはBRAKEがある
・SURPRISEの候補にはDELAY CUTがある
・SURPRISEの候補にはSEEK CHAINがある
・SURPRISEの候補にはA/B SWITCHがある
・SURPRISE bag内にはSTUTTERが2枚ある
・SURPRISE bag内にはBRAKEが2枚ある
・SURPRISE bag内にはDELAY CUTが2枚ある
・SURPRISE bag内にはSEEK CHAINが1枚ある
・SURPRISE bag内にはA/B SWITCHが1枚ある
・SIDE Bが再生できない時はA/B SWITCHを候補から外す
・A/B SWITCHが使えない状態でもSURPRISE候補は残る
・SURPRISEを430ms以内にもう一度タップすると同じeffectを繰り返す
・430msを越えると新しいeffectを選ぶ
・SURPRISEの回数は×N表示される
・SURPRISE発生時にメインノブ周辺が短く光る
・STUTTERは現在位置付近の短いsliceを反復する
・STUTTERは7回のrestartをscheduleする
・STUTTERはSPEED/PITCHを変更しない
・BRAKEは一度raw rateを0.26まで落とす
・BRAKEの下降時間は420ms
・BRAKE後は現在のBPM相当へ戻る
・BRAKEの復帰アニメーションは165ms
・BRAKEの低速滞在には105msの待ちがある
・DELAY CUTは現在BPMからdelay timeを決める
・DELAY CUTはdryを一時的に落とす
・DELAY CUTはwetを一時的に上げる
・DELAY CUTは時間経過でdryへ戻る
・SEEK CHAINは複数回の位置ジャンプを自動で行う
・SEEK CHAINのジャンプ回数は2〜8回
・SEEK CHAINはbeat gridへquantizeしない
・SEEK CHAINはBPMを変更しない
・SEEK CHAINはpitchを変更しない
・A/B SWITCHはSIDE AとSIDE Bの音を短時間で往復する
・A/B SWITCHの往復回数は偶数
・A/B SWITCHは最後にSIDE Aへ戻る
・A/B SWITCHは2〜6往復pairから決まる
・A/B SWITCHの各切替間隔は58〜168ms
・A/B SWITCHは現在の相対位置を両material間で維持する
・A/B SWITCHはSIDE A/Bの表示上の役割を恒久的には交換しない
・A/B SWITCHはBPM automationを行わない
・A/B SWITCHはpitch automationを行わない
・A/B SWITCHの切替には8ms handoffを使う
・INTERCHANGE LABボタンがある
・INTERCHANGE LABではSTUTTERが入る
・INTERCHANGE LABでは複数のpitch catchが入る
・INTERCHANGE LABではBRAKE状のdipが入る
・INTERCHANGE LABではDELAY CUT状のexitが入る
・INTERCHANGE LABの最終着地点はそのmaterialのHOMEに対する12平均律の最も近いsemitoneへ丸められる
・通常の手動SPEED dragはsemitoneへsnapしない
・SURPRISEの通常SPEED変化もsemitone snapを前提にしない
・INTERCHANGE LABは最終着地点の微調整を機械側へ渡す操作
・再生中にⅡ/▶︎を押すと即時停止ではなくOUTROが始まる
・OUTRO開始時にSURPRISE effectが1個選ばれる
・OUTRO中にもう一度Ⅱ/▶︎を押すと同じOUTRO effectをもう一度実行する
・OUTRO中にさらに押すと同じeffectを繰り返せる
・OUTROの終了待ち時間は現在BPMに連動する
・OUTRO windowの下限は480ms
・OUTRO windowの上限は1500ms
・OUTRO終了後にtransportはSTOPPEDになる
・最終STOP時にDELAY +1が入る
・最終STOP後にdelay tailが残る
・tail bend windowは4600ms
・tailが生きている間はメインSPEED操作でdelay timeを変えられる
・STOPはPOLYを停止する操作ではない
・STOPは保持中のMICROを強制releaseしない
・STOPは保持中のDUBを強制releaseしない
・STOPは保持中のLPFを強制releaseしない
・STOPは保持中のHPFを強制releaseしない
・STOPは保持中のMUTEを強制releaseしない
・STOPはACTIVE TRIM sessionを消さない
・JOGを保持したままでもtransport STOPできる
・JOG保持中のSTOPではJOG側の指所有権は残る
・JOGを離してもtransportがSTOP済みなら勝手に再生再開しない
・LPFボタンがある
・MUTEボタンがある
・DELAYボタンがある
・HPFボタンがある
・MICRO LOOPがある
・これらはmomentary performance controls
・LPF、MUTE、DELAY、HPF、MICROは別々の指で同時に保持できる
・LPFはSURFERとPOLYの両方へ作用する
・HPFはSURFERとPOLYの両方へ作用する
・MUTEはSURFERとPOLYの両方をmuteする
・MUTE中も内部時間は止まらない
・MUTEを離すとその時点の音へ戻る
・LPFは押した場所から下へ動かすほど閉じる
・LPFは上へ戻すほど開く
・LPFをreleaseすると全開へ戻る
・momentary LPFのopen値は20kHz
・HPFは押した場所から上へ動かすほどlowを削る
・HPFは下へ戻すほど開く
・HPFをreleaseすると全開へ戻る
・momentary HPFのopen値は20Hz
・DELAYは押すとdelayへ新しい音を送る
・DELAYを保持するとfeedbackが深くなる
・DELAYを保持するとdry levelが減る
・DELAYを下へdragするとdelay timeが短くなる
・DELAYをreleaseすると新規inputを止める
・DELAY release後も有限のtailが残る
・DELAYの最低delay timeは25ms
・DELAYは独立したfeedback loopを持つ
・MUTE中もDELAY内部の時間は進む
・MICRO LOOPはmomentary
・MICRO LOOPは1本指で操作できる
・MICRO LOOPの下側を触るほど長いloopになる
・MICRO LOOPの上側を触るほど短いloopになる
・MICRO LOOPを保持したまま上下にdragするとloop lengthが変わる
・MICRO LOOPをreleaseすると通常のSURFER timelineへ戻る
・MICRO LOOPの最小長は2.5ms
・MICRO LOOPの最大長は640ms
・MICRO LOOPには5msのcrossfadeがある
・MICRO LOOP保持中にSIDE Aが交換されても、すでに指が持っている古いAのgrainを保持できる経路がある
・TURNでSIDE Aが変わっても保持中MICROはreleaseまで残れる
・SLOTダブルタップでSIDE Aが変わっても保持中MICROはreleaseまで残れる
・STOPしても保持中MICROをその指のreleaseまで残せる
・B LOOPがある
・B LOOPはSIDE Bを直接演奏する
・B LOOPをtouchすると現在のSIDE B materialをHEADから再生する
・B LOOPを保持するとSIDE Bの現在cycleを繰り返す
・B LOOPを上下dragするとB LOOPのvolumeが変わる
・B LOOPをreleaseすると止まる
・B LOOPを触った時点のmaterialは指がreleaseするまで捕まえておく
・B LOOP保持中にSIDE Bカードが別materialへ交換されても、保持中の音は元materialのまま続く
・保持中のB LOOPと同じmaterialのSIDE B GAINを動かすと、その鳴っているB LOOPにもGAIN変更が追従する
・B LOOP自身のvertical volumeとSIDE B material GAINは別の倍率として働く
・B LOOPのgain smoothingは4ms
・B LOOP release fadeは6ms
・B LOOPは他の指のtouchcancelで勝手に終了しないようown touchを判定する
・B LOOP自身のpointercancel/lostpointercaptureでは終了処理がある
・window blur、pagehide、document hiddenはB LOOPの安全終了条件
・MASTER faderがある
・MASTERは1本指で操作できる
・MASTER上端はunity
・MASTER下端はmute
・MASTERは通常領域ではattenuation-only
・MASTERの前にMASTER CHARACTERがある
・MASTER CHARACTERはmemoryless soft saturation
・MASTER CHARACTERのwaveshaperは2× oversampling
・MASTERの後に30Hz final safety HPFがある
・MASTERをunityよりさらに上へ押し込むとFADER PUSHになる
・FADER PUSHは別ボタンではない
・FADER PUSHはMASTERの延長操作
・FADER PUSHはspring-loaded momentary gesture
・FADER PUSHではMASTER CHARACTERへのdriveが増える
・FADER PUSHでは小さなhigh-shelf liftも加わる
・FADER PUSH中にunityより下へ指を戻すと通常MASTER領域へ戻る
・FADER PUSHをreleaseするとneutralへ戻る
・FADER PUSH中は表示上のfader thumbも上へ押し出される
・64pxの指overtravelに対して表示thumbは最大約16px上へ動く
・FADER PUSH release時に表示thumbはunity位置へ戻る
・hidden PUNISHがある
・PUNISHというpublic labelは画面に追加されていない
・PUNISHの入口はTURN FX forecast cell
・PUNISHはmomentary
・PUNISHは1本指で操作できる
・PUNISHはtouchした瞬間からdistortion damageが始まる
・PUNISH入口は旧最大PUNISHより浅い
・PUNISH入口はfiltered distortion寄り
・PUNISH入口のpre-shaper driveは1.8
・PUNISH入口のdryは0.20
・PUNISH入口のwetは0.60
・PUNISH入口のLPFは7.2kHz
・PUNISH入口のpresenceは+2.8dB
・PUNISHは発動地点から指を離すほど深くなる
・PUNISHはradial distanceで深さを決める
・約180pxで最大depthになる
・指を発動地点へ戻すとdamageも浅く戻る
・PUNISH最大のpre-shaper driveは5.8
・PUNISH最大のdryは0.08
・PUNISH最大のwetは0.90
・PUNISH最大のHPFは72Hz
・PUNISH最大のLPFは11.8kHz
・PUNISH最大のpresence中心は2.1kHz
・PUNISH最大のpresence gainは+5.5dB
・PUNISH最大のpresence Qは0.82
・PUNISHをreleaseするとNORMALへ戻る
・PUNISHはPUSHと同時に保持できる
・PUNISHはB LOOPと同時に使える
・PUNISHはGAIN操作と同時に使える
・PUNISHはTRIGGERと同時に使える
・iPadでPointer Eventsを失った場合は同じTouch.identifierを追跡するfallbackがある
・PUNISHの最大移動距離はDEBUG LOGへ記録される
・PUNISHの最大depthはDEBUG LOGへ記録される
・PUNISHの保持時間はDEBUG LOGへ記録される
・POLYがある
・POLYにはⅡ/▶︎がある
・POLYはSTART/PAUSEできる
・POLYのSTARTボタンをholdするとPOLY defaultsへRESETする
・POLYの基準BPMは92
・POLY全体のGAINがある
・POLY GAIN範囲は-48dB〜+12dB
・POLY GAINをholdするとHOMEへ戻る
・POLY SPEEDがある
・POLY SPEED範囲は0.25倍〜4倍
・POLY SPEEDをholdするとHOMEへ戻る
・POLY HPFがある
・POLY HPF範囲は10Hz〜4kHz
・POLY HPFをholdするとopenへ戻る
・POLY LPFがある
・POLY LPF範囲は100Hz〜20kHz
・POLY LPFをholdするとopenへ戻る
・POLY DELAYがある
・POLY DELAYは0〜1のamount
・POLY DELAYを上または右へ動かすと増える
・POLY DELAYを下または左へ動かすとdry側へ戻る
・POLY DELAYをholdするとdryへ戻る
・POLY DELAYはair、room、doubling、flam、short slap領域を作る
・POLYにはP.1がある
・POLYにはP.2がある
・POLYにはP.3がある
・P.1 factoryはkick系
・P.2 factoryはsnare系
・P.3 factoryはhat系
・P.1のzoneをtapするとMUTE/UNMUTE
・P.2のzoneをtapするとMUTE/UNMUTE
・P.3のzoneをtapするとMUTE/UNMUTE
・P.1のzoneをdragするとP.1 GAIN
・P.2のzoneをdragするとP.2 GAIN
・P.3のzoneをdragするとP.3 GAIN
・P.1をholdするとGAIN HOME
・P.2をholdするとGAIN HOME
・P.3をholdするとGAIN HOME
・P.1個別GAINは-48dB〜+12dB
・P.2個別GAINは-48dB〜+12dB
・P.3個別GAINは-48dB〜+12dB
・P.1、P.2、P.3は別々の指で同時操作できる
・POLYの各knobとP.1〜P.3も別々の指で同時操作できる
・POLYのruntime発音選択にはMath.randomを使っていない
・POLYのseed paletteは2、3、27
・POLYは16-step phrase単位のdeterministic rotationを持つ
・re-anchorにはa=v2(3n+1)を使う
・kickのdeterministic quotaは7/10
・snareのdeterministic quotaは12/25
・hat burstのdeterministic quotaは7/10
・normal hatのdeterministic quotaは3/5
・stutterのdeterministic quotaは3/5
・これらの数字は確率ではなくquota
・factory snare/hat variantは0→1→2→3の順でrotationする
・factory snare/hat波形生成にはfixed-seed xorshiftが使われている
・fixed-seed xorshiftは演奏中のランダム選択ではない
・factory P.1 recipe gainは0.224
・factory P.2 recipe gainは0.195
・factory P.3 recipe gainは0.140
・custom materialをPへ入れた場合はfactory recipe gainを適用しない
・custom P materialはunityからP個別GAINへ入る
・custom P materialには自動normalizationをかけない
・custom P materialには自動peak matchingをかけない
・custom P materialには自動boostをかけない
・custom materialがPへ入るとMATERIAL EATER対象になる
・factory/default PはMATERIAL EATERで食べない
・MATERIAL EATERはattackからsustained silenceまでをcandidateとして探す
・MATERIAL EATERのscan blockは約2.8ms
・scan時のsample strideは8frame
・absolute thresholdは-54dBFS相当
・relative thresholdはscan peakの1%
・silence holdは60ms
・minimum candidate durationは15ms
・attack pre-rollは2ms
・candidateが0個の場合はno-op
・candidateが1個の場合はそのcandidateを使う
・選ばれた部分はself-contained AudioBufferになる
・MATERIAL EATER後の切断は元Fileに依存しない
・MATERIAL EATER後のmaterialをPから外へ運んでも切断結果は残る
・MATERIAL EATERはmaterialのratingを勝手に変更しない
・MATERIAL EATERはmaterialのcolorを勝手に変更しない
・MATERIAL EATERはmaterial GAINを保持する
・MATERIAL EATERはFILE filter stateを保持する
・Pから外へ出す時にP STATE PRINTを使う経路がある
・P STATE PRINTは現在のPの音状態から新しいmaterialを作る
・P STATE PRINTはcreation boundary
・P STATE PRINTは0★ materialを作る
・P→SLOTはraw P materialをそのまま運ぶ経路ではなくSTATE PRINTになる
・P→Tもraw P materialをそのまま運ぶ経路ではなくSTATE PRINTになる
・P→空のTではSTATE PRINT COPYになる
・P→custom occupied TではSTATE PRINT SWAPになる
・P→空のTではP側materialは残る
・P→custom occupied Tでは古いT materialが攻撃元Pへ返る
・Pへ戻った古いT materialはMATERIAL EATER対象になり得る
・T.1がある
・T.2がある
・T.3がある
・T.4がある
・T.5がある
・T.6がある
・T.1〜T.3は左側playback laneを共有する
・T.4〜T.6は右側playback laneを共有する
・T padのfaceはHIT用
・T labelはGAIN用
・T padとT GAINは別の操作面
・T.1〜T.6には個別GAINがある
・T GAIN範囲は-48dB〜+12dB
・T labelを動かすとGAINが変わる
・T labelを静止したまま2秒holdするとそのTだけfactory resetされる
・RESET判定中に8px以上動かすとRESETをcancelする
・T RESETはそのpadだけに作用する
・T RESETはfactory sampleへ戻す
・T RESETはfactory gainへ戻す
・Tには自発的なTAKEOUT操作がない
・custom T materialをT自身から外へdragして取り出す経路は無効化されている
・T materialは別locationからoccupied Tを攻撃された時に外へ出る
・default Tは音として鳴る
・default Tは物流上のmaterial occupantとして扱わない
・default Tはvacancy renderer
・custom Tはoccupiedとして扱う
・すでに鳴っているT voiceは盤面material交換だけでは強制停止しない
・material交換後の次のHITから新しいmaterialを使う
・T HITにはweak/NORMAL/strong transient分類がある
・touchのcontact footprintをpseudo-velocity情報として使う
・mouseではNORMAL扱い
・keyboardではNORMAL扱い
・contact geometryが利用できないtouchもNORMAL扱い
・strong hitはattack部分が少し大きく明るく速い
・weak hitはattack部分が少し小さく暗く丸い
・HIT transientはmaterial stateを書き換えない
・HIT transientはperformance-only
・HIT transientの差は主に最初の約0〜30msにある
・約100msまでにneutralへ戻る
・HITによってGAINやratingやfilter stateは変更されない
・T.3 factoryはkick
・T.3のfixed 2700Hz sineは削除済み
・T.3 attackにはdeterministic high-difference noiseを使う
・T.3のnoise click係数は0.30
・T.3のlow bodyは残してある
・T.3のpitch fallは残してある
・T.3のsecond harmonicは残してある
・T.3は外部sampleを使わないlocal synthesis
・T.4 factoryはcrash系
・T.4はstable pitch centerを減らしたnon-tonal方向のrecipe
・T.4のdifference-noise foundationは残っている
・default Pは音として鳴る
・default Pは物流上vacancyとして扱う
・default Pへmaterialを送るとCOPYになる
・custom Pへmaterialを送るとSWAPになる
・EMPTY/default Pでoccupied targetを攻めると相手materialをPへ奪える
・EMPTY/default Pが奪ったcustom materialもMATERIAL EATERへ入る
・EMPTY Sでoccupied targetを攻めると相手materialをSへ奪える
・EMPTY Sでcustom Pを攻めるとcustom P materialを奪い、Pはdefaultへ戻る
・空は「無音material」ではなくcustom occupantがいない状態として扱われる
・HARVEST 1がある
・HARVEST 2がある
・HARVEST 3がある
・HARVESTの3候補はdeterministicに計算される
・HARVESTには乱数を使わない
・HARVEST候補時間はfirst-drop stopping timeから作られる
・HARVESTのtechnical ceilingは30秒
・HARVESTはcurrent orbitから最初の3種類の異なるfirst-drop時間を探す
・同じ時間が続いた場合は別の時間が見つかるまでorbitを進む
・HARVESTを1回tapするとARM
・ARMした同じHARVESTをもう一度tapすると録音開始
・録音中にactive HARVESTを1回tapするとその瞬間にcutして保存する
・録音中に何もしなければ最大地点で終了する
・HARVEST中は残り時間が表示される
・HARVEST中は録音済み時間が表示される
・HARVEST中の他2候補はCAPTURE ACTIVE表示になる
・HARVESTは実際に鳴ったlive historyをcaptureする
・HARVESTにはSIDE A/Bが含まれる
・HARVESTにはPOLYが含まれる
・HARVESTにはT HITが含まれる
・HARVESTにはmomentary FXが含まれる
・HARVESTにはMICRO操作が含まれる
・HARVESTにはDUBが含まれる
・HARVESTにはPUSHが含まれる
・HARVESTにはheld PUNISHが含まれる
・HARVESTにはphysical MASTERで選んだ音量変化が含まれる
・HARVESTはtechnical final protectionより前をcaptureする
・HARVEST生成物は新しいmaterialになる
・HARVEST生成物は0★になる
・.pferという独自SETファイルがある
・.pfer内部はJSON
・.pfer magicはPHASE_SURFER_PFER
・.pfer formatVersionは1
・β1.0.0で保存した.pferにはsourceBuildとしてβ1.0.0が記録される
・.pfer filenameはPHASE_SURFER_日付_時刻.pfer形式
・.pferのMIMEはapplication/octet-stream
・iPad Filesで.pferの後ろに.jsonが自動追加されないことを実機確認済み
・LOAD .PFERのpickerは.pferを候補として受ける
・LOAD .PFERはapplication/jsonも候補として受ける
・LOAD .PFERはapplication/octet-streamも候補として受ける
・LOAD .PFERはtext/plainも候補として受ける
・候補に出たファイルが本物の.pferかどうかはPHASE SURFER自身が判定する
・JSON parseに失敗したファイルは.pferとしてLOADしない
・magicが違うファイルは.pferとしてLOADしない
・formatVersionが違うファイルはLOADしない
・.pferは使用中materialの音声assetを内包する
・外部File materialはFile bytesを.pferへ入れる
・生成buffer materialはfloat audio dataを.pferへ入れる
・同じassetは.pfer内でdedupeされる
・.pferはSIDE Aのmaterial locationを保存する
・.pferはSIDE Bのmaterial locationを保存する
・.pferはSLOT 1〜6のmaterial locationを保存する
・.pferはP.1〜P.3のmaterial locationを保存する
・.pferはT.1〜T.6のmaterial locationを保存する
・.pferはcurrent BPMを保存する
・.pferはPOLY GAINを保存する
・.pferはP.1 GAINを保存する
・.pferはP.2 GAINを保存する
・.pferはP.3 GAINを保存する
・.pferはPOLY SPEEDを保存する
・.pferはPOLY HPFを保存する
・.pferはPOLY LPFを保存する
・.pferはPOLY DELAYを保存する
・.pferはP.1 MUTE状態を保存する
・.pferはP.2 MUTE状態を保存する
・.pferはP.3 MUTE状態を保存する
・.pferはT.1〜T.6の個別GAINを保存する
・.pferはMASTER levelを保存する
・再生中に.pferをLOADしても旧SIDE Aを即座にブツ切りしないbridge経路がある
・再生中.pfer LOADでは新しいboardをREADY/STOPPED状態へ切り替える
・旧Aは非操作bridge voiceとして次のA STARTまで鳴り続けられる
・次のA STARTで新しいAへ切り替わる
・再生中.pfer LOADでPOLY clockを止めない
・POLYがrunningならLOAD後もclock throughできる
・LOAD後の次のPOLY stepから新しいP materialと新しいPOLY stateを読む
・.pfer LOAD完了後の完全復元状態がAUDIO EXPORTの新baselineになる
・ファイル名が「_default.pfer」で終わるSETにはTEMPLATE動作がある
・_default.pfer判定は大文字小文字を区別しない
・_default.pferをLOADすると通常のSET復元も行う
・その後、復元されたP.1〜P.3とT.1〜T.6をそのSETのdefault bankとして保存する
・TEMPLATE中にPを空へ戻すとそのSETのP defaultへ戻る
・TEMPLATE中にTを空へ戻すとそのSETのT defaultへ戻る
・TEMPLATE defaultは音として鳴る
・TEMPLATE defaultは物流materialではない
・custom materialはTEMPLATE中もcustom occupiedとして扱う
・普通の.pferをLOADするとTEMPLATE bankはbuilt-in defaultへ戻る
・page reloadでもTEMPLATE bankはbuilt-in defaultへ戻る
・別の_default.pferをLOADするとdefault bankを交換できる
・_default.pferでP/Tを空にした時にSET固有音へ戻ることを実機確認済み
・AUDIO EXPORTはABOUT内にある
・AUDIO EXPORTは演奏中には実行できない
・AUDIO EXPORTにはFULL STOP REQUIREDと表示される
・AUDIO EXPORT対象は固定17行
・Aがある
・Bがある
・P.1がある
・P.2がある
・P.3がある
・T.1がある
・T.2がある
・T.3がある
・T.4がある
・T.5がある
・T.6がある
・S.1がある
・S.2がある
・S.3がある
・S.4がある
・S.5がある
・S.6がある
・空のSLOTはexport対象にならない
・baselineと同じ音状態はexportできない
・baselineからpersistentな音状態が変わればexport候補になる
・export可能になるための最小変化量thresholdはない
・GAINがbaselineから変わればderivedになる
・TRIMがbaselineから変わればderivedになる
・FILE HPFがbaselineから変わればderivedになる
・FILE LPFがbaselineから変わればderivedになる
・AのSPEEDがbaselineから変わればderivedになり得る
・HARVEST materialはcreated扱い
・P STATE PRINT materialはcreated扱い
・MATERIAL EATERで実音が切り直されたmaterialはcreated扱い
・COPYしただけではexport可能にならない
・同じ音を空SLOTへCOPYしただけではderivedにならない
・通常reload時のstartup boardがsession baselineになる
・.pfer LOAD完了状態が新しいsession baselineになる
・AUDIO EXPORTのPREVIEWがある
・PREVIEWはFULL STOP時だけ使える
・PREVIEWはmaterial STARTから始まる
・PREVIEWは1 PHASE SURFER cycleだけ鳴る
・別のPREVIEWを押すと前のPREVIEWは止まる
・EXPORTを開始するとPREVIEWは止まる
・AUDIO EXPORTは1 targetずつrenderする
・export sample rateは48kHz
・export formatは32-bit IEEE float WAV
・ditherは入れない
・export WAVはchannel countを保持する範囲がある
・P exportは最大2channel
・AUDIO EXPORTにはMASTER CHARACTERがbakeされる
・physical MASTERはexport時unity固定
・final technical protectionはexportへbakeしない
・HUMAN MUTEは直接exportへbakeしない
・MICROは直接persistent export stateとしてbakeしない
・DUBは直接persistent export stateとしてbakeしない
・PUSHは直接persistent export stateとしてbakeしない
・PUNISHは直接persistent export stateとしてbakeしない
・momentary HIT transientは直接persistent export stateとしてbakeしない
・HARVESTでそれらを録音したmaterialなら、その録音結果自体はexportできる
・P exportにはP個別GAINが入る
・P exportにはPOLY HPFが入る
・P exportにはPOLY LPFが入る
・P exportにはPOLY DELAYが入る
・P exportにはPOLY SPEEDを入れない
・P exportにはPOLY master GAINを入れない
・P DELAY tailを含めてexport durationを計算する
・各export rowに最終durationを表示する
・各export rowに推定WAV sizeを表示する
・30秒を越えた場合はABOUTのtakeout画面だけでOVER 30s表示になる
・30秒を越えてもそれだけを理由にexport禁止にはしない
・classic RIFF/WAVのsize limitを越える場合はWAV LIMITで止める
・壊れたWAVを無理に作らない
・RF64は使わない
・AUDIO EXPORTはフライトモード中でも動作することを実機確認済み
・フライトモードでexportしたTestLoopをiPad内へ保存できることを実機確認済み
・exportしたWAVをPHASE SURFERへ再importできることを実機確認済み
・再import後にGAINを上げて比較し、音質的な遜色がないことを実機確認済み
・RECORDED ERRORSはABOUTで確認できる
・ERRORがなければNONEと表示される
・DEBUG LOGを.txtでexportできる
・β1.0.0のDEBUG filenameにはbeta1.0.0が入る
・DEBUG LOGにはbuild historyが入る
・DEBUG LOGにはerror logが入る
・DEBUG LOGにはdiagnostic logが入る
・DEBUG LOGにはT.1〜T.6の最終GAIN snapshotが入る
・DEBUG LOGにはP.1〜P.3の最後のMATERIAL EATER結果が残る
・P INTAKE snapshotは通常のring bufferとは別に保持される
・P INTAKE snapshotにはPENDING状態がある
・P INTAKE snapshotにはCOMMIT状態がある
・P INTAKE snapshotにはNOOP状態がある
・P INTAKE snapshotにはSTALE状態がある
・P INTAKE snapshotにはERROR状態がある
・P INTAKE snapshotにはcandidate countを記録できる
・P INTAKE snapshotにはchosen indexを記録できる
・P INTAKE snapshotにはchosen durationを記録できる
・P INTAKE snapshotにはpeakを記録できる
・P INTAKE snapshotにはthresholdを記録できる
・DEBUG LOGにはOFFLINE RECOVERY STATUSが入る
・DEBUG LOGにはService Worker controlled状態を記録できる
・DEBUG LOGにはcore cache状態を記録できる
・DEBUG LOGにはonline/offline状態を記録できる
・ブラウザが提供する場合はAudioContext baseLatencyを記録する
・ブラウザが提供する場合はAudioContext outputLatencyを記録する
・一部のpointer操作ではevent dispatch lagも記録する
・SIDE A/Bの通常tapはiPadでphysical touch releaseから直接処理する経路がある
・SLOTの通常tapはiPadでphysical touch releaseから直接処理する経路がある
・rating starのtapはiPadでphysical touch releaseから直接処理する経路がある
・HARVESTのtapはiPadでphysical touch releaseから直接処理する経路がある
・互換clickが後から来た場合は二重実行しないよう抑制する
・material D&Dが成立したpointerはtapとして扱わない
・material D&Dは長押しで取得する
・touch material D&Dのhold時間は650ms
・D&D取得前に13px以上動くとhold候補をcancelする
・material D&Dは1 pointer owner
・それ以外の多くの演奏操作は別pointerを同時所有できる
・B LOOPを保持しながら別の通常tapができる
・MICROを保持しながら別の通常tapができる
・PUNISHを保持しながら別の通常tapができる
・複数のmomentary FXを同時に保持できる
・SIDE A GAINとSIDE B GAINを同時に動かせる
・異なるP voiceを別々の指で操作できる
・異なるPOLY knobを別々の指で操作できる
・T padは1本指で発音できる
・MASTERは1本指で操作できる
・PUSHはMASTERを動かしている同じ1本の指で発動できる
・PUNISHは1本指でdamage量まで操作できる
・SLOTの曲送りは1本指のダブルタップだけでSIDE Aへの切替と再生までできる
・基本的なSIDE A再生、SLOT切替、SPEED、FX、TRIGGER、STOPは2本以上の同時指を必須条件にしていない
・複数指操作は追加の同時演奏に使われる
・片手だけでもSLOTの曲を順番にダブルタップしてSIDE Aへ切り替えられる
・弾き語り中に1本の指で曲を呼び出して再生開始できる操作系になっている
・T pad、SLOT、transport、SPEED、FXは同一画面上に配置されている
・iPad portrait用のlayoutがある
・iPad landscape用のlayoutがある
・Mac用のlayoutがある
・portrait iPadではT GAIN labelがpadの左側へ配置される
・landscapeではT GAIN labelがpadの下側へ配置される
・T HITにはvisible padより広いinvisible reachがある
・T GAINにもvisible文字より広いinvisible reachがある
・SLOT material grabにもvisible elementより広いtouch targetを使う箇所がある
・PHASE SURFERの演奏結果を決めるためのruntime乱数は現在使っていない
・POLYのruntime選択はdeterministic
・MATERIAL EATERの複数candidate選択はdeterministic
・人間のtap、drag、hold、release、位置、タイミングによって履歴が変わる
・同じ履歴なら同じdeterministic結果になる
・演奏者が違う操作履歴を作ればその後のdeterministic結果も変わる
記錄