1

オーディオ ファイルのミキシングは、コマンド ラインから "sox -m ..." を使用して SoX で簡単に行うことができます。それは可能ですか?

4

1 に答える 1

1

それは可能ですが、ライブラリはそれを手伝ってくれません。

コードを見るsox.cと、実際のミキシング コードがstatic関数内にあることがわかります。

for (ws = 0; ws < olen; ++ws) { /* wide samples */
  if (combine_method == sox_mix || combine_method == sox_mix_power) {
    for (s = 0; s < effp->in_signal.channels; ++s, ++p) { /* sum samples */
      *p = 0;
      for (i = 0; i < input_count; ++i)
        if (ws < z->ilen[i] && s < files[i]->ft->signal.channels) {
          /* Cast to double prevents integer overflow */
          double sample = *p + (double)z->ibuf[i][ws * files[i]->ft->signal.channels + s];
          *p = SOX_ROUND_CLIP_COUNT(sample, mixing_clips);
        }
    }
/* [...] */

したがって、本当に sox を使用する場合は、ファイルの入出力に使用できますが、ミキシングは自分で行う必要があります。

于 2012-08-24T12:37:43.507 に答える