2016-12-29 6 views
0

オーディオトラックを組み合わせるプログラムがありますが、現在のシステムでは2つのオーディオトラックを書き込んで同時に再生できます。私が午前問題は、それが唯一例えばので、最短トラックの期間果たしていることである:複数のトラックを結合するときのオーディオの持続時間を一致させる

トラック1の期間=二時

トラック2の期間= 1:12

それはします2:00(全長)で再生したい場合は、1:12のためだけに再生します。この問題を解決する最善の方法は何ですか?これまで

私の解決策:新しい変数を定義すると、すべての

length = min([length(s1), length(s2)]); 

s1 = s1(1:length); 
s2 = s2(1:length); 
s3 = s1 + s2; 
+1

どちらのパッド短いトラック:

解決策はこれです。 – excaza

答えて

0

まず関数名「長さ」を使用していない、あなたは、次の文での関数としてそれを使用することはできません。 第2に、複数のトラックを再生するときに、最初に何らかの種類の同期ができるようにするために、このオプションを追加しました。それは、同じ長さだか長い方の目的のセグメントに短いトラックを追加するためにインデックスを使用して

s1=[ 0.5, 0.2, 0.2, 0.1 ]; 
s2=[ 0.1, 0.4 ]; 

s1_pad_delay=8; s1_pad_after=5; 
s2_pad_delay=4; s2_pad_after=3; 

s1_len=s1_pad_delay+length(s1)+s1_pad_after; 
s2_len=s2_pad_delay+length(s2)+s2_pad_after; 
mix_len=max(s1_len,s2_len); 

s1_padded=[ zeros(1,s1_pad_delay), s1, zeros(1,mix_len-length(s1)-s1_pad_delay) ]; 
s2_padded=[ zeros(1,s2_pad_delay), s2, zeros(1,mix_len-length(s2)-s2_pad_delay) ]; 

mix=s1_padded+s2_padded 
関連する問題