minilogue xdには外部変数として、下記のものが osc_api.sym
に定義されている。
k_osc_api_version = 0x0800f000;
midi_to_hz_lut_f = 0x0800f100;
sqrtm2log_lut_f = 0x0800f360;
tanpi_lut_f = 0x0800f764;
log_lut_f = 0x0800fb68;
bitres_lut_f = 0x0800ff6c;
wt_par_lut_f = 0x08010170;
wt_par_notes = 0x08010f8c;
wt_sqr_lut_f = 0x08010f94;
wt_sqr_notes = 0x08011db0;
wt_saw_lut_f = 0x08011db8;
wt_saw_notes = 0x08012bd4;
wt_sine_lut_f = 0x08012bdc;
schetzen_lut_f = 0x08012de0;
cubicsat_lut_f = 0x08012fe4;
wavesA = 0x080131e8;
wavesB = 0x0801546c;
wavesC = 0x080174ec;
wavesD = 0x0801915c;
wavesE = 0x0801abc4;
wavesF = 0x0801ca3c;
_osc_mcu_hash = 0x0801eabc;
_osc_bl_saw_idx = 0x0801eac8;
_osc_bl_sqr_idx = 0x0801ebb0;
_osc_bl_par_idx = 0x0801ec98;
_osc_rand = 0x0801ed80;
_osc_white = 0x0801edb8;
以下、それぞれの変数について判明し次第追記:
-
k_osc_api_version
- logue SDKのAPI番号が入っている?
-
midi_to_hz_lut_f
- midiのノート番号と発振周波数の対応テーブル
- おそらく、マイクロチューニングを切り替えるたびに中身が変わる -> 確かめてないので違うかも
-
sqrtm2log_lut_f
-
sqrt(-2*log(x))
を計算するためのテーブル -
osc_api
やfx_api
にこれを使った関数が定義されているので、このテーブルを直接使うことはなさげ
-
-
tanpi_lut_f
-
tan(pi*x)
を計算するためのテーブル。これも直接使うことはなさげ。
-
-
log_lut_f
-
log(x)
を計算するためのテーブル。同上。
-
-
bitres_lut_f
- bit depthの変換テーブル?
osc_bitresf
関数で使用。
- bit depthの変換テーブル?
-
wt_par_lut_f
- 放物線波形テーブル。
osc_parf
関数で使用
- 放物線波形テーブル。
-
wt_par_notes
- 不明
-
wt_sqr_lut_f
- 矩形波テーブル
-
wt_sqr_notes
- 不明
-
wt_saw_lut_f
- ノコギリ波テーブル
-
wt_saw_notes
- 不明
-
wt_sine_lut_f
- サイン波テーブル
-
schetzen_lut_f
-
osc_api
のソースコメントには "Schetzen saturation" と書いてある - 歪み用のテーブル?
-
-
cubicsat_lut_f
-
osc_api
のソースコメントには "Cubic saturation" と書いてある - 歪み用のテーブル?
-
-
wavesA〜D
- プリセットのUser OSCで使っている六種類のwavetable
- それぞれ16個の波形を格納
-
_osc_mcu_hash
- マイコンに関する何かのハッシュ値を返す関数?
-
_osc_bl_saw_idx
- "Get band-limited sawtooth wave index for note."とある
- バンドリミットされたノコギリ波に関連するなんかのindexを返す関数なのだが、使用例がないのでよくわからない
- どうでもいいが、引数のレンジが[0-151]なのに型が
float
なのは変
-
_osc_bl_sqr_idx
- 矩形波に関すること以外は同上
-
_osc_bl_par_idx
- 放物線波形に関すること以外は同上
-
_osc_rand
- ランダム関数
- 0からUINT_MAXまでの整数値をランダムに返す
-
_osc_white
- ホワイトノイズを返す関数(=返り値がfloatのランダム関数)