前提・実現したいこと
Tone.jsというライブラリを使用し、サウンドエディタを作成中です。
編集後の音声データをbufferで取得したいのですが苦戦中です。
編集後のデータを再生はできるのですが、
いくら探しても効果の付与されていない元のデータのbufferしか見当たらず。
「Tone.Offlineを使うといい」という解答いただき、
試しましたがうまくいかず、、、。(そのページのURL↓)
https://github.com/Tonejs/Tone.js/issues/446
何か良い方法はないでしょうか。かれこれ1か月ほど悩んでいます。。。
※かなり長いプログラムになっているので、抜粋したコードを記載します。
わからないこと等ございましたら、気軽にご質問ください。
該当のソースコード
JavaScsirpt
1loadCount = 0; 2// 同じ音源に違う効果を付与し別々の変数に格納(ユーザにどの効果を付与するか選ばせるため) 3 source11 = new Tone.Player(url,function(){ 4 console.log("source11 OK"); 5 loadCount++; 6 }); 7 source12 = new Tone.Player(url,function(){ 8 console.log("source12 OK"); 9 loadCount++; 10 }); 11 source13 = new Tone.Player(url,function(){ 12 console.log("source13 OK"); 13 loadCount++; 14 }); 15 source14 = new Tone.Player(url,function(){ 16 console.log("source14 OK"); 17 loadCount++; 18 }); 19 source15 = new Tone.Player(url,function(){ 20 console.log("source15 OK"); 21 loadCount++; 22 }); 23 24 25 function loadedEvent2(){ // ↑でのロードが完了したら行う関数 26 if(loadCount >= 5){ 27 shift2 = new Tone.PitchShift({ 28 pitch : semitones , // ←別の部分で値を設定 29 windowSize : 0.03 , 30 delayTime : 0 , 31 feedback : 0 32 }).toMaster(); 33 reverb2 = new Tone.Freeverb().toMaster(); 34 chorus2 = new Tone.Chorus().toMaster(); 35 autoWah2 = new Tone.AutoWah({ 36 baseFrequency : 100, 37 octaves : 20, 38 sensitivity : 0, 39 gain : 10} 40 ).toMaster(); 41 feedbackDelay2 = new Tone.FeedbackDelay("8n", 0.5).toMaster(); 42 43 source11.connect(shift2); 44 source11.autostart = false; 45 source12.connect(reverb2); 46 source12.autostart = false; 47 source13.connect(chorus2); 48 source13.autostart = false; 49 source14.connect(autoWah2); 50 source14.autostart = false; 51 source15.connect(feedbackDelay2); 52 source15.autostart = false; 53 54 buf1 = source11._buffer._buffer; 55 buf2 = source12._buffer._buffer; 56 buf3 = source13._buffer._buffer; 57 buf4 = source14._buffer._buffer; 58 buf5 = source15._buffer._buffer; // 編集前のデータだった
あなたの回答
tips
プレビュー