JavaScript is not enabled on browser.
演奏機能の更新履歴
Ver.2.121.27 ・rest判定による早期returnを追加(高速化の一環)
Ver.2.120.27 ・Low Pass Filterを更新(楽器依存のvelocityとatack/decayの追加)
 適用:post処理(演奏のみ) ⇒ encode処理(単音||和音を含む)
・拡張datasetにorder_filetrの項目を追加
 filter次数:floor(order_filter)
 velocity:order_filterの小数点以下1桁目/10(fc初期値の増分∝velocity**2・fcの減衰係数∝1/(0.5+velocity))
 attack長:order_filterの小数点以下2桁目/10(立上がりのfc∝t/attack)
 decay長:order_filterの小数点以下3桁目/10(fcの減衰係数∝1/decay)
・ADSR長を更新(w1=1の場合、w0の目標値まで延長を確定)
w0=0.7; 1/e**(w0*10) -> 0.0009118819655545165(振幅減衰の目標)
order_fade=0.7; -w0*10/log(order_fade) -> 19.6257127643999(延長の倍率)
・testcase-ADSRを追加
・?full-linksを更新(orchestraの一例を追加)
 楽器table:ADSRの要調整(本来、dutyとovertoneを内包)
Ver.2.119.27 ・testcase-table-instrumentを追加(overtoneの強度を含む波数領域から実空間への対称な変換table)
・testcase-table-link-definedを更新(=実行後、計2**7+1=129点のplot2d{}参照)
・極形式pcomp(amp,t0)の位相調整による非対称化の検討は保留(端点補正による違和感の解消)
Ver.2.118.27 ・vibrato中のt_dutyの連続性の不備を修正(phiの剰余演算の厳密化を含む)
 t_duty:t*freqの重複あり ⇒ 重複なし(同期的なphiの進捗のみ)
・table補間を更新(等分割の場合、3次Hermit補間)
・f_vibを更新
 小数点以下の有効桁数:無制限 ⇒ trunc(2桁)(符号の対称性を考慮)
 平均律の深度:半音/2 ⇒ 全音*小数点以下3桁目/12(0の場合、後方互換性を維持)
・for_url.jsに更新の00_def.jsを追加(要refresh)
・math_waveの高速化の検討は保留(tとphiの任意性を担保)
・testcase-duty1+vibratoを追加
Ver.2.118.26 ・UIの着色状態を整理
Ver.2.117.26 ・拡張datasetにBPMの項目を追加(dataset単体の適用無効)
・testcase-chord-progression-BPMを追加
Ver.2.116.26 ・script-Ver.2を整理
{0b} -> [MyErr]time is invalidSAVE-OK
{A4:w1=0.01}{b:A4:w1=0.01} -> [MyErr]Invalid time-A4SAVE-OK(memo等価)
{2b}{2b:0}{2b:r} -> [MyErr]Invalid frequency-2bSAVE-OK(前半のmemo等価)
{C4b}{b:C4b}{C4b[0]} -> SAVE-OK(前半のmemo等価)
Ver.2.115.26 ・testcase-chord-progressionを更新
・testcase-chord-microtoneを追加(未知の連続的なchord進行とMONO出力の実例)
・?full-linksを更新(最低音質のwhite-noise確認用のlinkの追加)
 量子化bit数:実質、5(max係数≒7.7の劣化) ⇒ 8(劣化なし)
Ver.2.114.26 wave plotを更新(float32に対応)
Ver.2.113.26 ・gain_channelをgain_bandに統合(float32移行でS/N比に無関係)
・gain||amplitudeの上限解放は保留(max係数≥1を担保)
 auto-max:off ⇒ on(一部、ADSR余韻の上乗せでmax係数<1の対策)
Ver.2.112.26 ・ES2015のfloat32に移行(S/N比の最大化・Byte数/sec=3の高速化)
 生成:Byte数/sample依存 ⇒ float32(amplitudeの未正規化)
 合成:Byte数/sample依存 ⇒ float32
 出力:Byte数/sample依存 ⇒ float32(trunc処理の正規化) ⇒ Byte数×Uint8(offset込みの共通化)
 ・Bytes数/sec:int16 ⇒ float32(無変換の最速)
  file size制限[MB]:10~1024 ⇒ 100~4096
 ・振幅超過:overflowのerror終了 ⇒ clipping(音割れを許容)
  max係数:blendと同時に適用 ⇒ blend後に適用(厳密化)
  目安:auto-max解除の緑色状態 ⇒ max係数超過の赤色状態(音割れ発生)
・生成+合成の直列化は保留(memo化を含む並列化の恩恵∝生成中の演算cost)
Ver.1.112.26 ・log-log filter gainの致命的な不具合を修正(Byte数/sec=3のoverflowを解消)
 gain(f=0):NaN ⇒ 0
・以下の高速化の検討を保留(ES2015のfloat32に移行して対応)
 任意Byte数に拡張のDataView:16進数文字列操作 ⇒ bit演算+算術演算
 要点:2の補数・桁あふれ処理・ビットシフト・符号拡張・ビットマスク・IEEE 754・バイトオーダー
Ver.1.112.25 ・一括変更:elem.checked = "checked" || null ⇒ true || false
Ver.1.111.25 ・?testcase/full-linksを更新(高BPM設定のlinksの追加表示)
Ver.1.110.25 ・download-linkのpage-session内blobのmemory-leak対策を実施(link.js等の共通基盤の統廃合を含む)
 play:window.btoa(binary) ⇒ new Blob([buffer])(file size制限の緩和)
Ver.1.110.24 ・handler_baseview.jsを整理(DataViewのsetter/getterを作る関数の追加)
Ver.1.109.24 ・order_fadeを更新(ADSR-modelの適用)
 ADSR適用条件:amplitude0 && amplitude1 && order_fade%1 > 0
 ADSR長:max(1,min(w0/log(amplitude0/amplitude1),w1)*10)*number_samples+dns1
 order:2 ⇒ cos(以下、重みwを閾値に代用)
 w0:0.97 ⇒ 0.3(緑色状態で有効)
 w1:0.97 ⇒ 0.4(緑色状態で有効)
w0=0.3; w1=0.4; amplitude0=1; amplitude1=0.4; max(1,min(w0/log(amplitude0/amplitude1),w1)*10)
-> 3.2740700038118744(1小節内で振幅が5%弱まで減衰後、dns1分のfade-out)
・?testcase/full-linksを更新(Ver.2のscript入力のamplitude削除)
・testcase-chord-articulationを追加(奏法の一例)
Ver.1.108.24 ・LPF適用の致命的な不具合を修正(release対応でclick-noiseが顕在化)
 mix+LPF:同時に適用(N/S比∝LPFの次数と重複度) ⇒ {channel}毎に適用→mix(clearing効果+random-noise保留)
Ver.1.108.23 ・ADSR-modelのRelease用の改修(binary結合を廃止してdataset毎のbufferを直接合成)
 通信data:binary ⇒ buffer
 release:楽器の弦振動の余韻
 delay:やまびこのecho
 reverb:室内空間の一体的な残響
Ver.1.107.23 ・?testcase/full-linksを更新({channel}*gainでmemo化利用率の向上による高速化)
Ver.1.106.23 ・Ver.1.84.15の致命的な不備(pitch入力値の削除忘れ)を訂正して対策
 ?testcase=Froschgesang-echo/Froschgesang100のfrequency*:2^16 ⇒ 2^0
 対策:生値fadeの重みwr ⇒ order_filter=1次LPFのcut-off周波数fc=4000[Hz](重複のg1無効化・赤色状態で有効)
n=3; 10*log10((1/10)**(2*n)) -> -60[dB/decade]
 n次の補正係数:後者の簡易的な実装済み
n=3; freq_std=[3400,4000]; freq_std/sqrt((10**(n/10))**(1/n)-1) -> (6681.770876424923,7860.906913441086)[Hz]
n=3; freq_std=[3400,4000]; freq_std/sqrt(pow(2,1/n)-1) -> (6668.961200782106,7845.836706802478)[Hz]
 効果:超高音の強減衰と生値合成で残留の不自然な電子音の改善(sample数/secに依存しない)
・項目名とdataset名との対応関係を見直し(f_vibrato/amplitude-fade)
・amplitude-fade-in/outの項目を整理(dataset優先の表記を追加)
・select-f0/f1/g1を更新(dataset優先の表記を追加)
 f0/f1:800/4800 ⇒ 880/8800
 g1:0.3 ⇒ 1
[test]play-buttonsを更新
 f0/f1:800/4800 ⇒ 880/8800
 g1:0.3 ⇒ 0.1(1次LPFの-20[dB/decade]相当)
Ver.1.106.22 ・{channel}*gain=[0,1]を追加(高速化のための拡張)
Ver.1.105.22 ・並列処理のmemo化を実施(同一paramsのencode処理をskipして高速化)
Ver.1.104.22 ・blend項目を追加
 max係数の目安:音量の最大化を狙う場合、overflow余裕分の要手動調整
 左右のblend:生値 ⇒ 振幅(時間に対する音量一定の平方関係の保存則を考慮)
 既定値:SYNC (Crossfade) ⇒ CIRC (Circular)(Invの場合、左右の位相shiftあり)
 設定値:Δf≠0の緑色で有効状態
・?full-linksを更新(rootをnote-nameに変更・一部修正のchordと抑揚代替のinversion反映)
Ver.1.103.22 ・encode処理の改善(memory効率と波形data保証、mobile版の動作保証)
 self.binary2buffer/buffer2binary():forEach() ⇒ for()
 self.get_binary_soundData_LE():_binary += binary ⇒ arrb_uint8.set()
 self.make_base64():callback追加
・以下の検討を保留(?full=Froschgesang@Byte数/sample=3の互換性を維持)
 通信data:binary ⇒ buffer
 Base64変換:window.btoa(binary) ⇒ new Blob([buffer])
Ver.1.102.22 ・base項目を追加
 lockPitch:baseがmodeの影響ありで赤色状態(tuning項目の設定値を参照)
 useEqual_interpolation:21音階内に補間違いの差異ありで赤色状態(tuning項目の設定値を参照)
・base/root/note入力欄の追加(note入力欄はnote-name入力の単音のみ)
 octave範囲の拡張:[-1,10] ⇒ [-3,12](範囲外の赤色に対して緑色で有効状態)
 script入力のroot:異名同音を区別する場合、note-nameを入力(数値入力の場合、#基準12音の赤色状態)
・testcase-chord-progressionを追加
・[test]tuningを更新
Ver.1.101.22 ・微分音の補間logicを訂正して統合(floatのalterationとinversionの連続性を改善)
 alt_fracの補間処理:r0に対して未統一 ⇒ r0に対する対数補間(別途、平均律由来の補間flagを追加)
 alt_root_frac:0を保証の前提 ⇒ 式に反映
・tuning項目を更新(同上のuseEqual_interpolationの追加)
・[test]tuningを更新(unmatchedの項目は過去期待値の記録で解決済み)
Ver.1.101.21 ・dataset-chord-formatを追加(chordのroot優先でroot=の重複checkなし)
 従来の[]:正規表現の修正(chordと区別)
 inversion:octave-shift量の上下限を設定
 inversionの拡張:整数 ⇒ 実数(転回形の連続化)
・macroの正規表現を追加
 macro名:chordの#
 macro()内:転回記号の@
・testcase-chord/-cdef/-tuneを追加
 ?testcase-table-linksを移動
Ver.1.100.21 ・dataset-baseの内部変数を追加(octaveと変化記号を含む文字列のscript入力に対応)
 拡張dataset:A4=440(A4固定) ⇒ C4=440(任意base)
・testcase-table-baseを追加
・[test]tuningを更新
Ver.1.99.21 ・testcase-table-link-definedを追加(table作成用のlink)
Ver.1.98.21 ・dataset-rootを拡張(octaveと変化記号を含む文字列のscript入力に対応)
・testcase-table-root1/root2を追加
・[test]tuningを更新
Ver.1.97.21 ・dataset-tune/modeを拡張(table入力のinitiate/terminate/error/base_fifth対応)
 tuneのtable[0]≠0:純正律のratios_intervalに追加
 tuneのtable[0]=0:古典調律のcents_deviationに追加
 objectの管理:tablesの追加
・datasetのparse改善
・testcase-tableを更新(tuneとmodeのmacroの追加)
Ver.1.96.21 ・self.get_alt_mode()の追加(音階の8度と消音の判定に対応)
 初期値の追加:octavesに対するoctave0とfifth_step0
・self.get_ratio_altered_from_C()の追加(capsule化)
・modeを更新(同音整理と8度||消音を含むmodeの追加)
・[test]tuningを更新
Ver.1.95.21 ・noteのnatural記号の仕様拡張(numN≥2の場合、旋法mode無効化)
 変数名:hasN ⇒ numN
・[test]tuningを更新
Ver.1.94.21 ・root未定義の不具合を修正(rootとbaseのalterationを考慮)
 変数名の整理:_root/_note/_base
 objectの管理:self.str_note_or_root2obj()
・音律上のratioと分離のoctave計算を修正
 octave計算:baseは基準octave=4のみ考慮 ⇒ baseに対するnoteのfloor(絶対的な半音数/edo)差で換算
 octaveまたぎの対策:丸め方をfloorで統一
・rootのnatural記号に対応(n指定時、旋法mode無効化)
 base:内部変数のnatural記号に対応
・12平均律の分岐処理を整理(当初のmc_ocとmc_ncの関数化を含む)
・[test]tuningを更新
Ver.1.94.20 ・self.get_ratio_from_C()の見直し
 引数:root ⇒ idx_root
 flag削除:isMovableTemperament(idx_rootで代替)
 stem2fifthのfallback一時解除 ⇒ 定義拡張で対策:幹音前提 ⇒ 幹音+派生音
・rootを更新(Fb||E#||Cb||B#の追加)
・[test]tuningを更新
Ver.1.94.19 ・natural記号nの追加
 natural:alteration_mode = 0(変化記号のみ有効)
Ver.1.93.19 ・code整理(edoの定義を含むC基準A4換算のlogicを明示)
 tuneとmodeの統合:_freq = freq_base*Math.pow(2, doctave)*(ratio_note_from_C/ratio_base_from_C)
Ver.1.92.19 ・tuneとmodeの追加(tuneの表記を統一)
 tuneの切替変数:!(isFixedTemperament) ⇒ isMovableTemperament
・[test]tuningを更新(期待値と結果が不一致の場合、背景色を追加)
Ver.1.91.19 ・tuning項目を更新(lockPitchの追加)
 lockPitch既定値:undefined free ⇒ true(A4の強制固定)
 #→♭の位置を移動:tuning項目 ⇒ 鍵盤上部
・[test]tuningを更新
Ver.1.90.19 ・周波数変調logicの拡張(異名同音・派生音root・lockPitchに対応)
 C基準A4換算:12音階・固定マップ方式 ⇒ 12音律・動的数式方式
・[test]tuningを更新
Ver.1.89.19 ・script入力のline/block-commentsに対応
 # line comment:行の始終端文字を含む複数行の判定で有効(派生音記号#を含む行を除外)
 // line comment:行の後半に挿入可
 /* block comment */:任意の位置に挿入可
Ver.1.88.19 ・[test]tuningを更新
Ver.1.87.19 ・modeを更新(微分音の追加)
・[test]tuningを更新
Ver.1.86.19 ・[test]tuningのpageを追加(テスト結果一覧を即時表示)
Ver.1.85.19 ・macro定義都合上の不具合を修正
 定義位置:macro置換順に依存 ⇒ 任意@nesting深さ≤100
$2(r)$1($2){$1;} -> {$2;} ⇒ {r;}
 error文:残存のみを警告 ⇒ 1個目を表示
$2(r)$1($3){$1;} -> [MyErr]Invalid macro remained ⇒ : $3
Ver.1.85.18 ・macro名の否定先読みを追加
 $r1と$r11の共存:不可 ⇒ 可
・?full-linksを更新
Ver.1.85.17 ・Ver.1.84.15以降の致命的な不具合を修正(周波数変調logicの訂正)
 C基準からA4換算の調律tune:_freq = freq_C4* ⇒ A4*Math.pow(2, doctave)*(ratio_corr/ratio_base)
 調律後(仮)の旋法mode:_freq *= 旋法補正値(譜面の線上に変化記号を後付け配置)
 note入力のlogic整理:o4c9 || n69 || A4 ⇒ octave=4、幹音=A、変化量=0
 table追加:tuningによる追従型のintervals(固定型を含むlogicの共通化)
 table修正
 ・MeanToneのF:Math.pow(5, 0.75)/2.5 ⇒ 2/Math.pow(5, 0.25)
 ・Schnittger:Syntonic Comma ⇒ Pythagorean Commaの刷新
 ・WerckMeister3:Syntonic Comma ⇒ Pythagorean Commaの刷新
 ・KirnBerger3のDのSyntonic Comma:0 ⇒ 0.5
  KirnBerger3のAのSyntonic Comma:0.5 ⇒ 0.75
・modeを有効化
 基準:scriptの実音 ⇒ naturalの幹音
 文字note2index数値の参照:rootの数値と文字の型混同を解消
・error判定を復帰
[MyErr]Invalid frequency-R||440#||f440b||Af4|||Ab4||As4||A#4
・?full-linksを更新
 Auld_Lang_Syne:leftのdelayなし ⇒ 1拍あり
Ver.1.85.16 ・?full-linksを追加
Ver.1.84.16 ・Ver.1.84.15の不備を修正
 macro()内の#入力対応
 rootの数値入力対応(文字入力不可)
Ver.1.84.15 ・Ver.1.83.15の更新を取消し
 入力:基準pitch ⇒ 2^指数
・tuning項目を追加(周波数変調用)
Ver.1.83.15 ・pitchを更新
 入力:2^指数 ⇒ 基準pitch
・testcase-Froschgesang_overtone_60BPMを追加
・?testcase link-Froschgesang-overtone-60BPMを追加
Ver.1.82.15 ・WebWorkersのspec追記
Ver.1.81.15 ・spec追記
Ver.1.80.15 ・Ver.1.80.14の不備を修正
 overtoneなしの位相初期化の不具合を修正
 位相の連続性を改善
Ver.1.80.14 ・overtoneを更新
 各音階の自然なgain調整の演算を追加
 各音階の位相初期値を更新(mod 5-1の演算)
・testcase-Yuyake_Koyake/_overtoneを更新(type/g1を削除・overtone=4 ⇒ 5)
・testcase-Auld_Lang_Syne/_overtoneを更新(type/f0/g0/f1/g1を削除・overtone=3 ⇒ 5)
Ver.1.79.14 ・testcase-Auld_Lang_Syne_overtoneを更新(overtone=4 ⇒ 3)
Ver.1.78.14 ・testcase-tableを更新($typedef1を追加)
・testcase-Auld_Lang_Syne/_overtoneを更新
 f0/g0/f1/g1:調整後 ⇒ 調整前
・testcase-Auld_Lang_Syne_overtone2を追加
 f0/g0/f1/g1:調整後
・?testcase link-Auld_Lang_Syne-overtone-2を追加
Ver.1.77.14 ・output_wave.jsを更新(glissandoの各音階gainの過小評価を改善)
・testcase-glissando1/_duty0/glissando2を更新
 amplitude0=2 ⇒ amplitude1=0.5
Ver.1.76.14 ・testcase-Auld_Lang_Syne/_overtoneを追加
 f0/g0/f1/g1を調整(filter gainで1/fゆらぎを調整)
・?testcase link-Auld_Lang_Syne/-overtoneを追加
Ver.1.75.14 ・input-amplitude(kampli)の仕様修正
 kampliとamplitude0/amplitude1:従属 ⇒ 独立
・handler_wave_worker_sw2.jsを更新
・output_wave.jsを更新
・?testcase link-glissando1/glissando2を調整
・?testcase link-glissando1-duty0/-echoを追加
[test]play-buttonsを更新
 glissando1~2を追加
 overtone1~3を調整
Ver.1.74.14 ・拡張datasetにti/toの項目を追加
・?testcase link-glissando1/glissando2を追加
[test]play-buttonsを更新
Ver.1.73.14 ・handler_wave_worker_sw2.jsを整理
 self.str2sec()を追加
 self.str2freq()を追加
 self.str2arr_f()を追加
Ver.1.72.14 ・testcase-Yuyake_Koyakeのscriptを調整(出力の変更なし)
・testcase-*_overtoneを更新
 s_stereo:100 ⇒ 75
Ver.1.71.14 ・dataset-typeを拡張(任意波形tableの線形補間に対応)
 format修正:type=x0,x1,...xn:y0,y1,...yn ⇒ type=[x0,x1,...xn:y0,y1,...yn]
 基本dataset:通常formatに対応
・拡張datasetを更新(重複定義のerror終了処理を追加)
・wave-typeを更新
 sawsmooth/sawsmooth_randを追加
・testcase-tableを追加
・?testcase link-tableを追加
[test]play-buttonsを更新
 table1~3を追加
Ver.1.70.14 ・script-Verを追加
 Ver.1:後方互換性を担保
 Ver.2:基本dataset:通常formatの仕様変更
・拡張datasetを更新
 command単体で実行可
 代入formatを列挙して実行可(項目数の制限なし)
・?testcase linkを一括更新(script-Ver.2用)
 testcase-1を調整(clear;の使用例)
 testcase-Froschgesang_echo/_overtoneを修正($e1/$e2を適用)
 一括調整:$1; r; ⇒ r; $1;
・tVer@URL-parameterを追加
・testcase-Yuyake_Koyakeを更新(overtoneなしを追加)
Ver.1.69.14 ・handler_wave.js/handler_wave_worker_sw2.jsを整理(dataset定義の仕様変更の準備)
・代入formatのerror終了処理を改善
Ver.1.68.14 ・file nameを更新(任意名を入力可)
 要素:span ⇒ input
 拡張子:あり ⇒ なし
 auto checked時、後方互換性あり
 固有名詞を含むtestcaseの場合、auto非表示
・testcase-Yuyake_Koyakeを追加
 $commonを修正:p1=0 ⇒ 削除
 余韻の調整:$lastを追加
 $commonを変更:type無指定 ⇒ type=1
 作詞/作曲の順番を訂正:曲先 ⇒ 詩先
 $chord1~3の音の長さを修正(引用を明記)
 $sheetを一旦、削除(command不足)
・?testcase link-Yuyake_Koyakeを追加
Ver.1.67.14 ・overtoneを更新
 倍音のgainを厳密化(音質の劣化を改善:max係数の目安≒7.15 ⇒ 6.15)
・testcase-duty0/duty1を更新(order_dを調整)
Ver.1.66.14 ・old-weightを更新(default:0.005 ⇒ 0)
Ver.1.65.14 ・datasetを拡張(代入formatを追加)
・dataset不正のerror終了処理を追加
・testcase-duty0/duty1を追加
・?testcase link-beep3以降を更新(macro定義の一部を代入formatに変更)
・?testcase link-0/duty0/duty1/1を追加
[test]play-buttonsを更新(代入formatを追記)
Ver.1.64.14 ・overtoneを追加(基音より高周波数の倍音を自動付与)
 select-0~12 ⇒ input-0~24
 単音/和音pageのamplitudeの内部limiterを解除・max係数の目安を改善
・拡張datasetにovertoneの項目を追加
・?testcase link-overtoneを追加
・?testcase link-beep3を更新
[test]play-buttonsを更新
 beep3を変更
 chord2を追加
 overtone1~3を追加
・handler_wave.jsを更新
 $.inputVal_id() ⇒ $.inputNum_id()
Ver.1.63.14 [test]play-buttonsを更新
 sweep1~3を追加
 play9~11 with vibratoを削除
 vibrato1~3を追加
Ver.1.62.14 [test]play-buttons-beep1/beep2のdatasetを修正(testcaseに準拠)
 rate=-2 ⇒ 2^-2=0.25
 order=2 ⇒ 2^2=4
Ver.1.62.13 wave plotから[spec]wave plotのpageを分離
Ver.1.61.13 ・random-buttonを追加(test case用)
Ver.1.60.13 [test]play-buttonsを更新(dataset列を追加・beep3を追加)
・?testcase link-beep3を追加
Ver.1.59.13 ・file size制限の不具合を再修正(check時のみ、params.number_samplesが未反映の状態を修正)
 self.update_number_samples()のcall箇所:self.waveo.init()直前とplay直前 ⇒ self.waveo.init()直後
Ver.1.59.12 [test]play-buttonsを更新(chordを追加)
Ver.1.58.12 [test]play-buttonsを更新(default/beep1/beep2/play with vibratoを追加)
 厳密なJSONを記述するtextareaに変更(任意の周波数で無音の場合、gainの要調整)
 JSON項目の列挙順を変更(拡張datasetに準拠)
Ver.1.57.12 ・f_vibrato[Hz]を追加
 f_vib=-10~10 ⇒ 無制限(着信音の場合、10~15[Hz])
・?testcase link-beep1/beep2を追加(各種機能の結合test用)
Ver.1.56.12 ・sweep中の位相の連続性を改善(dataset内で位相の前回値を継承)
 f_vib=-3~3 ⇒ -10~10
Ver.1.56.11 ・拡張datasetにf_vibの項目を追加(vibratoを模擬)
Ver.1.55.11 ・?testcase link-echoを追加(長いdelay成分の反響を模擬)
・spec追記
Ver.1.54.11 ・?testcase link-100sの追加表示
Ver.1.53.11 ・並列処理の最適なNthread既定値を自動選択
Ver.1.52.11 ・script入力のみ、BPMを追加(tempoに自動変換)
・script入力のみ、Δf[Hz]に=4/tempoのcheckboxを追加
・tempo入力欄のtime演算表示の位置を調整(time* ⇒ *time)
・Δfの定義の一部を削除して訂正
 1/fゆらぎ(spectrum強度∝1/fの関係)と区別
・testcaseを更新
 tempo=0.5 ⇒ 0.5172413793103449(体内時計の116BPM:月に同調のtempo)
 Δf[Hz]=10 ⇒ 4/tempo=7.73...(θ~α脳波の周波数:地球の固有振動数||放射線帯基準peak付近)
Ver.1.51.11 [test]wave plotを更新
Ver.1.50.11 ・sample数/secを更新
Ver.1.49.11 ・fade-orderを更新(cosを追加)
 script入力値:order_fade=3
 UI選択値:cos
・handler_baseview.jsを整理
[test]wave plotを更新
Ver.1.48.11 ・高音質のint24に対応(3Byte数/sampleを追加)
・handler_baseview.jsを更新(DataView非対応のint24は文字列操作で実装)
[test]wave plotを更新
Ver.1.47.11 [test]play-buttonsを更新
 check_limit(params)を統廃合
Ver.1.46.11 ・超高音質のint32に対応(4Byte数/sampleを追加)
[test]wave plotを更新
[test]play-buttonsの動作を正常化
Ver.1.45.11 ・script入力のみ、amplitudeにauto-maxのcheckboxを追加
 post処理で振幅を最大化する自動scaling(scale比大で波形の劣化あり)
Ver.1.44.11 ・scriptのdatasetの最小単位を更新(時間を省略時、1beatの指定周波数に変換)
 {r; 0; 440; [440,880];} -> {b:r; b:0; b:440; b:[440,880];}
・testcaseを更新
・testcaseのmacro定義のspellを訂正
 code ⇒ chord
・sourceの変数名を修正
 (octave, code) ⇒ (octave, note)
Ver.1.43.11 ・macro定義のtagの正規表現に空白||改行文字を追加
 ES6対応環境のみ、spacingを保持してtext置換可
Ver.1.42.11 ・macro定義のdatasetの正規表現にminus-とplus+を追加
 数値の符号入力||指数表記に対応
 datasetのorder_fade||oc記法を正常化
Ver.1.42.10 ・original scriptのmacro残存の場合、error終了に変更
・macro定義のtagの正規表現にunderscore_とhyphen-を追加
Ver.1.41.10 ・amplitudeのint値over-flow@stream処理の場合、error終了に修正(Ver.1.40.9の追加修正)
Ver.1.41.9 ・macro機能を追加(入力textの前方からmacro定義順に{}内のtext置換)
・original script出力欄を追加(text置換結果の確認用)
Ver.1.40.9 ・amplitudeのint値over-flow@post処理の場合、error終了に修正
Ver.1.40.8 fade-rangeのp0/p1の仕様変更
 割合指定 ⇒ 時間[sec]指定(単音等、datasetのtime[msec]=1000の場合、同義)
・fade-orderを更新
・従来の各設定値を変更
 script入力値:order_fade=-1 || -2
 UI選択値:old1 || old2
Ver.1.39.8 ・fade-orderを更新
 order_fade=1の曲線近似を追加
・従来の重み平均処理の設定値を変更
 script入力値:order_fade=0
 UI選択値:1.
Ver.1.38.8 ・fade-orderを追加
・fade-order=2でp0/p1既定値を調整
・testcaseを更新
Ver.1.37.8 ・ゆらぎありΔf≠0@s_stereo<100でchannel間の合成の不具合(stereo出力が左右反転)を修正
 newVal0 = (1-s)*val0+s*val1 ⇒ newVal0 = s*val0+(1-s)*val1
Ver.1.37.7 [test]wave plotのpageを追加(出力int値の確認用)
Ver.1.36.7 ・ゆらぎありΔf≠0でmonaural低音質出力の不具合(int値のoffset未考慮)を修正
 val1 = 0 ⇒ val1 = val_offset
Ver.1.35.6 ・script入力のみ、amplitudeの上限解放(int値over-flowの場合、pulse波のnoise発生)
 play実行後、amplitude上限値の目安を表示
Ver.1.34.6 ・wave-typeを更新
 sawtoothrev/sawtooth0/sawtooth0revを追加
 各type_randを追加(位相初期値に乱数を付与)
Ver.1.33.6 ・ゆらぎ周波数Δfの他channel合成率s_stereoを追加
・testcaseを更新
Ver.1.32.6 ・ゆらぎ周波数Δfのばらつき強度s_randomを追加
・Δfのmonaural出力に対応
Ver.1.31.6 ・duty||amplitudeの変化率のorderを追加(script限定)
Ver.1.30.6 ・square||sawtoothの波形を選択時、休止||f=0の間にnoise発生の不具合を修正
Ver.1.30.5 ・file size制限の不具合を修正(limiter機能を正常化)
・file sizeの上限up
Ver.1.30.4 ・本pageを分離して独立化
Ver.1.29.4 ・stereo効果のゆらぎ周波数Δfを追加
Ver.1.28.4 amplitudeの仕様変更(tempo||pitchに準拠)
Ver.1.27.4 testcase@URL-parameterを追加
Ver.1.26.4 sweep-orderを追加
Ver.1.25.4 sweep-rateを更新(filter gain適用)
Ver.1.24.4 sweep-rateを追加(filter gain固定)
Ver.1.20.4 datasetを拡張
Ver.1.19.4 "f"+周波数入力の小数点以下を有効化
・時間の入力形式を拡張(60BPM基準の演算子b=1000msecを定義)
Ver.1.18.4 ・binary生値fade-in/out機能raw-value fadeを復帰
Ver.1.17.4 ・tempo/pitch/amplitudeの設定項目を追加
・fade-in/outの設定項目を拡張
time=0の場合、error終了に仕様変更
Ver.1.16.4 ・wave-dutyの設定項目を追加
Ver.1.15.4 scientific pitch記法に対応
Ver.1.14.4 ・frequency checkerを追加
Ver.1.13.4 ・88鍵盤標準のscientific pitch記法に準拠
・MIDI-octave数に負数を指定できない致命的な不具合を修正
Ver.1.13.3 ・pitchに影響する生値fade-in/out ⇒ 物理的な振幅fade-in/outに修正
Ver.1.13.2 ・parallel Multi-threadingに対応
Ver.1.4.2 ・生値fade-in/outを追加

scriptの入力形式
項目 内容 実装
macro機能
Ver.1.41.9追加
Ver.1.42.10追加
Ver.1.42.11追加
Ver.1.43.11追加
Ver.1.65.14追加
Ver.1.84.16追加
Ver.1.101.21追加
{}外に定義 入力textの前方からmacro定義順に{}内のtext置換
・macro定義のformat:$[0-9a-zA-Z_#-]+([0-9a-zA-Z_-+=.,:;[]$#@]\s]+)
 0-9a-zA-Z_部分は\wで短縮可
・置換内容:{$tag; -> dataset||chordset;}
 区切り文字;を残す方が間違いが少ない
 ES6対応環境のみ、spacingを保持してtext置換可
・macroをnestingする場合、chordsetの単位chordを入力textの後方に定義
Ver.1.85.19以降、定義位置は任意@nesting深さ≤100
$chordsets($chordset;$chordset)
$chordset($chord;$chord)
$chord(:$C;:$D;:$E)
$C([C4,C5,C6])$D([D4,D5,D6])$E([E4,E5,E6])

macro定義の厳密な正規表現を確認する場合、正規表現text置換参照
・$tagから空文字を含む任意の文字列にmacro置換実行可
 ES6対応環境のみ、空白||改行文字を保持
channel 時系列の音dataを出力 stream処理:channel内の合成(binary出力)
post処理:channel間の合成(binary入出力)
channelの区別 {} channelの区切り文字(半角の波括弧)
channel番号=1~ 入力textの前方から昇順に番号を付与
channel間の合成
Ver.1.37.8修正
奇数番channel:channel1に合成
偶数番channel:channel2||1に合成(channel数に依存)
Δf≠0:channel1とchannel2を合成(stereo出力が左右反転する不具合を修正)

binary出力順:channel1 -> channel2
入力例
Ver.1.44.11更新
{r} || {0} || {} || {}{} || {}{}{} -> error終了(時間指定なし)
{r} || {0} || {:}{} || {:} || {b:0} -> 保存可能(1beatの無音)
{r; 0; 440; [440,880];} -> {b:r; b:0; b:440; b:[440,880];}
dataset
Ver.1.30.6対応
Ver.1.44.11更新
Ver.1.65.14更新
音dataの単位 基本dataset
・値不正のerror終了処理を追加


音階;
時間:音階;
時間:[音階0,音階1,...];
時間:r;
休止時間:0;

要素省略時:1beatの休止(b:0に同義)
・時間省略時:1beat
・音階省略時:r||0
Ver.1.55.11追記
Ver.1.67.14追記
: dataset要素の区切り文字(半角のcolon)
; datasetの区切り文字(半角のsemi-colon)
・dataset間の直接音の残響と反響(空間の反射成分)は未考慮
・dataset間のlegato(なめらかに):現状、複数のchannelで音の重なり部分を調整
[,] 音階列挙の区切り文字(半角の角括弧)
音階の区切り文字(半角のcomma)
r
Ver.1.65.14更新
休止記号(半角のr)
・正規表現を厳密化:^r ⇒ ^r$
拡張dataset
Ver.1.20.4追加
Ver.1.24.4追加
Ver.1.26.4追加
Ver.1.31.6追加
Ver.1.35.6更新
Ver.1.38.8追加
Ver.1.39.8更新
Ver.1.40.8更新
Ver.1.49.11更新
Ver.1.56.11更新
Ver.1.56.12更新
Ver.1.57.12更新
Ver.1.64.14更新
Ver.1.71.14更新
Ver.1.74.14更新
通常format
Ver.1.65.14更新
Ver.1.71.14更新
Ver.1.75.14更新
Ver.1.84.15追加
拡張設定値を列挙
・値不正のerror終了処理を追加
・重複定義のerror終了処理を追加(代入formatを含む)

音階;
時間:音階
時間:[音階0,音階1,...]
時間:r
休止時間:0
:command=""||"clear"
:type=0~13:duty0=0~1:duty1=0~1:amplitude0=0~1:amplitude1=0~1
:w0=0~1:p0=0~1:w1=0~1:p1=0~1:f0:g0=0~1:f1:g1=0~1
:rate=0~:order=0~:order_d=0~:order_a=0~
:order_fade=floor(-2~3):f_vib:overtone=floor(0~24):ti=0~:to=0~:A4=0~:tune=0~:root=0~:mode=0~;

script入力のみ対応の項目
・order_d/order_a
・ti/to
代入format
Ver.1.65.14追加
Ver.1.69.14更新
Ver.1.70.14更新
Ver.1.71.14更新
拡張設定項目=拡張設定値を列挙
b:A4:clear:1:0.5::::::::::::::::::5
b:A4:clear:1:0.5:overtone=5
b:A4:clear:1:duty0=0.5:overtone=5
b:A4:clear:duty0=0.5:type=1:overtone=5
・拡張設定項目のみ、指定可(順不同)
・重複定義の場合、代入formatの左から順次上書きerror終了
・構文不正(項目名のspellを含む)の場合、error終了
・値不正の場合、error終了
・複数の代入記号=が存在する場合、error終了
・代入formatを列挙して実行可(項目数の制限なし)
拡張設定項目
Ver.1.70.14追加
type以降の設定項目 基本dataset:通常formatの仕様
・script-Ver.1:直前datasetの拡張設定値を継承(後方互換性を担保)
・script-Ver.2:dataset内のみ拡張設定値が有効
command
Ver.1.65.14更新
Ver.1.70.14更新
省略時:直前datasetの拡張設定値を継承||clear状態でUI設定値を参照
clear:直前datasetの拡張設定値をclear
・command不正のerror終了処理を追加
・command単体で実行可
type
Ver.1.34.6更新
Ver.1.71.14更新
波形の種類
0:sin
1:triangle
2:square
3:sawtooth
4:sawtoothrev
5:sawtooth0
6:sawtooth0rev
7:sin_rand
8:triangle_rand
9:square_rand
10:sawtooth_rand
11:sawtoothrev_rand
12:sawsmooth
13:sawsmooth_rand

任意波形tableの線形補間に対応
・tableのformat:type=[x0,x1,...xn:y0,y1,...yn]
・基本dataset:通常formatの場合、非対応(error終了)
・x範囲=[0,1]
・y範囲=[-1,1]
・x前提:昇順sort済み
duty0
duty1

order_d=1@default
N個中n番目sampleのduty比
=duty0+(duty1-duty0)*pow(n/N,order_d)
amplitude0
amplitude1

order_a=1@default
N個中n番目sampleの振幅の比例係数
=amplitude0+(amplitude1-amplitude0)*pow(n/N,order_a)
w0
p0
w1
p1
振幅fade-in/outのfilter特性値
dataset間の連続条件 w0=0
w1=0
((時間*1e3*tempo)%(1000*1e3/周波数))%1=0
:[1000]:::0:0.5:0:1:0:0:0:0;:[1000]:::0.5:0.5:1:1;:[1000]:::0.5:1:1:0;
f0
g0
f1
g1
振幅gainのfilter特性値
f_vib=0@default
Ver.1.56.11追加
Ver.1.56.12更新
f_vibrato[Hz]
overtone=0@default
Ver.1.64.14追加
基音より高周波数の倍音の整数倍上限値
ti=0@default
to=0@default
Ver.1.74.14追加
Ver.1.77.14更新
ti:in時間差[msec]
to:out時間差[msec]
・b使用可
[test]play-buttonsの場合、時間[sec]を指定

音階列挙の左からglissando
・script入力のみ
・各音階でduty/amplitude/rate可変
・各音階(overtoneを含む)で別途、fade-in/out処理を実施
 (p0/p1指定時間に対する直線近似処理)
・発音条件:(ti+to)×(音階の個数-1)<時間
・各音階gainの過小評価を改善(max係数の目安≒14.99 ⇒ 4.13)
時間[msec] b
Ver.1.19.4追加
1beatの単位を表す中置の除算演算子
・演算後、60BPM基準1beat=1000msecを乗算

b = b1 = 1b = 1b1 = 2b2 = 4b4 = 1000
2b = 2b1 = 4b2 = 2000
4b = 4b1 = 8b2 = 4000
b2 = 1b2 = 2b4 = 500
b4 = 1b4 = 2b8 = 250
1.5b = 1.5b1 = 15e-1b1.0e+0 = 3b2 = 1500
周波数[Hz]
Ver.1.19.4更新
f frequency checker参照

小数点以下を有効化
音階
Ver.1.13.4修正
o
c
n
f
音階の記法参照
"o"+MIDI-octave数-1~9+"c"+MIDI-相対note数0~11~
"n"+MIDI-絶対note数0~
"f"+周波数
周波数

MIDI-octave数の負数を有効化・範囲修正-2~8 ⇒ -1~9
過去の入力形式から変更する場合、octave数の降順に1加算して正規表現text置換の要修正
out=text.replace(/o8/gm,"o9"); ⇒ out=text.replace(/o7/gm,"o8"); ⇒ ...

o4c9 = o3c21 = o2c33 = o1c45 = o0c57 = o-1c69 = n69 = A4 = f440 = 440
o5c0 = o-1c72 = n72 = C5 = f523.25 = f5.2325e2 = 523.25 = 5.2325e2

音階の記法@octave=4
MIDI-相対note数 音階(平均律) pitch記法(正順)
Ver.1.15.4追加
oc記法(逆順)
Ver.1.13.4修正
n記法 f記法(f省略可)
00 C(ド) C4 o4c0
o4c00
n60 f261.6255653005986
01 C#/D♭ C4s
D4f
o4c01 n61 f277.1826309768721
02 D(レ) D4 o4c02 n62 f293.6647679174076
03 D#/E♭ D4s
E4f
o4c03 n63 f311.12698372208087
04 E(ミ) E4 o4c04 n64 f329.6275569128699
05 F(ファ) F4 o4c05 n65 f349.2282314330039
06 F#/G♭ F4s
G4f
o4c06 n66 f369.99442271163446
07 G(ソ) G4 o4c07 n67 f391.99543598174927
08 G#/A♭ G4s
A4f
o4c08 n68 f415.3046975799451
09 A(ラ) A4 o4c09 n69 f440
10 A#/B♭ A4s
B4f
o4c10 n70 f466.1637615180899
11 B(シ) B4 o4c11 n71 f493.8833012561241

URL-parameter@browser上部URL入力欄
項目 内容 実装
testcase
Ver.1.27.4追加
Ver.1.33.6更新
Ver.1.38.8更新
Ver.1.44.11更新
Ver.1.52.11更新
Ver.1.65.14更新
Ver.1.67.14更新
Ver.1.68.14更新
Ver.1.76.14更新
test case 0:1octaveのstereo出力(左右の差なし・Δf=0)
duty0:1octaveの1ch出力(duty0=0・order_d=0.5)
duty1:1octaveの1ch出力(duty1=0・order_d=2)
1:1octaveのstereo出力(左右の差あり・Δf=0)
Froschgesang:かえるの合唱(25秒・Δf=107.73...・fade-inを有効化・fade-outを有効化
Froschgesang100:かえるの合唱(100秒・Δf=107.73...・fade-inを有効化・fade-outを有効化
・macro定義のspellを訂正:code ⇒ chord
Yuyake_Koyake:ja.wikipedia.org/wiki/夕焼小焼(作詞:中村雨紅/作曲:草川信)
Auld_Lang_Syne:ja.wikipedia.org/wiki/オールド・ラング・サイン(slur記号なしの楽譜)
tVer
Ver.1.70.14追加
testcase-Ver tVer=1:script-Ver.1用のtestcaseを表示
それ以外:script-Ver.2用のtestcaseを表示

UI設定
項目 内容 実装
Byte数/sample
Ver.1.46.11追加
Ver.1.48.11追加
1sampleのByte数 1:低音質
2:音質
3:高音質
4:超高音質
sample数/sec
Ver.1.50.11更新
1秒当たりのsample数
sampling rate
44100:音楽
48000:映像

samples_perSecond=8000~192000
・音階の分解能:周波数[Hz]<samples_perSecond/2
channel数 出力のchannel数 1:monaural
2:stereo
wave-type
Ver.1.30.6修正
Ver.1.34.6更新
Ver.1.71.14更新
波形の種類 dataset優先

sin:正弦波
triangle:三角波
square:矩形波(波形@f=0を修正)
sawtooth:のこぎり波=-1~|/|(波形@f=0を修正)
sawtoothrev:逆のこぎり波=1~|\|
sawtooth0:のこぎり波=0~/|/
sawtooth0rev:逆のこぎり波=0~\|\
sawsmooth:のこぎり波(より滑らか)=0~/|0~\

各type:datasetの位相初期値=0
各type_rand:datasetの位相初期値=[0,2π)の乱数
wave-duty
Ver.1.16.4追加
波形のduty比 dataset優先

上ON/下ON時間の非対称性を定義
duty=0.5:上下対称
duty≠0.5:上下非対称・上下不連続(duty比を閾値に比例係数を2値化)

wave-type=square:duty可変のpulse波に対応

詳細はGraphing Calculator-test case-wave参照
sweep-rate
Ver.1.24.4追加
Ver.1.56.12更新
出だし音の周波数sweep用
指定周波数基準rate
dataset優先

rate=1:周波数のsweepなし(周波数を固定)
rate=0.5:指定時間で周波数を半減
rate=2:指定時間で周波数を倍増
rate>>1:sample数/sec>>10000(要分解能)
・sweep中の位相の連続性を改善(dataset内で位相の前回値を継承)
sweep-order
Ver.1.25.4追加
周波数sweepの次数 dataset優先

order=1:線形に変化
order<1:減速的に変化
order>1:加速的に変化
order>>1:sample数/sec>>10000(要分解能)
f_vibrato[Hz]
Ver.1.57.12追加
vibratoの周波数 dataset優先

vibratoを模擬
・pitch変化のみを想定
・変化量の連続性を考慮
・着信音の場合、10~15[Hz]

omega_vib=2pi*f_vib
dkf_vib=(1-pow(2,1/12))/2 半音の半値幅の振幅を仮定
kdf=sin(omega_vib*t)*dkf_vib ±両側の変動を仮定
df=kdf*f
f=f+df
overtone
Ver.1.64.14追加
Ver.1.67.14更新
Ver.1.80.14更新
Ver.1.81.15追記
倍音の整数倍上限値 dataset優先

基音より高周波数の倍音を自動付与
・overtone=0||1の場合、無効
・乱数なしの整数倍
・log-log filterを適用
・現状、script入力のみ、max係数が厳密
・単音/和音pageのamplitudeの内部limiterを解除
・単音/和音pageのmax係数の目安を改善(gain和で単純換算のため、過小評価)
・倍音のgainを厳密化(音質の劣化を改善:max係数の目安≒7.15 ⇒ 6.15)

・各音階の自然なgain調整の演算を追加
・各音階の位相初期値を更新(mod 5-1の演算)

 極限の音色:sawtooth ⇒ triangle

詳細はGraphing Calculator-test case-wave-overtone参照
time[sec] 出力時間の全長
tempo
Ver.1.17.4追加
時間の長さ datasetの時間に乗算

BPM=60/tempo
・60BPM基準1beat=1000msec
pitch
Ver.1.17.4追加
Ver.1.83.15更新
Ver.1.84.15更新
音の高さ datasetの周波数に乗算
・係数=2^指数

音の媒体:空気の圧力変動を可視化する場合、Incompressible flow参照
amplitude
Ver.1.17.4追加
Ver.1.28.4更新
Ver.1.35.6更新
Ver.1.40.9修正
Ver.1.45.11追加
Ver.1.75.14修正
音の大きさ dataset優先
datasetの振幅に乗算
・kampliとamplitude0/amplitude1:従属 ⇒ 独立

script入力のみ、振幅の上限解放
・int値over-flowの場合、pulse波のnoise発生
post処理でerror終了に修正
Ver.1.41.10以降、stream処理も同様に、error終了に修正
・WebWorkers準備中にerror終了の場合、Uncaught NetworkErrorが発生

play実行後、amplitude上限値(max係数)の目安を表示
・datasetの振幅不変の前提でint値の余裕から推定
・乱数で多少の変動あり
・post処理でint値over-flowの場合、overflowを表示
・単音||和音の場合、max係数のfeedforward入力値で内部制限あり

auto-maxのcheckboxを追加
・post処理で振幅を最大化する自動scaling(scale比大で波形の劣化あり)
・scale比=max係数/入力値(scale比=1で波形の劣化なし)
・scale比はint値範囲内の安全側に丸める(scale比=1を除く)
・scale比=1の場合、=max係数を表示
・scale比>1の場合、≒floor(max係数の小数点2桁以上)の目安を表示
・演奏の場合、全波形の合成後、max係数が決まるため、feedback入力の方が確実
Δf
Ver.1.29.4追加
Ver.1.32.6更新
Ver.1.33.6更新
Ver.1.52.11更新
stereo効果のゆらぎ周波数[Hz] stereo出力限定
post最終処理
・monaural出力の場合、stereo出力@s_stereo=100のchannel1のみを出力

Δf=0:channel間の合成なし(左右を完全分離)
|Δf|>0:channel間の合成あり(左右をゆらぎ周波数で合成)
|Δf|<<0.001:channel間を平滑化(s_stereo=100の場合、左右を同一化)
↑s_random
Ver.1.32.6追加
Δfのばらつき強度 Δfのばらつき範囲:Δf*pow(2,s_random*[-1,1))

s_random=0:ばらつきなし(ゆらぎが一様)
s_random≠0:ばらつきあり(play実行毎に異なる乱数を生成)
↑s_stereo
Ver.1.33.6追加
Ver.1.37.8修正
左右で振動する音量の調整用
Δfの他channel合成率[%]
Δfの振幅強度[%]
stereo出力限定
・monaural出力の場合、左右の振動なし

s_stereo>0:他channelの合成あり
s_stereo=0:他channelの合成なし(左右を完全分離)
s_stereo=100:左右均等の重みで合成

重み平均:newVal0 = (1-s)*val0+s*val1 ⇒ newVal0 = s*val0+(1-s)*val1
・s=0.5@s_stereo=100
・s=1@s_stereo=0
volume[%] play時の音量 play機能のみ有効
play encodeの実行button 正常終了時
・soundを再生
・downloadの準備完了
stop playの中断button Multi-threadのみ中断可
random
Ver.1.61.13追加
test caseの生成button 設定項目
・datasetの個数=0~
・休止状態の遷移確率=0~1
・音階初期状態の遷移確率=0~1
・変化量の前回値の重み=0~1
log 実行結果のlog
file size[MB]
Ver.1.30.5修正
保存file size file size制限の条件を追加
・dataset毎の制限
・全datasetの制限(演奏用)

limit:1GB=1024MB=1024^2KB=1024^3B=1073741824B
link download link browserでencodeされたbinaryをlocalに保存(通信なし)
file name
Ver.1.68.14更新
保存file name 任意名の入力機能の実装は保留
任意名を入力可
・半角相当の文字数制限:50文字(拡張子を含む除く)
・auto checked時、後方互換性あり
・固有名詞を含むtestcaseの場合、auto非表示
option
Ver.1.13.2更新
encodeのoption Multi-threadの選択可(並列化に対応)
N:並列化のthread数
amplitude-fade
Ver.1.13.3追加
Ver.1.38.8更新
Ver.1.39.8更新
Ver.1.40.8変更
Ver.1.49.11追加
dataset内click noise対策用
振幅fade-in/outのfilter特性値
stream処理

w0:in-weight
p0:in-range
w1:out-weight
p1:out-range
・in:datasetの最初sampleから
・out:datasetの最後sampleまで
・range:fade_oder≥0既定の場合、時間[sec]
 fade_oder<0の場合、datasetの全sample数に対する割合
・rangeの区間:tempoと独立(生のfade区間)
・rangeの重複箇所:in優先
 残りをout-rangeに更新(曲線近似の正規化対策)
・fade有効化の条件:p0 > 0 || p1 > 0

1次遅れ系のstep応答:S字の変曲点なし
・fade-in:振幅=上限値まで上凸の変化
・fade-out:振幅=0まで下凸の変化
・fade処理後、script入力のamplitudeの比例係数を乗算
・高負荷のS字(sigmoid)曲線近似の検討は保留

1次遅れ系の曲線近似(べき乗)を追加
・w0/w1:時定数を可変
・w=0:時間の0.5乗(上凸の変化)
・w=0.5:時間の1乗(線形変化の直線近似)
・w=1:時間の2乗(下凸の変化)

2次遅れ系の曲線近似(sigmoid)を追加
・w0/w1:変曲点位置を可変
・w=0.5:上下対称
・w<0.5:下に移動
・w>0.5:上に移動

2次遅れ系の曲線近似(cos)を追加
・w0/w1:無効
fade-order
Ver.1.38.8追加
Ver.1.39.8更新
Ver.1.40.8変更
Ver.1.49.11追加
Ver.1.109.24更新
filterの次数 order_fade=0||1.:1次遅れ系(p0/p1指定時間の区間で重み平均の逐次処理)
order_fade=1:1次遅れ系(p0/p1指定時間に対する曲線近似処理)
order_fade=2:2次遅れ系(p0/p1指定時間に対する曲線近似処理)
order_fade=3:2次遅れ系(p0/p1指定時間に対する曲線近似処理)
order_fade=-1||old1:1次遅れ系(p0/p1割合sampleの時間に対する曲線近似処理)
order_fade=-2||old2:2次遅れ系(p0/p1割合sampleの時間に対する曲線近似処理)
・逐次処理の場合、model parameterがsampling rateに依存(調整困難)
・低負荷の直線||cos近似で十分の可能性あり
 既定値:対称性cos+ADSR関数形(amplitude0とamplitude1*order_fade%1の2点の対数補間)

詳細はGraphing Calculator-test case-fade||Graphing Calculator-test case-ADSR参照
raw-value fade
Ver.1.4.2追加
Ver.1.13.3削除
Ver.1.18.4復帰
Ver.1.66.14更新
Ver.1.106.23更新
dataset間click noise対策用
1次遅れ系
生値fade-in/outのfilter特性値
post処理

old-weight:前回値の重み
・default:0.005 ⇒ 0
・物理的なcut-off周波数fcから換算w=1/(1+2pi*fc*dt_sampling)

重み平均:newVal = w*oldVal+(1-w)*nowVal(order_filter=n次の場合、n段化)
log-log filter gain 出力調整用
振幅gainのfilter特性値
stream処理

f0:low側の周波数
g0:low側のgain
f1:high側の周波数
g1:high側のgain

既定値:聴き取りやすい高周波数の出力を意図的に低下(LPF想定)
・hardwareからの最終出力:speakerの周波数特性のgainを乗算(可聴域外のgain≒0)

補足:振幅のRMS統一で波形間の比較
・Fourier変換で高周波数成分を含む波形(sin以外)の方が聴き取りやすい
Graphing Calculator-test case-Fourier参照
frequency checker
Ver.1.14.4追加
周波数checker MIDI-octave:octave数
MIDI-note:note数
frequency[Hz]:frequency(octave,note)

Graphing Calculator-test case-MIDI参照
frequency(octave,note)=<last{m=(octave+1)*12+note,pow(2,(m-69)/12)*440};
frequency(4,9) -> 440
frequency(-1,69) -> 440
script script入力欄 入力textは半角のみ有効
original script
Ver.1.41.9追加
Ver.1.42.10更新
text置換結果の確認用
original script出力欄
macro機能のtext置換後のscriptを出力
・macro残存の場合、error終了
script-Ver
Ver.1.70.14追加
script仕様 基本dataset:通常formatの仕様
・script-Ver.1:直前datasetの拡張設定値を継承(後方互換性を担保)
・script-Ver.2:dataset内のみ拡張設定値が有効

error終了の発生条件
事象 発生条件 対策
予期せぬerror@演奏のplay実行時
{1:A4} -> Uncaught NetworkError: ...
time極短のMulti-thread encode
・total time << 1000msec
・parallel N > 1
Single-thread encode
・再現性なし
・download機能に問題なし
再生中断@演奏のplay実行中 不明 stop後、re-play
・再現性なし
・download機能に問題なし