質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Web Audio

Web Audioは、音声を処理・合成するためのWebアプリケーション向けJavaScript APIです。HTML5から導入されました。オーディオソースの選択、エフェクト・ビジュアライゼーションの追加、パンニングなど特殊効果の適用など多くの機能を持ちます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2713閲覧

Tone.jsで編集を加えた後の音声データをbufferで取得したい

Nakamura.K

総合スコア5

Web Audio

Web Audioは、音声を処理・合成するためのWebアプリケーション向けJavaScript APIです。HTML5から導入されました。オーディオソースの選択、エフェクト・ビジュアライゼーションの追加、パンニングなど特殊効果の適用など多くの機能を持ちます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/02/17 05:15

編集2020/02/19 05:19

JavaScript で簡易的なサウンドエディタのようなことをWebページ上でやろうとしています。
部分的に編集やエフェクトを加えられるようにするために、

1.編集したい範囲、その前後、で音声データを3分割
2.編集範囲のみ、Tone.jsで編集
3.編集範囲(編集済み)と、その前後(無編集)を連結

という手順を踏んでおります。
そこで、さまざまなサイトを閲覧し試してみた結果、
Tone.Playerに編集範囲をトリミングしたデータを入れ、
編集を加えて再生はできるのですが、
その後の連結に使用するための、編集を適応した音声データを
bufferで取得したいのですが、その方法が見つけられません。

該当のソースコード

JavaScript
ソースコード
loadCount = 0;
source11 = new Tone.Player(url,function(){
console.log("source11 OK");
loadCount++;
});
source12 = new Tone.Player(url,function(){
console.log("source12 OK");
loadCount++;
});
source13 = new Tone.Player(url,function(){
console.log("source13 OK");
loadCount++;
});
source14 = new Tone.Player(url,function(){
console.log("source14 OK");
loadCount++;
});
source15 = new Tone.Player(url,function(){
console.log("source15 OK");
loadCount++;
});

// 音声データをロードをし終わってから処理するように
function loadedEvent2(){
if(loadCount >= 5){
shift2 = new Tone.PitchShift({
pitch : semitones ,
windowSize : 0.03 ,
delayTime : 0 ,
feedback : 0
}).toMaster();
reverb2 = new Tone.Freeverb().toMaster();
chorus2 = new Tone.Chorus().toMaster();
autoWah2 = new Tone.AutoWah({
baseFrequency : 100,
octaves : 20,
sensitivity : 0,
gain : 10}
).toMaster();
feedbackDelay2 = new Tone.FeedbackDelay("8n", 0.5).toMaster();

source11.connect(shift2); source11.autostart = false; source12.connect(reverb2); source12.autostart = false; source13.connect(chorus2); source13.autostart = false; source14.connect(autoWah2); source14.autostart = false; source15.connect(feedbackDelay2); source15.autostart = false; buf1 = source11._buffer._buffer; buf2 = source12._buffer._buffer; buf3 = source13._buffer._buffer; buf4 = source14._buffer._buffer; buf5 = source15._buffer._buffer; // 編集前のデータだった var len5 = buf5.duration; var bufA;

// Tone.Offlineを使うと良いらしいのでやってみたが取得できない(使い方が曖昧)
Tone.Offline(function(){
var s = source15.connect(feedbackDelay2);
},len5).then(function(buffer){
bufA = buffer._buffer;
console.log(bufA);
})

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

スマホからなので簡単に。

以下が参考になるでしょうか?

https://github.com/Tonejs/Tone.js/issues/446

投稿2020/02/17 06:22

oikashinoa

総合スコア2826

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nakamura.K

2020/02/17 06:52

Tone.jsの知識がほとんどないものでして、Tone.Offlineの具体的な使い方が分からないので、なんともいえないです。 申し訳ないです、ありがとうございます
Nakamura.K

2020/02/18 00:28

もちろん閲覧し、試したうえでの回答です。 私の理解力のなさが故の問題です。申し訳ありません。 また色々と試してみます。
oikashinoa

2020/02/18 01:06

スマホからなので簡単に。 よく調べている方だと思いますので、卑下する必要はないと思いますよ。 ただ、どこを何したかは書かないと他人に伝わらないので書いたほうが良いです。 試した結果(上手く行かなくでも)とソースを質問本文に追記していくと、他に人からもレスが来る可能性が上がります。 また、JavaScript以外のタグも付けると良いですよ。
Nakamura.K

2020/02/18 02:06

ご助言ありがとうございます。 そうですね、自分は作成している身なので経過等頭に入っていますが、 回答してくれる方からしたら情報が無さすぎますね、反省いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問