voice

package
Version: v0.0.0-...-545503d Latest Latest
Warning

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

Go to latest
Published: May 29, 2018 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type VM35FMOperator

type VM35FMOperator struct {
	Num     int                `json:"-"` // Operator number
	Version VM35FMVoiceVersion `json:"-"`
	MULTI   enums.Multiplier   `json:"multi"` // Multiplier
	DT      int                `json:"dt"`    // Detune
	AR      int                `json:"ar"`    // Attack Rate
	DR      int                `json:"dr"`    // Decay Rate
	SR      int                `json:"sr"`    // Sustain Rate
	RR      int                `json:"rr"`    // Release Rate
	SL      int                `json:"sl"`    // Sustain Level
	TL      int                `json:"tl"`    // Total Level
	KSL     int                `json:"ksl"`   // Key Scaling Level
	DAM     int                `json:"dam"`   // Depth of AM
	DVB     int                `json:"dvb"`   // Depth of Vibrato
	FB      int                `json:"fb"`    // Feedback
	WS      int                `json:"ws"`    // Wave Shape
	XOF     bool               `json:"xof"`   // Ignore KeyOff
	SUS     bool               `json:"sus"`   // Keep sustain rate after KeyOff (unused in YMF825)
	KSR     bool               `json:"ksr"`   // Key Scaling Rate
	EAM     bool               `json:"eam"`   // Enable AM
	EVB     bool               `json:"evb"`   // Enable Vibrato
}

func (*VM35FMOperator) Bytes

func (op *VM35FMOperator) Bytes(forYMF825 bool) []byte

func (*VM35FMOperator) Read

func (op *VM35FMOperator) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VM35FMOperator) String

func (op *VM35FMOperator) String() string

func (*VM35FMOperator) ToPB

func (op *VM35FMOperator) ToPB() *pb.VM35FMOperator

ToPB は、この構造体の内容を Protocol Buffer 形式で出力可能な型に変換します。

type VM35FMVoice

type VM35FMVoice struct {
	Version   VM35FMVoiceVersion `json:"-"`
	DrumKey   enums.Note         `json:"drum_key"`
	PANPOT    enums.Panpot       `json:"panpot"` // Panpot (unused in YMF825)
	BO        enums.BasicOctave  `json:"bo"`
	LFO       int                `json:"lfo"`
	PE        bool               `json:"pe"` // Panpot Enable (unused in YMF825)
	ALG       enums.Algorithm    `json:"alg"`
	Operators [4]*VM35FMOperator `json:"operators"`
}

VM35FMVoice は、MA-3/MA-5用音色データで、1つのプログラムチェンジに含まれるFM音色部に相当します。

func NewDemoVM35FMVoice

func NewDemoVM35FMVoice() *VM35FMVoice

NewDemoVM35FMVoice は、デモ音色として初期化された新しい VM35FMVoice を作成します。

func NewVM35FMVoice

func NewVM35FMVoice(data []byte, version VM35FMVoiceVersion) (*VM35FMVoice, error)

NewVM35FMVoice は、指定したバイト列をパースして新しい VM35FMVoice を作成します。

func (*VM35FMVoice) Bytes

func (v *VM35FMVoice) Bytes(staticLen bool, forYMF825 bool) []byte

func (VM35FMVoice) MarshalJSON

func (v VM35FMVoice) MarshalJSON() ([]byte, error)

func (*VM35FMVoice) Read

func (v *VM35FMVoice) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VM35FMVoice) ReadUnusedRest

func (v *VM35FMVoice) ReadUnusedRest(rdr io.Reader, rest *int) error

ReadUnusedRest は、実際には使用しないバイト列をストリームの残りから読み取り、ヘッダの位置を合わせます。

func (*VM35FMVoice) String

func (v *VM35FMVoice) String() string

func (*VM35FMVoice) ToPB

func (v *VM35FMVoice) ToPB() *pb.VM35FMVoice

ToPB は、この構造体の内容を Protocol Buffer 形式で出力可能な型に変換します。

type VM35FMVoiceVersion

type VM35FMVoiceVersion int
const (
	VM35FMVoiceVersion_VM3Lib VM35FMVoiceVersion = iota
	VM35FMVoiceVersion_VM3Exclusive
	VM35FMVoiceVersion_VM5
)

type VM35PCMVoice

type VM35PCMVoice struct {
	RawData [19]byte `json:"raw_data"`
}

VM35PCMVoice は、MA-3/MA-5用音色データで、1つのプログラムチェンジに含まれるPCM音色部に相当します。

func (*VM35PCMVoice) Read

func (v *VM35PCMVoice) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VM35PCMVoice) ReadUnusedRest

func (v *VM35PCMVoice) ReadUnusedRest(rdr io.Reader, rest *int) error

ReadUnusedRest は、実際には使用しないバイト列をストリームの残りから読み取り、ヘッダの位置を合わせます。

func (*VM35PCMVoice) String

func (v *VM35PCMVoice) String() string

func (*VM35PCMVoice) ToPB

func (v *VM35PCMVoice) ToPB() *pb.VM35PCMVoice

ToPB は、この構造体の内容を Protocol Buffer 形式で出力可能な型に変換します。

type VM35Voice

type VM35Voice interface {
	fmt.Stringer
	Read(rdr io.Reader, rest *int) error
	ReadUnusedRest(rdr io.Reader, rest *int) error
}

VM35Voice は、MA-3/MA-5用音色データで、1つのプログラムチェンジに含まれる音色部を抽象化したインタフェースです。

type VM35VoicePC

type VM35VoicePC struct {
	Version   VM35FMVoiceVersion `json:"is_vm5"`
	Name      string             `json:"name"`
	Flag      int                `json:"-"` // = 0x24
	BankMSB   int                `json:"bank_msb"`
	BankLSB   int                `json:"bank_lsb"`
	PC        int                `json:"pc"`
	DrumNote  enums.Note         `json:"drum_note"`
	Enigma1   int                `json:"-"`
	VoiceType enums.VoiceType    `json:"voice_type"`
	Voice     VM35Voice          `json:"voice"`
}

VM35VoicePC は、MA-3/MA-5用音色データで、1つのプログラムチェンジに相当します。

func (*VM35VoicePC) IsForDrum

func (p *VM35VoicePC) IsForDrum() bool

func (*VM35VoicePC) Read

func (p *VM35VoicePC) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VM35VoicePC) String

func (p *VM35VoicePC) String() string

func (*VM35VoicePC) ToPB

func (p *VM35VoicePC) ToPB() *pb.VM35VoicePC

ToPB は、この構造体の内容を Protocol Buffer 形式で出力可能な型に変換します。

type VM3VoiceLib

type VM3VoiceLib struct {
	Programs []*VM35VoicePC `json:"programs"`
}

VM3VoiceLib は、MA-3用音色ライブラリです。

func NewVM3VoiceLib

func NewVM3VoiceLib(file string) (*VM3VoiceLib, error)

NewVM3VoiceLib は、指定したファイル内容をパースして新しい VM3VoiceLib を作成します。

func (*VM3VoiceLib) Read

func (lib *VM3VoiceLib) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VM3VoiceLib) String

func (lib *VM3VoiceLib) String() string

type VM5VoiceLib

type VM5VoiceLib struct {
	Programs []*VM35VoicePC `json:"programs"`
}

VM5VoiceLib は、MA-5用音色ライブラリです。

func NewVM5VoiceLib

func NewVM5VoiceLib(file string) (*VM5VoiceLib, error)

NewVM5VoiceLib は、指定したファイル内容をパースして新しい VM5VoiceLib を作成します。

func (*VM5VoiceLib) Read

func (lib *VM5VoiceLib) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VM5VoiceLib) String

func (lib *VM5VoiceLib) String() string

func (*VM5VoiceLib) ToPB

func (lib *VM5VoiceLib) ToPB() *pb.VM5VoiceLib

ToPB は、この構造体の内容を Protocol Buffer 形式で出力可能な型に変換します。

type VMAFMOperator

