voice

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2017 License: MIT Imports: 12 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

func (*VM35FMOperator) String

func (op *VM35FMOperator) String() string

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"`
}

func NewDemoVM35FMVoice added in v1.3.0

func NewDemoVM35FMVoice() *VM35FMVoice

func NewVM35FMVoice

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

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

func (*VM35FMVoice) ReadUnusedRest

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

func (*VM35FMVoice) String

func (v *VM35FMVoice) String() string

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"`
}

func (*VM35PCMVoice) Read

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

func (*VM35PCMVoice) ReadUnusedRest

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

func (*VM35PCMVoice) String

func (v *VM35PCMVoice) String() string

type VM35Voice

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

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"`
}

func (*VM35VoicePC) IsForDrum

func (p *VM35VoicePC) IsForDrum() bool

func (*VM35VoicePC) Read

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

func (*VM35VoicePC) String

func (p *VM35VoicePC) String() string

type VM3VoiceLib

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

func NewVM3VoiceLib

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

func (*VM3VoiceLib) Read

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

func (*VM3VoiceLib) String

func (lib *VM3VoiceLib) String() string

type VM5VoiceLib

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

func NewVM5VoiceLib

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

func (*VM5VoiceLib) Read

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

func (*VM5VoiceLib) String

func (lib *VM5VoiceLib) String() string

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
}

func (*VMAFMOperator) Bytes

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

func (*VMAFMOperator) Read

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

func (*VMAFMOperator) String

func (op *VMAFMOperator) String() string

func (*VMAFMOperator) ToVM35

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

type VMAFMVoice

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

func NewVMAFMVoice

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

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

func (*VMAFMVoice) ReadUnusedRest

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

func (*VMAFMVoice) String

func (v *VMAFMVoice) String() string

func (*VMAFMVoice) ToVM35

func (v *VMAFMVoice) ToVM35() *VM35FMVoice

type VMAVoiceLib

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

func NewVMAVoiceLib

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

func (*VMAVoiceLib) Read

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

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"`
}

func (*VMAVoicePC) Read

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

func (*VMAVoicePC) String

func (p *VMAVoicePC) String() string

func (*VMAVoicePC) ToVM35

func (p *VMAVoicePC) ToVM35() *VM35VoicePC

type VoiceLib

type VoiceLib interface {
	fmt.Stringer
}

Jump to

Keyboard shortcuts

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