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追加 |
{}外に定義 |
入力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の後方に定義 $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更新 |
拡張設定値を列挙
・値不正の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~; 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追加 |
音の高さ |
datasetの周波数に乗算
音の媒体:空気の圧力変動を可視化する場合、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追加 |
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近似で十分の可能性あり 詳細はGraphing Calculator-test case-fade参照 |
raw-value fade
Ver.1.4.2追加 Ver.1.13.3削除 Ver.1.18.4復帰 Ver.1.66.14更新 |
dataset間click noise対策用
1次遅れ系 生値fade-in/outのfilter特性値 |
post処理
old-weight:前回値の重み ・default:0.005 ⇒ 0 重み平均:newVal = w*oldVal+(1-w)*nowVal |
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機能に問題なし |