趣味人のブログ

Cogito, ergo sum. 我思う故に我あり.

Machine learning-based Generalized Head-Related Transfer Function

This document describes the details of the Generalized Head-Related Transfer Function (GHRTF), which is an adjusted HRTF using machine learning. This adjustment improves sound quality by ensuring that the signal from the front is transferred transparently. It also enables typical GHRTF by training them using HRTFs from numerous subjects. Finally, the document evaluates the GHRTF and clarifies that it provides a clearer sense of direction and higher sound quality.

1. Introduction

The Head-Related Transfer Function (HRTF) is a key technology for three-dimensional sound. However, issues regarding sound quality and HRTF personalization must be resolved for this technology to be adopted more widely.

When applying HRTF to music production, sound quality issues may arise. Fig. 1 shows the frequency responses in the horizontal and vertical planes of subject H4 in the SADIE II database [2]. As the figure shows, these responses do not meet the required quality level for music production.

Fig. 1: Examples of HRTF frequency responses.

Due to significant individual variation in HRTF, using personalized HRTF—that is, measured or customized for an individual—is desirable. However, this increases the cost. Therefore, for this technology to be adopted more widely, it requires a typical HRTF, which has a moderate effect for everyone.

SoundObject version 4.1 proposes a Generalized HRTF (GHRTF) based on machine learning that provides music production–level quality and typical HRTF. This document describes the definition of GHRTF, how it is estimated using machine learning, and its evaluation results.

2. Coordinate system in this document

This document uses a coordinate system based on the Spatially Oriented Format for Acoustics (SOFA), as defined in the AES69-2020 specification [1]. The head is located at the origin. The x-, y-, and z-axis directions are the front, leftward, and upward directions, respectively. In the polar coordinate system, the radius r is the distance from the origin to the sound source, the elevation angle θ [−90, 90] deg. is measured from the x-y plane, and the azimuth angle φ [0, 360) deg. is measured counterclockwise from the x-axis. Furthermore, to unify the elevation angle in the vertical plane, this document defines θp as follows.