type VMAFMOperator struct {
	Num  int              `json:"-"`    // Operator number
	MULT enums.Multiplier `json:"mult"` // Multiplier
	KSL  int              `json:"ksl"`  // Key Scaling Level
	TL   int              `json:"tl"`   // Total Level
	AR   int              `json:"ar"`   // Attack Rate
	DR   int              `json:"dr"`   // Decay Rate
	SL   int              `json:"sl"`   // Sustain Level
	RR   int              `json:"rr"`   // Release Rate
	WS   int              `json:"ws"`   // Wave Shape
	DVB  int              `json:"dvb"`  // Depth of Vibrato
	DAM  int              `json:"dam"`  // Depth of AM
	VIB  bool             `json:"vib"`  // Vibrato
	EGT  bool             `json:"egt"`  //
	SUS  bool             `json:"sus"`  // Keep sustain rate after KeyOff (unused in YMF825)
	KSR  bool             `json:"ksr"`  // Key Scaling Rate
	AM   bool             `json:"am"`   // AM
}

VMAFMOperator は、MA-2用音色データに含まれるオペレータ部分です。

func (*VMAFMOperator) Bytes

func (op *VMAFMOperator) Bytes() []byte

func (*VMAFMOperator) Read

func (op *VMAFMOperator) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VMAFMOperator) String

func (op *VMAFMOperator) String() string

func (*VMAFMOperator) ToVM35

func (op *VMAFMOperator) ToVM35(fb int) *VM35FMOperator

ToVM35 は、この構造体の内容をMA-3/MA-5用の音色データに変換します。

type VMAFMVoice

type VMAFMVoice struct {
	LFO       int               `json:"lfo"`
	FB        int               `json:"fb"`
	ALG       enums.Algorithm   `json:"alg"`
	Operators [4]*VMAFMOperator `json:"operators"`
}

VMAFMVoice は、MA-2用音色データで、1つのプログラムチェンジに含まれる音色部に相当します。

func NewVMAFMVoice

func NewVMAFMVoice(data []byte) (*VMAFMVoice, error)

NewVMAFMVoice は、指定したバイト列をパースして新しい VMAFMVoice を作成します。

func (*VMAFMVoice) Bytes

func (v *VMAFMVoice) Bytes(staticLen bool) []byte

func (VMAFMVoice) MarshalJSON

func (v VMAFMVoice) MarshalJSON() ([]byte, error)

func (*VMAFMVoice) Read

func (v *VMAFMVoice) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VMAFMVoice) ReadUnusedRest

func (v *VMAFMVoice) ReadUnusedRest(rdr io.Reader, rest *int) error

ReadUnusedRest は、実際には使用しないバイト列をストリームの残りから読み取り、ヘッダの位置を合わせます。

func (*VMAFMVoice) String

func (v *VMAFMVoice) String() string

func (*VMAFMVoice) ToVM35

func (v *VMAFMVoice) ToVM35() *VM35FMVoice

ToVM35 は、この構造体の内容をMA-3/MA-5用の音色データに変換します。

type VMAVoiceLib

type VMAVoiceLib struct {
	Programs []*VMAVoicePC `json:"programs"`
}

VMAVoiceLib は、MA-2用音色ライブラリです。

func NewVMAVoiceLib

func NewVMAVoiceLib(file string) (*VMAVoiceLib, error)

NewVMAVoiceLib は、指定したファイル内容をパースして新しい VMAVoiceLib を作成します。

func (*VMAVoiceLib) Read

func (lib *VMAVoiceLib) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VMAVoiceLib) String

func (lib *VMAVoiceLib) String() string

type VMAVoicePC

type VMAVoicePC struct {
	Name  string      `json:"name"`
	Bank  int         `json:"bank"`
	PC    int         `json:"pc"`
	Voice *VMAFMVoice `json:"voice"`
}

VMAVoicePC は、MA-2用音色データで、1つのプログラムチェンジに相当します。

func (*VMAVoicePC) Read

func (p *VMAVoicePC) Read(rdr io.Reader, rest *int) error

Read は、バイト列を読み取ってパースした結果をこの構造体に格納します。

func (*VMAVoicePC) String

func (p *VMAVoicePC) String() string

func (*VMAVoicePC) ToVM35

func (p *VMAVoicePC) ToVM35() *VM35VoicePC

ToVM35 は、この構造体の内容をMA-3/MA-5用の音色データに変換します。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL