ymfdata

package
v0.0.0-...-dc06f90 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2019 License: MIT Imports: 1 Imported by: 6

Documentation

Index

Constants

View Source
const A3Freq = float64(440.0)

A3Freq は、A3の周波数[Hz]です。

View Source
const A3Note = 9 + 12*4

A3Note は、MIDIメッセージにおけるA3のノートナンバーです。

View Source
const ChannelCount = 32

ChannelCount は、最大チャンネル数です。

View Source
const DebugDumpFPS = 30

DebugDumpFPS は、デバッグとしてダンプ表示を行う頻度 [FPS] です。

View Source
const FNUMCoef = float64(1<<19) / SampleRate * .5

FNUMCoef は、周波数とFNUMを相互に変換する際に使用する係数です。

View Source
const ModTableIndexShift = 64 - ModTableLenBits

ModTableIndexShift は、2の64乗を1周とする値からモジュレーション振幅テーブルの インデックスに変換する際、右シフトするビット数です。

View Source
const ModTableLen = 8192

ModTableLen は、モジュレーション(ビブラートやトレモロ)の振幅テーブルの長さです。

View Source
const ModTableLenBits = 13

ModTableLenBits は、モジュレーション振幅テーブルのインデックスに必要なビット数です。 2 の ModTableLenBits 乗が ModTableLen になります。

View Source
const ModulatorMultiplier = 4.0

ModulatorMultiplier は、モジュレータの出力を他のオペレータに入力する際の増幅率です。

View Source
const SampleRate = float64(48000)

SampleRate は、内部的なサンプルレート[Hz]です。

View Source
const WaveformIndexShift = 64 - WaveformLenBits

WaveformIndexShift は、2の64乗を1周とする値から波形テーブルの インデックスに変換する際、右シフトするビット数です。

View Source
const WaveformLen = 1024

WaveformLen は、波形テーブルの長さです。

View Source
const WaveformLenBits = 10

WaveformLenBits は、波形テーブルのインデックスに必要なビット数です。 2 の WaveformLenBits 乗が WaveformLen になります。

Variables

View Source
var CarrierMatrix = [8][4]bool{
	{false, true, false, false},
	{true, true, false, false},
	{true, true, true, true},
	{false, false, false, true},
	{false, false, false, true},
	{false, true, false, true},
	{true, false, false, true},
	{true, false, true, true},
}

CarrierMatrix は、各 ALG でキャリアとして使用されるオペレータを表すマトリクスです。

View Source
var DTCoef = [8][16]float64{
	{0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00},
	{0.00, 0.00, 0.05, 0.05, 0.05, 0.05, 0.09, 0.09, 0.14, 0.14, 0.18, 0.23, 0.27, 0.32, 0.37, 0.37},
	{0.05, 0.05, 0.09, 0.09, 0.14, 0.14, 0.18, 0.23, 0.27, 0.32, 0.41, 0.46, 0.59, 0.64, 0.73, 0.73},
	{0.09, 0.09, 0.14, 0.14, 0.18, 0.23, 0.28, 0.32, 0.41, 0.46, 0.59, 0.64, 0.87, 0.91, 1.00, 1.00},
	{0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00},
	{-0.00, -0.00, -0.05, -0.05, -0.05, -0.05, -0.09, -0.09, -0.14, -0.14, -0.18, -0.23, -0.27, -0.32, -0.37, -0.37},
	{-0.05, -0.05, -0.09, -0.09, -0.14, -0.14, -0.18, -0.23, -0.27, -0.32, -0.41, -0.46, -0.59, -0.64, -0.73, -0.73},
	{-0.09, -0.09, -0.14, -0.14, -0.18, -0.23, -0.28, -0.32, -0.41, -0.46, -0.59, -0.64, -0.87, -0.91, -1.00, -1.00},
}

DTCoef は、DTパラメータ および BLOCKとFNUM上位1ビットによって加わる周波数差分[Hz]のテーブルです。

View Source
var FeedbackTable = [8]float64{0, 1.0 / 32.0, 1.0 / 16.0, 1.0 / 8.0, 1.0 / 4.0, 1.0 / 2.0, 1.0, 2.0}

FeedbackTable は、FBパラメータによってフィードバックされる信号の振幅にかかる係数のテーブルです。

View Source
var KSLTable = [4][8][32]float64{}

KSLTable は、KSLパラメータによる振幅の減衰量のテーブルです。 添字は順に KSL, BLOCK, FNUM上位5bit です。

View Source
var LFOFrequency = [4]Frac64{}

LFOFrequency は、LFOパラメータによって決まるビブラートやトレモロの周波数のテーブルです。 単位は、2の64乗を1周とする1サンプルあたりの増分です。

View Source
var ModulatorMatrix = [8][4]bool{
	{true, false, false, false},
	{false, false, false, false},
	{false, false, false, false},
	{true, true, true, false},
	{true, true, true, false},
	{true, false, true, false},
	{false, true, true, false},
	{false, true, false, false},
}

ModulatorMatrix は、各 ALG でモジュレータとして使用されるオペレータを表すマトリクスです。

View Source
var MultTable2 = [16]uint64{1, 1 * 2, 2 * 2, 3 * 2, 4 * 2, 5 * 2, 6 * 2, 7 * 2, 8 * 2, 9 * 2, 10 * 2, 10 * 2, 12 * 2, 12 * 2, 15 * 2, 15 * 2}

MultTable2 は、MULTパラメータによって周波数にかかる係数のテーブルです。2で割って使用します。

View Source
var PanTable [128][2]float64

PanTable は、MIDIメッセージのパンによって左右それぞれの振幅にかかる係数のテーブルです。

View Source
var Pow32Of2 = float64(1 << 32)

Pow32Of2 は、2の32乗です。

View Source
var Pow63Of2 = float64(1 << 63)

Pow63Of2 は、2の63乗です。

View Source
var Pow64Of2 = Pow63Of2 * 2.0

Pow64Of2 は、2の64乗です。

View Source
var TremoloTable [4][ModTableLen]float64

TremoloTable は、トレモロ(DAM)によって振幅にかかる係数のテーブルです。

View Source
var VibratoTableInt32Frac32 [4][ModTableLen]Int32Frac32

VibratoTableInt32Frac32 は、ビブラート(DVB)によって周波数にかかる係数のテーブルです。 整数部32bit・小数部32bitで表されます。

View Source
var VolumeTable = [...]float64{
	1e30, 47.9, 42.6, 37.2, 33.1, 29.8, 27.0, 24.6,
	22.4, 20.6, 18.9, 17.3, 15.9, 14.6, 13.4, 12.2,
	11.1, 10.1, 9.2, 8.3, 7.4, 6.6, 5.8, 5.1,
	4.4, 3.6, 3.0, 2.3, 1.7, 1.1, 0.6, 0.0,
}

VolumeTable は、MIDIメッセージのボリュームやエクスプレッションによって振幅にかかる係数のテーブルです。

View Source
var Waveforms [32][]float64

Waveforms は、波形テーブルです。

Functions

This section is empty.

Types

type Frac64

type Frac64 uint64

Frac64 は、0 以上 1 未満の固定小数点数を符号なし64ビット整数で表現する型です。

func FloatToFrac64

func FloatToFrac64(v float64) Frac64

FloatToFrac64 は、float64 から Frac64 に値を変換します。

func (Frac64) MulInt32Frac32

func (v Frac64) MulInt32Frac32(rhs Int32Frac32) Frac64

MulInt32Frac32 は、Frac64 に Int32Frac32 型の値を掛けた値を返します。

func (Frac64) MulUint64

func (v Frac64) MulUint64(rhs uint64) Frac64

MulUint64 は、Frac64 に uint64 型の値を掛けた値を返します。

type Int32Frac32

type Int32Frac32 uint64

Int32Frac32 は、0 以上 2^32 未満の固定小数点数を符号なし64ビット整数で表現する型です。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL