| 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} -> {A4:w1=0.01}{b:A4:w1=0.01} -> {2b}{2b:0}{2b:r} -> {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を追加)
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を追加 |
| 項目 | 内容 | 実装 |
|---|---|---|
|
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置換可 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} || {:}{} || {:} || {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~ :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 ・拡張設定項目のみ、指定可(順不同) ・重複定義の場合、 ・構文不正(項目名の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] ・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 |
| 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 |
| 項目 | 内容 | 実装 |
|---|---|---|
|
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= Froschgesang100:かえるの合唱(100秒・Δf= ・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を表示 |
| 項目 | 内容 | 実装 |
|---|---|---|
|
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の振幅に乗算 ・kampliとamplitude0/amplitude1:従属 ⇒ 独立 script入力のみ、振幅の上限解放 ・int値over-flowの場合、 ・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] |
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:左右均等の重みで合成 重み平均: ・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の比例係数を乗算 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@演奏のplay実行時
{1:A4} -> Uncaught NetworkError: ... |
time極短のMulti-thread encode
・total time << 1000msec ・parallel N > 1 |
Single-thread encode
・再現性なし ・download機能に問題なし |
| 再生中断@演奏のplay実行中 | 不明 |
stop後、re-play
・再現性なし ・download機能に問題なし |