ダウンミックス¶
Downmix
このAPIは、ベースオーディオファイルと新規オーディオファイルとして定義された2つのオーディオファイル(ストリーム)を1つの出力オーディオファイルにミキシングすることを目的としています。
This API is intended for mixing of two audio files (streams), defined as the base audio file and the newcome audio file, into one output audio file.
新しいオーディオファイルはベースオーディオファイルにダウンミックスされ、各ファイルに個別のゲインが適用されます。
The newcome audio file will be downmixed into the base audio file with individual gains applied to each file.
出力オーディオファイルのチャンネル数は、ベースオーディオファイルのチャンネル数と同じになります。 新規オーディオファイルのチャンネル数も、ベースオーディオファイルのチャンネル数と異なる場合は、ベースオーディオファイルと同じに変更されます。
The number of channel(s) of the output audio file will be the same with that of the base audio file. The number of channel(s) of the newcome audio file will also be changed to the same with the base audio file, if it is different from that of the base audio file.
ダウンミックスプロセスには3つの状態があります:
The downmix process has 3 states:
- ダウンミキシングをバイパス–ベースオーディオファイルのみが処理されます;
Bypass Downmixing – Only the base audio file will be processed;- ダウンミキシングをオンにする–ベースオーディオファイルとターゲットオーディオファイルが最初に移行期間に入り、その間にこれら2つのファイルのゲインが元のレベルからターゲットレベルに変更されます。 次に、同じ目標ゲインを共有して、安定期間に入ります;
Switch on Downmixing – The base audio file and the target audio file will first enter the transition period, during which the gains of these two files will be changed from the original level to the target level; then enter the stable period, sharing a same target gain;- ダウンミキシングをオフにする–ベースオーディオファイルとターゲットオーディオファイルは最初に移行期間に入り、その間にこれら2つのファイルのゲインが元のレベルに戻ります。 次に、それぞれ元のゲインで安定期間に入ります。 その後、ダウンミックスプロセスはバイパス状態になります。
Switch off Downmixing – The base audio file and the target audio file will first enter the transition period, during which the gains of these two files will be changed back to their original levels; then enter the stable period, with their original gains, respectively. After that, the downmix process enters the bypass state.
ベースオーディオファイルとニューカムオーディオファイルのサンプルレートは同じである必要があることに注意してください。同じでない場合、エラーが発生します。
Note that, the sample rates of the base audio file and the newcome audio file must be the same, otherwise an error occurs.
アプリケーション例¶
Application Example
このAPIの実装は、advanced_examples/downmix_pipelineの例で示されています。
Implementation of this API is demonstrated in advanced_examples/downmix_pipeline example.
APIリファレンス¶
API Reference
関数¶
Functions
-
void
downmix_set_input_rb_timeout
(audio_element_handle_t self, int ticks_to_wait)¶ ダウンミックスタイムアウトを設定します。
Sets the downmix timeout.
- Parameters
self
: オーディオ要素ハンドルself
: audio element handleticks_to_wait
: 入力リングバッファタイムアウトticks_to_wait
: input ringbuffer timeout
-
void
downmix_set_input_rb
(audio_element_handle_t self, ringbuf_handle_t rb, int index)¶ ダウンミックス入力リングバッファを設定します。
ringbuf.h
を参照してくださいSets the downmix input ringbuffer. refer to
ringbuf.h
- Parameters
self
: オーディオ要素ハンドルself
: audio element handlerb
: リングバッファのハンドルrb
: handle of ringbufferindex
: マルチ入力リングバッファのインデックス。index
: The index of multi input ringbuffer.
-
esp_err_t
downmix_set_output_type
(audio_element_handle_t self, esp_downmix_output_type_t output_type)¶ 出力ストリームのチャネル数を渡します。 モノラルとデュアルのみをサポートします。
Passes number of channels for output stream. Only supported mono and dual.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: audio element handleoutput_type
: ダウンミキサー出力タイプ。output_type
: down-mixer output type.
-
esp_err_t
downmix_set_work_mode
(audio_element_handle_t self, esp_downmix_work_mode_t mode)¶ ダウンミキサーのBYPASS、ON、OFFの状態を設定します。
Sets BYPASS, ON or OFF status of down-mixer.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: audio element handlemode
: ダウンミキサー作業モード。mode
: down-mixer work mode.
-
esp_err_t
downmix_set_out_ctx_info
(audio_element_handle_t self, esp_downmix_out_ctx_type_t out_ctx)¶ ダウンミキサーによってチャネルごとの出力ストリームのコンテンツを渡します。
Passes content of per channel output stream by down-mixer.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: audio element handleout_ctx
: 出力ストリームのコンテンツ。out_ctx
: content of output stream.
-
esp_err_t
downmix_set_source_stream_info
(audio_element_handle_t self, int rate, int ch, int index)¶ 処理する入力ストリームのサンプルレートとチャンネル数を設定します。
Sets the sample rate and the number of channels of input stream to be processed.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: audio element handlerate
: 入力ストリームのサンプルレートrate
: sample rate of the input streamch
: 入力ストリームのチャネル数ch
: number of channel(s) of the input streamindex
: 入力ストリームのインデックス。 インデックスは[0、SOURCE_NUM_MAX-1]の範囲内にある必要があります。index
: The index of input stream. The index must be in [0, SOURCE_NUM_MAX - 1] range.
-
esp_err_t
downmix_set_gain_info
(audio_element_handle_t self, float *gain, int index)¶ 処理するオーディオゲインを設定します。
Sets the audio gain to be processed.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: audio element handlegain
:ゲイン
のリセット値。ゲイン
は2つの要素の配列です。gain
: the reset value ofgain
. Thegain
is an array of two elements.index
: 入力ストリームのインデックス。 インデックスは[0、SOURCE_NUM_MAX-1]の範囲内にある必要があります。index
: The index of input stream. The index must be in [0, SOURCE_NUM_MAX - 1] range.
-
esp_err_t
downmix_set_transit_time_info
(audio_element_handle_t self, int transit_time, int index)¶ 処理するオーディオ
transit_time
を設定します。Sets the audio
transit_time
to be processed.- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: audio element handletransit_time
:transit_time
のリセット値transit_time
: the reset value oftransit_time
index
: 入力ストリームのインデックス。 インデックスは[0、SOURCE_NUM_MAX-1]の範囲内にある必要がありますindex
: The index of input stream. The index must be in [0, SOURCE_NUM_MAX - 1] range
-
esp_err_t
source_info_init
(audio_element_handle_t self, esp_downmix_input_info_t *source_num)¶ ダウンミキシングのためにソースストリームの情報を初期化します。
Initializes information of the source streams for downmixing.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: audio element handlesource_num
: ソースストリームの情報配列source_num
: The information array of source streams
-
audio_element_handle_t
downmix_init
(downmix_cfg_t *config)¶ ダウンミキシング用のオーディオエレメントハンドルを初期化します。
Initializes the Audio Element handle for downmixing.
- Return
- 初期化されたオーディオ要素ハンドル
The initialized Audio Element handle
- Parameters
config
: 構成config
: the configuration
構造体¶
Structures
-
struct
downmix_cfg_t
¶ ダウンミックス構成。
Downmix configuration.
Public Members
-
esp_downmix_info_t
downmix_info
¶ ダウンミックス情報
Downmix information
-
int
max_sample
¶ ダウンミックス処理あたりのサンプル数
The number of samples per downmix processing
-
int
out_rb_size
¶ リングバッファのサイズ
Size of ring buffer
-
int
task_stack
¶ タスクスタックのサイズ
Size of task stack
-
int
task_core
¶ コアで実行されているタスク…
Task running in core…
-
int
task_prio
¶ タスクの優先度(FreeRTOSの優先度に基づく)
Task priority (based on the FreeRTOS priority)
-
esp_downmix_info_t