simulinkで複数の音源ファイルを再生したい

simulinkで複数の音源ファイルを再生したいです。
音源の読み込みはFrom Multimedia Fileを使っています。
サンプリング周波数は44100[Hz],オーディオチャネルあたりのサンプル数は128サンプルとしています。
読み込んでいる音源はwavファイルです。
複数のFrom Multimedia Fileで読み込んだ音源をAudioDeviceWriterで再生する方法を教えていただきたいです。

 采纳的回答

Naoya
Naoya 2018-11-7

3 个投票

複数の信号源を束ねて多チャンネル化して 1つのデバイスに出力する方法ですが、 Matrix Concatenate ブロックで 列ベクトルのフレーム信号配列を 2次元方向に結合して、 Audio Device Writer へ渡すとよろしいかと思います。
下記キャプチャは Matrix Concatenate ブロックの使用例となります。

6 个评论

Kazuhiro Ouchi
Kazuhiro Ouchi 2018-11-9
Naoyaさん
回答ありがとうございます。
回答の通りに行うと,2つの音源に関してはLch,Rchに振り分けて再生を行うことができると思うのですが,3つ以上の音源に関して上記の質問を解決するにはどうしたら良いでしょうか。
Naoya
Naoya 2018-11-13
上記ご連絡ありがとうございます。
Matrix Concatenate ブロックのパラメータで 入力数を例えば 5 と変更すると入力ポートが 5つになりますので、 5ch分の信号を束ねることができますがいかがでしょうか?
Shoumei
Shoumei 2018-11-14
编辑:Shoumei 2018-11-14
3ch以上の音源ですと、Addブロックを使って加算してやればよいのではないでしょうか?
Mix Levelも調整できますよ。
test_audioSource.jpg
Kazuhiro Ouchi
Kazuhiro Ouchi 2018-11-15
Naoyaさん
回答ありがとうございます。
Matrix Concatenate ブロックを用いた方法についてですが,
オーディオチャネルあたりのサンプル数が1024,チャンネル数が5つの時
Matrix Concatenate ブロックの入力数を5とすると,
出力が[1024 × 5]となってしまい, Audio Device Writerの入力数である2チャンネルを超えてしまいます。
私の理解力不足もあるかとは思いますが,うまく動作しませんでした。
Kazuhiro Ouchi
Kazuhiro Ouchi 2018-11-15
Shoumei Yamadaさん
回答ありがとうございます。
回答のようにAddブロックを用いてみたところ,3つ以上の音源ファイルに関して再生を行うことができました。
ありがとうございました。
Naoya
Naoya 2018-11-15
上記ご連絡ありがとうございます。
再生デバイスが 2ch で 5ch 分出力ということでしたら、 Yamada様が提案される方法がベターだと思います。
信号が doubleや single型の場合、 -1 ~ 1 の間で波を表現された方がよいと思います。加算してこの範囲を超えますと -1 または 1 に飽和され再生されますのでご留意ください。

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息

产品

版本

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!