(1) θp={θ,(φ=0)180-θ,(φ=180,θ0)-180-θ,(φ=180,θ0)

Note: The definition of the elevation angle in AES69-2020 differs from the standard definition.

The HRTF describes the transfer characteristics from the sound source to the ear. As shown in Fig. 2, Y (θ, φ, z) = H (θ, φ, z) X (z), where X (z) is the Z-transform of the sound source signal x [n], H (θ, φ, z) is the HRTF for the sound source direction (θ, φ), h [θ, φ, n] is the impulse response of H (θ, φ, z), and Y (θ, φ, z) is the Z-transform of the observed signal y [θ, φ, n]. Note that the Z-transform of the observed signal from the front direction (θ = 0, φ = 0) is Y (0, 0, z) = H (0, 0, z) X (z). The HRTF impulse response, h [θ, φ, n], can be obtained directly from the SOFA format file.

Fig. 2: Head-Related Transfer Function.

3.2 Proposed Generalized HRTF

The Generalized HRTF G (θ, φ, z) is defined as follows.

(2) G(θ,φ,z)=H(θ,φ,z)H(0,0,z)

As shown in Fig. 3, it is an adjusted HRTF based on the HRTF for the front direction, and the signal from the front is transferred transparently. Therefore, an improvement in sound quality is expected. Note that, since this simply adjusts sound color, it does not affect sound localization. However, G (θ, φ, z) cannot be derived analytically from H (θ, φ, z).

Fig. 3: Generalized HRTF.

3.2 GHRTF estimation using machine learning

Equation 2 can be transformed as follows.
(3) H(θ,φ,z)=G(θ,φ,z)H(0,0,z)

In the transfer function method, the system's impulse response and the signal are theoretically equivalent. Therefore, Eq. 3 can be considered a system with a transfer function of G (θ, φ, z). When h [0, 0, n] is input into this system, the output is h [θ, φ, n]. Here, h [θ, φ, n] is the impulse response of H (θ, φ, z).

Transfer function estimation based on input and output signals is known as system identification. The simplest system identification method is multiple regression. The multiple regression model for a N order FIR filter is shown below. Here, g [θ, φ, k] is the impulse response of G (θ, φ, z), which can be estimated by multiple regression, i.e., machine learning. In this case, h [θ, φ, n] is the target variable, and h [0, 0, n k] is the explanatory variable.

(4) h[θ,φ,n]=k=0N-1g[θ,φ,k]h[0,0,n-k]

3.4 Examples of GHTRF estimation

The following GHTRF estimation uses 48KHz sampling data from subject H4 in the SADIE II database [2]. Figures 4 and 5 show the estimated impulse responses in the horizontal and vertical planes, respectively.

Fig. 4: Examples of impulse responses on the horizontal plane.

Fig. 5: Examples of impulse responses on the vertical plane.

The left heat maps show h [θ, φ, n], the HRTF impulse responses stored in the SOFA format file. The heat maps on the right show g [θ, φ, k], the GHRTF impulse responses estimated using machine learning. The center heat maps illustrate the HRTF impulse responses inferred from h [0, 0, n] and the trained g [θ, φ, k], demonstrating high repeatability.

Next, Figures 6 and 7 show the frequency responses of the aforementioned HRTF and GHRTF, respectively.

Fig. 6: Examples of frequency responses on the horizontal plane.

Fig. 7: Examples of frequency responses on the vertical plane.

The plots on the left are the HRTF frequency responses, and the plots on the right are the estimated GHRTF frequency responses. In both the horizontal and vertical planes, the variance of the GHRTF frequency responses is reduced, thus improving sound quality.

4. Typical GHRTF

4.1 Typical GHRTF estimation using machine learning

GHRTF training data does not need to be limited to data from a single subject. When trained on several subjects, the estimation of the typical GHRTF is expected.

Note that, when estimating the GHRTF impulse response g [θ, φ, k] for each subject, the sample with the maximum response varies depending on the subjects and (θ, φ). Therefore, simply estimating the typical GHRTF from multiple subjects' data does not meet expectations.

First, estimate the GHRTF impulse response g [θ, φ, k] for each subject. Then, identify the sample m with the maximum response for each impulse response. Next, calculate the average value of m across subjects with the same (θ, φ) values. Then, calculate the difference from the average. Finally, estimate the typical GHRTF impulse response for several subjects. Align the samples with the maximum response across subjects based on this difference by modifying n in Eq. 4.

4.2 Examples of typical GHTRF estimation

The following is a typical GHTRF estimation obtained by training using HRTF data from numerous subjects. Figures 8 and 9 show the impulse and frequency responses in the vertical plane, respectively, as used by SoundObject. Compared with the aforementioned frequency responses, the variance of the typical GHTRF frequency responses is reduced even further.

Fig. 8: Examples of impulse responses on the vertical plane.

Fig. 9: Examples of frequency responses on the vertical plane.

5. Evaluation

SoundObject version 4.1 enables a sense of direction for up-down and front-back with the aforementioned typical GHRTF. As shown in the following video, it achieves a quality level for music production. A sufficient sense of direction is also achieved for up-down and front-back. The sense of direction for front-back has especially improved compared with the prior version's impulse responses extracted from the KU 100 and KEMAR dummy heads.


www.youtube.com

References

[1] Audio Engineering Society, "AES standard for file exchange - Spatial acoustic data file format," AES69-2020, December 2020.

[2] SADIE project, "SADIE II Database," University of York, EPSRC, June 2018. https://www.york.ac.uk/sadie-project/database.html

[3] M. Kohnen, F. Denk, J. Llorca-Bofi, B. Kollmeier, and M. Vorlander, "COAT - Cross-site Oldenburg-Aachener transfer-functions," Zenodo, November 2020. https://zenodo.org/records/4556707

[4] M. Warnecke, S. Clapp, Z. Ben-Hur, D. Lou Alon, S. V. Amengual Garí, and P. Calamia, "Sound Sphere 2: A High-resolution HRTF Database," 2024 AES 5th International Conference on Audio for Virtual and Augmented Reality, Augst 2024. https://facebookresearch.github.io/SS2_HRTF/

機械学習による一般化頭部伝達関数

本ドキュメントは一般化頭部伝達関数の詳細を述べる.一般化頭部伝達関数とは機械学習によって補正された頭部伝達関数である.補正により正面方向の信号は透過転送となるため,音質が向上する.また,多数の被験者の頭部伝達関数から学習する事により,典型的な一般化頭部伝達関数を実現できる.本ドキュメントでは最後に典型的な一般化頭部伝達関数の評価を述べ,より明確な方向感と高い音質が得られる事を明らかにする.

1. イントロダクション

頭部伝達関数 (Head-Related Transfer Function: HRTF) は立体音響のキーテクノロジーである.しかし,この技術の普及には音質と頭部伝達関数の個人化の問題を解決しなければならない.

頭部伝達関数を音楽制作に適用した場合,音質が問題となる場合がある.頭部伝達関数の周波数応答の例として,SADIE II データベース [2] の被験者 H4 における水平面および垂直面の周波数応答 Fig. 1 に示す.図から明らかな通り,この特性は音楽制作に必要なレベルの音質を満たしていない.

Fig. 1: Examples of HRTF frequency responses.

また,頭部伝達関数は個人差が大きいため,頭部伝達関数の個人化,即ち利用者毎に計測ないしカスタマイズした頭部伝達関数の使用が望ましいが,コストが問題となる.従って,頭部伝達関数の普及には,誰でも一定の効果が得られる典型的な頭部伝達関数が必要となる.

SoundObject バージョン 4.1 では,音楽制作レベルの品質かつ典型的な頭部伝達関数を実現した,機械学習による一般化頭部伝達関数を提案する.本ドキュメントでは,一般化頭部伝達関数の定義,機械学習による推定方法,および評価を述べる.

2. 本ドキュメントの座標系

本ドキュメントの座標系は AES69-2020 SOFA (Spatially Oriented Format for Acoustics) [1] の規定に基づく.頭部は原点に位置する.x, y, z 軸方向が各々正面,左,上方向となる.極座標系の半径 r は原点から音源の距離,仰角 θ [−90, 90] deg. は x-y 平面から計測され,方位角 φ [0, 360) deg. は x 軸から反時計回りに計測される.更に,本ドキュメントでは,垂直面における仰角を統一的に扱うため,θp を以下の通り定義する.

(1) θp={θ,(φ=0)180-θ,(φ=180,θ0)-180-θ,(φ=180,θ0)

Note: AES69-2020 の仰角の定義は通常の定義とは異なる.

3. 一般化頭部伝達関数

3.1 頭部伝達関数

頭部伝達関数とは音源から耳までの伝達特性である.Fig. 2 に示す様に,音源の信号 x [n] の Z 変換を X (z),(θ, φ) 方向の音源に対する頭部伝達関数を H (θ, φ, z),そのインパルス応答を h [θ, φ, n],観測される信号 y [θ, φ, n] の Z 変換を Y (θ, φ, z) とすると,Y (θ, φ, z) = H (θ, φ, z) X (z) となる.尚,正面方向 (θ = 0, φ = 0) の音源から観測される信号の Z 変換は Y (0, 0, z) = H (0, 0, z) X (z) となる.頭部伝達関数のインパルス応答 h [θ, φ, n] は SOFA 形式のファイルから直接得られる.

Fig. 2: Head-Related Transfer Function.

3.2 提案する一般化頭部伝達関数

一般化頭部伝達関数 (Generalized HRTF) G (θ, φ, z) を以下の通り定義する.

(2) G(θ,φ,z)=H(θ,φ,z)H(0,0,z)

Fig. 3 に示す通り,これは正面方向の頭部伝達関数に基づいて補正された頭部伝達関数であり,正面方向の信号は透過転送となる.従って,音質の向上に期待できる.尚,これは単なる音色の補正であるため,定位感には影響しない.但し,H (θ, φ, z) から G (θ, φ, z) を解析的に求める事は出来ない.

Fig. 3: Generalized HRTF.

3.3 機械学習による一般化頭部伝達関数の推定

式 (2) は以下の通り変形できる.

(3) H(θ,φ,z)=G(θ,φ,z)H(0,0,z)

伝達関数法において,システムのインパルス応答と信号は論理的に等価である.従って,式 (3) は伝達関数を G (θ, φ, z) とし,h [0, 0, n] を入力した際に h [θ, φ, n] を出力するシステムと見做せる.ここで,h [θ, φ, n] は H (θ, φ, z) のインパルス応答である.

システムの入出力信号による伝達関数の推定はシステム同定として知られる.最も簡単なシステム同定方法は重回帰となる.重回帰モデルを以下に示す N 次の FIR フィルタとする.ここで g [θ, φ, k] は G (θ, φ, z) のインパルス応答であり,重回帰によって推定,即ち機械学習によって学習できる.この場合,目的変数は h [θ, φ, n],説明変数は h [0, 0, n k] となる.

(4) h[θ,φ,n]=k=0N-1g[θ,φ,k]h[0,0,n-k]

3.4 一般化頭部伝達関数の推定例

以下の一般化頭部伝達関数の推定例では SADIE II データベース [2] の被験者 H4 の 48KHz サンプリングデータを使用している.水平面および垂直面のインパルス応答の推定例を各々 Fig. 4 と 5 に示す.

Fig. 4: Examples of impulse responses on the horizontal plane.

Fig. 5: Examples of impulse responses on the vertical plane.

左側のヒートマップは何れも SOFA 形式のファイルに記録された頭部伝達関数のインパルス応答 h [θ, φ, n] である.右側のヒートマップは h [θ, φ, n] から機械学習により推定された一般化頭部伝達関数のインパルス応答 g [θ, φ, k] である.中央のヒートマップは学習した g [θ, φ, k] と h [0, 0, n] から推論した頭部伝達関数のインパルス応答であり,再現性が高い事が判る.

次に,上記の頭部伝達関数,一般化頭部伝達関数の周波数応答を各々 Fig. 6 と 7 に示す.

Fig. 6: Examples of frequency responses on the horizontal plane.

Fig. 7: Examples of frequency responses on the vertical plane.

左側は何れも頭部伝達関数の周波数応答,右側は推定された一般化頭部伝達関数の周波数応答を示す.水平面垂直面共に,一般化頭部伝達関数の周波数応答は分散が抑えられ,音質が向上している.

4. 典型的な一般化頭部伝達関数

4.1 機械学習による典型的な一般化頭部伝達関数の推定

一般化頭部伝達関数の学習データを,単一の被験者のデータに限定する必要は無い.多数の被験者のデータから学習すれば,典型的な一般化頭部伝達関数の推定に期待できる.

尚,被験者毎に一般化頭部伝達関数のインパルス応答 g [θ, φ, k] を推定した場合,個々のインパルス応答において,応答が最大となるサンプルは被験者及び (θ, φ) 毎に異なる.このため,複数の被験者のデータから単純に一般化頭部伝達関数を推定しても良好な結果は得られない.

この場合,先ず被験者毎に一般化頭部伝達関数のインパルス応答 g [θ, φ, k] を推定する.そして,個々のインパルス応答において,応答が最大となるサンプル m を求め,同一の (θ, φ) における被験者間の m の平均値を求め,平均からの差分を計算する.そして,複数の被験者データから一般化頭部伝達関数を推定する際に,応答が最大となるサンプルを被験者間で同一とするために,この差分に基づいて,式 (4) の n を補正する.

4.2 典型的な一般化頭部伝達関数の推定例

多数の被験者の頭部伝達関数データから学習した,典型的な一般化頭部伝達関数の推定例を以下に示す.Fig. 8 および 9 は各々 SoundObject で使用している垂直面のインパルス応答および周波数応答である.多数の被験者のデータから学習したため,前に示したインパルス応答および周波数応答と比較して更に分散が抑えられた特性を示している.

Fig. 8: Examples of impulse responses on the vertical plane.

Fig. 9: Examples of frequency responses on the vertical plane.

5. 評  価

SoundObject バージョン 4.1 は,上記の典型的な一般化頭部伝達関数によって上下および前後の方向感を実現している.以下のビデオの通り,音楽制作用に十分な音質が達成されている.また,上下および前後の方向感も十分実現されている.特に,以前のバージョンにおいて KU 100 および KEMAR ダミーヘッドの HRIR から切り出したインパルス応答と比較して,前後方向の方向感が改善されている.


www.youtube.com

参考文献

[1] Audio Engineering Society, "AES standard for file exchange - Spatial acoustic data file format," AES69-2020, December 2020.

[2] SADIE project, "SADIE II Database," University of York, EPSRC, June 2018. https://www.york.ac.uk/sadie-project/database.html

[3] M. Kohnen, F. Denk, J. Llorca-Bofi, B. Kollmeier, and M. Vorlander, "COAT - Cross-site Oldenburg-Aachener transfer-functions," Zenodo, November 2020. https://zenodo.org/records/4556707

[4] M. Warnecke, S. Clapp, Z. Ben-Hur, D. Lou Alon, S. V. Amengual Garí, and P. Calamia, "Sound Sphere 2: A High-resolution HRTF Database," 2024 AES 5th International Conference on Audio for Virtual and Augmented Reality, Augst 2024. https://facebookresearch.github.io/SS2_HRTF/

VoMPE

1. Overview of VoMPE

VoMPE (Voice over MIDI Polyphonic Expression) analyzes voice input and then outputs polyphonic MIDI notes based on formant frequencies representing voice characteristics.


www.youtube.com

The process of voice production can be modeled by the vibration of the vocal cords and the resonance of the vocal tract. In this case, the voice spectrum is the product of the vibration spectrum of the vocal cords and the frequency characteristics of the vocal tract. Thus, the frequency characteristics of the vocal tract are called the spectral envelope. And the resonant frequencies of the vocal tract, i.e., the peak frequencies of the spectral envelope, are called formant frequencies. These are widely used in speech analysis, synthesis, and coding.

VoMPE estimates the spectral envelope of voice input using Linear Prediction Coefficients and then finds the formant frequencies. The spectral envelope is divided into bands and one band corresponds to one MIDI channel. VoMPE outputs MIDI notes that reflect formant frequencies whose amplitude is maximum in the band.

VoMPE is provided as a VST 3 plug-in for digital audio workstations and supports 16KHz, 44.1KHz, and 48KHz sampling rates. OS environment is 64bit Windows 11.

The VoMPE binary distribution is licensed under the Creative Commons Attribution 4.0 (CC BY 4.0) at no charge.

github.com

The VoMPE source code distribution is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0) at no charge.

github.com

2. Operation of VoMPE

The user interface of VoMPE is shown in Fig. 1.

Fig. 1: User interface of VoMPE.

The line, blue dots, and blue line on the left side graph show the spectral envelope, formant frequencies, and MIDI note on/off threshold respectively. The graph on the right shows the spectral envelope over time with a color map. White dots indicate formant frequencies.

The spectral envelope, which has a maximum bandwidth of 8KHz, is divided into bands based on the formant bandwidth and the number of formant bands. Each band corresponds to one MIDI channel. The MIDI note on/off threshold indicates the amplitude of the formant frequency that triggers the MIDI note on/off.

The formant and MIDI frequency ratio indicates the pitch between the formant and MIDI note frequencies. The audio output delay shows the VoMPE audio output delay time. When the MIDI pitch bend is set to On, a pitch bend is sent before a MIDI note is played, resulting in a more accurate formant frequency. The pause button freezes the update of the left and right graphs.

Right-mouse clicking on the user interface displays UI zoom factors.

Examples of MPE synthesizer configurations

When the MIDI pitch bend is set to On, the synthesizer must be set to MPE mode. MPE configurations for Surge XT and Vital are described for reference.

Activate the MPE mode on the MPE synthesizer.

Surge XT: Set Status MPE and select Poly in the Play Mode. See Fig. 2.

Vital: Set MPE ENABLED. See Fig. 3.

Note: Vital's MPE status is not saved correctly in the DAW project file, so each time a project is started, unset and then set MPE ENABLED.

Set the number of voices to an appropriate value. Note that in some presets, the default number of voices is set to 1.

Fig 2: MPE configuration of Surge XT.

Fig 3: Configuration of Vital.

VST is a registered trademark of Steinberg Media Technologies GmbH.

f:id:suzumushi0:20210807145222p:plain

VoMPE

1. VoMPE の概要

VoMPE (Voice over MIDI Polyphonic Expression) は,音声入力を分析し,音声の特徴を表すフォルマント周波数に基づいたポリフォニックの MIDI ノートを出力する.


www.youtube.com

音声の生成過程は,声帯による振動と声道による共振 (レゾナンス) によってモデル化できる.この場合,音声のスペクトルは,声帯による振動のスペクトルと声道の周波数特性の積となる.このため,声道の周波数特性はスペクトラルエンベロープ (Spectral envelope) と呼ばれる.また,音道の共振周波数,即ちスペクトラルエンベロープのピークとなる周波数,をフォルマント (Formant) 周波数と呼び,これらは音声の分析,合成,符号化で広く用いられている.

VoMPE は,線形予測係数 (Linear Prediction Coefficients: LPC) によって,音声入力のスペクトラルエンベロープを推定し,フォルマント周波数を求める.スペクトラルエンベロープは複数のバンド (周波数帯) に分割され,各バンドは MIDI チャネルに対応する.VoMPE は各バンドにおいて振幅が最大となるフォルマント周波数に対応した MIDI ノートを出力する.

VoMPE はディジタルオーディオワークステーションの VST 3 plug-in として提供され,16KHz, 44.1KHz, 48KHz のサンプリングレートをサポートしている.また,OS 環境は 64 bit の Windows 11以降となる.

VoMPE バイナリ―ディストリビューションは Creative Commons Attribution 4.0 (CC BY 4.0) に基づいて無料でライセンスされる.

github.com

VoMPE ソースコードディストリビューションは Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0) に基づいて無料でライセンスされる.

github.com

2. VoMPE の使用方法

VoMPE のユーザーインタフェースを Fig. 1 に示す.

Fig. 1: User interface of VoMPE.

左側のグラフの線はスペクトラルエンベロープ,青のドットはフォルマント周波数,青線は MIDI ノートが on/off となる閾値を示す.右側のグラフはスペクトラルエンベロープの時間推移をカラーマップで示す.白色はフォルマント周波数である.

帯域が最大 8 KHz のスペクトラルエンベロープは,フォルマント帯域幅 (Formant bandwidth),およびフォルマント帯域数 (Number of formant bands) によりバンド (周波数帯) に分割される.各バンドは一つの MIDI チャネルに対応する.MIDI ノート on/off 閾値 (MIDI note on/off threshold) は,MIDI ノートオン,オフ出力の契機となるフォルマント周波数の振幅を示す.

フォルマントと MIDI 周波数比 (Formant and MID frequency ratio) はフォルマントと MIDI ノート周波数のピッチを示す.オーディオ出力遅延 (Audio output delay) は,VoMPE のオーディオ出力の遅延時間を示す.MIDI ピッチベンド (MIDI pitch bend) を On とした場合,MIDI ノートオンの前にピッチベンドが出力され,より正確なフォルマント周波数となる.ポーズは (Pause) は左右のグラフの更新を停止する.

UI 上でマウスを右クリックすると,UI の倍率が表示される.

参考: MPE シンセサイザーの設定例

MIDI ピッチベンドをオンとする場合,シンセサイザーは MPE モードとする必要がある.参考に Surge XT と Vital の MPE 設定方法を述べる.

MPE モードをオンにする.

Surge XT: Status MPE をオン,Play Mode を Poly にする.Fig. 2 を参照.

Vital: MPE ENABLED をオンにする.Fig. 3 を参照.

Note: Vital の MPE のステータスは DAW プロジェクトに正しく保存されないため,プロジェクトを立ち上げた際に毎回 MPE ENABLED をオフ・オンする.

ボイス数を必要な数に設定する.プリセットによっては,デフォルトのボイス数が 1 となっている事に注意.

Fig 2: MPE configuration of Surge XT.

Fig 3: Configuration of Vital.

VST is a registered trademark of Steinberg Media Technologies GmbH.

f:id:suzumushi0:20210807145222p:plain

SpeakerObjects

1. Overview of SpeakerObjects

SpeakerObjects, a customized version of SoundObject, specializes in binaural reproduction of stereo speaker-based sound fields.


www.youtube.com

Headphone monitoring of stereo sound that is assumed to be play-backed from speakers degrades sound localization. Similarly, stereo speaker sound mixed by headphone monitoring leads to sound imbalance. In these cases, it is necessary to compensate for the acoustic characteristics of the listening room during monitoring or mixing, which is supported by SpeakerObjects.

SpeakerObjects is provided as a VST 3 plug-in for digital audio workstations (DAW) and supports 44.1KHz, 48KHz, and 96KHz sampling rates. OS environment is 64bit Windows 11.

SpeakerObjects binary distribution is licensed under Creative Commons Attribution 4.0 (CC BY 4.0) at no charge.

github.com

SpeakerObjects source code distribution is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0) at no charge.

github.com

2. Operation of SpeakerObjects

Coordinate system

Coordinate system of SpeakerObjects based on the spatially oriented format for acoustics (SOFA) defined by AES69-2020 [1] specification is shown in Fig. 1.

Fig. 1: Coordinate system of SpeakerObjects.

As shown in the figure, in SpeakerObjects, the center of the sphere (listener's head) is located at the origin. And x, y, and z-axis directions are the front, leftward, and upward directions respectively. In the polar coordinates system, radius r is the distance from the origin to the left speaker, elevation angle θ [−90, 90] deg. is measured from the x-y plane, and azimuth angle φ [0, 360) deg. is measured counterclockwise from the x-axis. The depth, width, and height of the reverberation room are the distances of x, y, and z-axis directions respectively. And distances to the center of the sphere are measured from the point shown in the figure.

Note: The definition of elevation angle in AES69-2020 is different from the typical definition.

User interface

User interface of SpeakerObjects is shown in Fig. 2.

Fig. 2: User interface of SpeakerObjects.

The position of the left speaker indicated by the white dot colud be set from any of the rectangular coordinates, the polar coordinates, the x-y pad illustrating the top view, and the y-z pad also illustrating the rear view. The red dot indicates the position of the right speaker which is automatically positioned symmetrically to the left speaker. They are constrained by the inside of the reverberation room shown by the rectangles.

The reflectance slider indicates the reflectance of the reverberation room. Typically, it is set to less than 0 dB, however, in a large reverberation room, it may be set to over 0 dB because the level of reflected waves decreases due to distance attenuation.

The LPF cutoff frequency slider denotes the cutoff frequency of the LPF for reflected waves. However, in the case of ∞ KHz, the LPF function is invalidated.

The distance attenuation slider indicates the distance decay of direct and reflected waves. −6 dB means decreasing by half when the distance to the left speaker is doubled (i.e., point sound source) and 0 dB means no attenuation (i.e., plane sound source).

The HRIR option menu selects the HRIR database used by the pinna scattering effect filter.

Descriptions for dimensions of the reverberation room and center of the sphere are explained in the coordinate system. It is strongly recommended that the center of the sphere be placed in an asymmetrical position in the reverberation room. In addition to these, settings for acoustic speed and radius of the sphere are updated during the DAW is not playing, that is, not updated in real-time.

References

[1] Audio Engineering Society, "AES standard for file exchange - Spatial acoustic data file format," AES69-2020, December 2020.

VST is a registered trademark of Steinberg Media Technologies GmbH.

f:id:suzumushi0:20210807145222p:plain

SpeakerObjects

1. SpeakerObjects の概要

SpeakerObjects は SoundObject のカスタマイズ版であり,ステレオスピーカによる音場のバイノーラル再現に特化している.


www.youtube.com

ステレオススピーカーからの再生を想定したサウンドをヘッドホンでモニターすると,定位感が損なわれる.同様に,ヘッドホンモニタリングによってミキシングされたサウンドを,ステレオススピーカーから再生すると,サウンドのバランスが崩れる.これらの場合は,モニタリングやミキシングの際にリスニングルームの音響特性の補正が必要であり,SpeakerObjects はこれをサポートしている.

SpeakerObjects はディジタルオーディオワークステーション (Digital Audio Workstations: DAW) の VST 3 plug-in として提供され,44.1KHz, 48KHz, 96KHz のサンプリングレートをサポートしている.また,OS 環境は 64 bit の Windows 11 となる.

SpeakerObjects バイナリ―ディストリビューションCreative Commons Attribution 4.0 (CC BY 4.0) に基づいて無料でライセンスされる.

github.com

SpeakerObjects ソースコードディストリビューションCreative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0) に基づいて無料でライセンスされる.

github.com

2. SpeakerObjects の使用方法

座 標 系

AES69-2020 [1] に規定された SOFA (Spatially Oriented Format for Acoustics) に基づいた SpeakerObjects の座標系を Fig. 1 に示す.

Fig. 1: Coordinate system of SpeakerObjects.

図に示す通り,SpeakerObjects では球 (リスナーの頭部) の中心は原点に位置する.また,x, y, z 軸方向が各々正面,左,上方向となる.極座標系の半径 r は原点から左スピーカーへの距離,仰角 (Elevation) θ [−90, 90] deg. は x-y 平面から計測され,方位角 (Azimuth) φ [0, 360) deg. はx 軸から反時計回りに計測される.残響室の奥行 (Depth),幅 (Width),高さ (Height) は各々 x, y, z 軸方向の長さとなる.また,球の中心の距離は図に示す点から計測される.

Note: AES69-2020 の仰角の定義は通常の定義とは異なる.

ユーザーインタフェース

SpeakerObjects のユーザーインタフェースを Fig. 2 に示す.

Fig. 2: User interface of SpeakerObjects.

白色の点で示される左スピーカーの位置 (Position of left speaker) は,直交座標 (Rectangular coordinates),極座標 (Polar coordinates),上面図 (Top view) を示す x-y パッド,背面図 (Rear view) を示す y-z パッドの何れからも設定できる.赤色の点は右スピーカーの位置を示し,左スピーカーの対称となる位置に自動的に配置される.これらスピーカーの位置は長方形で示された残響室の内部に制約される.

Reflectance (反射率) スライダーは残響室の反射率を示す.通常 0 dB 以下に設定するが,広い残響室では距離減衰により反射波のレベルが下がるため 0 dB 以上に設定する場合がある.

LPF cutoff frequency (LPF のカットオフ周波数) スライダーは反射波の LPF のカットオフ周波数を示す.但し,∞KHz の場合,LPF 機能は停止する.

距離減衰 (Distance attenuation) スライダーは,距離による直接波と反射波の減衰を示す.−6 dB で左スピーカーまでの距離が 2 倍となった際に半減 (即ち点音源) を,0 dB で無減衰 (即ち面音源) を意味する.

HRIR オプションメニューは,耳介散乱効果フィルタが使用する HRIR データベースを選択する.

Dimensions of reverberation room (残響室の寸法),Center of sphere (球の中心) は座標系で説明した通りである.球の中心は残響室に対して非対称な位置とする事を強くお勧めする.これらに加えて Acoustic speed (音速),Radius of sphere (球の半径) の設定はリアルタイムには更新されず,DAW が停止している際に更新される.

参考文献

[1] Audio Engineering Society, "AES standard for file exchange - Spatial acoustic data file format," AES69-2020, December 2020.

VST is a registered trademark of Steinberg Media Technologies GmbH.

f:id:suzumushi0:20210807145222p:plain

PolyPortamento

1. Overview of PolyPortamento

PolyPortamento is a plug-in enabling polyphonic portamento with MPE synthesizers.


www.youtube.com

MIDI Polyphonic Expression (MPE) specification [1] is applicable to polyphonic, that is, MIDI channel-based pitch bend, as well as portamento and legato functions. However, in a large number of MPE synthesizer implementations, MPE support of MIDI functions is limited to pitch bend only.

PolyPortamento is a plug-in inserted between a MIDI track and an MPE synthesizer. It works MIDI channel basis and then converts a received MIDI Note On event to a series of Pitch Bend Changes for portamento.

PolyPortamento is provided as a VST 3 plug-in for digital audio workstations. OS environment is 64bit Windows 10 and later.

PolyPortamento binary distribution is licensed under Creative Commons Attribution 4.0 (CC BY 4.0) at no charge.

github.com

PolyPortamento source code distribution is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0) at no charge.

github.com

2. Operation of PolyPortamento

MIDI track in DAW

PolyPortamento slides pitch of time continuous notes in a MIDI channel. Since MIDI channels 2 through 16 work as monophonic, channel separation is required for notes in a chord. Refer to example.mid included in the PolyPortamento binary distribution. Note that do NOT use the MIDI channel 1. It is the master channel of MPE having a different role from the other channels.

Plug-in user interface

User interface of PolyPortamento is shown in Fig. 1.

Fig. 1: User interface of PolyPortamento.

Portamento time indicates pitch sliding time from earlier to later notes when notes are continued in a MIDI channel. The time unit is selected from seconds, seconds for a one-octave slide (seconds/octave), tempo-synced beats (quarter notes) time, or beats time for a one-octave slide (beats/octave).

Portamento curve indicates pitch change.

Right-mouse clicking on the user interface shows UI zoom factors.

MPE synthesizer configuration

Select high sustain level preset of MPE synthesizer, because PolyPortamento converts MIDI Note On event to a series of Pitch Bend Changes.

Enable the MPE mode of the MPE synthesizer.

Surge XT: set Status MPE and select Poly in the Play Mode. Refer Fig. 2.
Vital: set MPE ENABLED. Refer Fig. 3.

Note: MPE status of Vital is not correctly saved DAW project file so every time a project is started, unset then set MPE ENABLED.

Set the number of voices to an appropriate value. Note that in some presets, the default value of voices is set to 1.

Fig 2: Configuration of Surge XT.

Fig 3: Configuration of Vital.

Reference

[1] The MIDI Manufacturers Association, "MIDI Polyphonic Expression Version 1.0," March 2018.

VST is a registered trademark of Steinberg Media Technologies GmbH.

f:id:suzumushi0:20210807145222p:plain