Table of Contents

Interface IMetaModuleModuleHandle

Namespace
SunSharp.Modules
Assembly
SunSharp.dll

MetaModule is a full-featured copy of SunVox in a single module. So you can include one SunVox-project into another recursively.

public interface IMetaModuleModuleHandle : ITypedModuleHandle, IGenericSynthModuleHandle
Inherited Members

Methods

GetBeatsPerMinute(ValueScalingMode)

Original name: 3 'BPM (Beats Per Minute)'

int GetBeatsPerMinute(ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

valueScalingMode ValueScalingMode

Returns

int

GetInputModule(ValueScalingMode)

Original name: 1 'Input module'

int GetInputModule(ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

valueScalingMode ValueScalingMode

Returns

int

GetPlayPatterns()

Original name: 2 'Play patterns'

MetaModulePatternMode GetPlayPatterns()

Returns

MetaModulePatternMode

GetTicksPerLine(ValueScalingMode)

Original name: 4 'TPL (Ticks Per Line)'

int GetTicksPerLine(ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

valueScalingMode ValueScalingMode

Returns

int

GetUserControllerCount()

Get the count of a user-defined controllers. User-defined controllers start at index 5.

Get the number of controllers in the module.

int GetUserControllerCount()

Returns

int

Number of controllers.

Remarks

Exceptions

SunVoxException

Thrown when the operation fails.

GetUserControllerMaxValue(int, ValueScalingMode)

Get the maximum value of a user-defined controller. User-defined controllers start at index 5.

Get the controller maximum value.

void GetUserControllerMaxValue(int index, ValueScalingMode scalingMode)

Parameters

index int
scalingMode ValueScalingMode

Value scaling mode.

Remarks

GetUserControllerMinValue(int, ValueScalingMode)

Get the minimum value of a user-defined controller. User-defined controllers start at index 5.

Get the controller minimum value.

void GetUserControllerMinValue(int index, ValueScalingMode scalingMode)

Parameters

index int
scalingMode ValueScalingMode

Value scaling mode.

Remarks

GetUserControllerName(int)

Get the name of a user-defined controller. User-defined controllers start at index 5.

Get the controller name.

string? GetUserControllerName(int index)

Parameters

index int

Returns

string

Controller name, or null if unavailable.

Remarks

GetUserControllerOffset(int)

Get the offset value of a user-defined controller. User-defined controllers start at index 5.

Get the controller display value offset.

void GetUserControllerOffset(int index)

Parameters

index int

Remarks

GetUserControllerType(int)

Get the type of a user-defined controller. User-defined controllers start at index 5.

Get the controller type.

ControllerType GetUserControllerType(int index)

Parameters

index int

Returns

ControllerType

Controller type.

Remarks

Exceptions

SunVoxException

Thrown when the operation fails.

GetUserControllerValue(int, ValueScalingMode)

Get the value of a user-defined controller. User-defined controllers start at index 5.

Get the controller value.

void GetUserControllerValue(int index, ValueScalingMode scalingMode)

Parameters

index int
scalingMode ValueScalingMode

Value scaling mode.

Remarks

GetVolume(ValueScalingMode)

Value range: displayed: 0 to 1024, real: 0 to 1024 Original name: 0 'Volume'

int GetVolume(ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

valueScalingMode ValueScalingMode

Returns

int

LoadFile(byte[])

Load a file into a MetaModule from memory. Supported file formats: sunvox, mod, xm, midi.

void LoadFile(byte[] data)

Parameters

data byte[]

Byte array with project data.

Remarks

Exceptions

SunVoxException

Thrown when the operation fails.

ArgumentNullException

Thrown if data is null.

LoadFile(string)

Load a file into a MetaModule. Supported file formats: sunvox, mod, xm, midi.

void LoadFile(string path)

Parameters

path string

File path (relative or absolute).

Remarks

Exceptions

SunVoxException

Thrown when the operation fails.

ArgumentNullException

Thrown if path is null.

MakeBeatsPerMinuteEvent(int)

This is a helper method to automatically handle turning target controller values into column values.

For this controller the input value is taken as is, only clamped to column value range.

PatternEvent MakeBeatsPerMinuteEvent(int value)

Parameters

value int

Returns

PatternEvent

MakeInputModuleEvent(int)

This is a helper method to automatically handle turning target controller values into column values.

For this controller the input value is taken as is, only clamped to column value range.

PatternEvent MakeInputModuleEvent(int value)

Parameters

value int

Returns

PatternEvent

MakePlayPatternsEvent(MetaModulePatternMode)

This is a helper method to automatically handle turning target controller values into column values.

For this controller the input value is taken as is, only clamped to column value range.

PatternEvent MakePlayPatternsEvent(MetaModulePatternMode value)

Parameters

value MetaModulePatternMode

Returns

PatternEvent

MakeTicksPerLineEvent(int)

This is a helper method to automatically handle turning target controller values into column values.

For this controller the input value is taken as is, only clamped to column value range.

PatternEvent MakeTicksPerLineEvent(int value)

Parameters

value int

Returns

PatternEvent

MakeUserControllerEvent(int, int, int, int, int)

Make a pattern event that sets a user-defined controller value. User-defined controllers start at index 5.

This overload allows for using display-values, as long as offset, min and max values of the controller are known..

PatternEvent MakeUserControllerEvent(int index, int value, int offset, int minValue, int maxValue)

Parameters

index int
value int
offset int
minValue int
maxValue int

Returns

PatternEvent

MakeUserControllerEvent(int, ushort)

Make a pattern event that sets a user-defined controller value. User-defined controllers start at index 5.

This overload allows for raw column values to be used. Values are clamped to the 0x0 to 0x8000 range.

PatternEvent MakeUserControllerEvent(int index, ushort value)

Parameters

index int
value ushort

Returns

PatternEvent

MakeUserControllerEvent<T>(int, T)

Make a pattern event that sets a user-defined controller value. User-defined controllers start at index 5.

This overload allows for any enum value to be used.

PatternEvent MakeUserControllerEvent<T>(int index, T value) where T : Enum, IConvertible

Parameters

index int
value T

Returns

PatternEvent

Type Parameters

T

MakeVolumeEvent(int)

This is a helper method to automatically handle turning target controller values into column values.

For this controller the input value is mapped from displayed range (0 to 1024) to column range (0 to 0x8000). Out of range values are clamped.

PatternEvent MakeVolumeEvent(int value)

Parameters

value int

Returns

PatternEvent

SetBeatsPerMinute(int, ValueScalingMode)

Original name: 3 'BPM (Beats Per Minute)' Note: equivalent SendEvent(int, PatternEvent) will be used internally, which may introduce latency. It will also be affected by the event timestamp set.

void SetBeatsPerMinute(int value, ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

value int
valueScalingMode ValueScalingMode

SetInputModule(int, ValueScalingMode)

Original name: 1 'Input module' Note: equivalent SendEvent(int, PatternEvent) will be used internally, which may introduce latency. It will also be affected by the event timestamp set.

void SetInputModule(int value, ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

value int
valueScalingMode ValueScalingMode

SetPlayPatterns(MetaModulePatternMode)

Original name: 2 'Play patterns' Note: equivalent SendEvent(int, PatternEvent) will be used internally, which may introduce latency. It will also be affected by the event timestamp set.

void SetPlayPatterns(MetaModulePatternMode value)

Parameters

value MetaModulePatternMode

SetTicksPerLine(int, ValueScalingMode)

Original name: 4 'TPL (Ticks Per Line)' Note: equivalent SendEvent(int, PatternEvent) will be used internally, which may introduce latency. It will also be affected by the event timestamp set.

void SetTicksPerLine(int value, ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

value int
valueScalingMode ValueScalingMode

SetUserControllerValue(int, int, ValueScalingMode)

Set the value of a user-defined controller. User-defined controllers start at index 5.

Set a controller value. Note: SendEvent(int, int, PatternEvent) will be used internally, which may introduce latency.

void SetUserControllerValue(int index, int value, ValueScalingMode scalingMode)

Parameters

index int
value int

Controller value.

scalingMode ValueScalingMode

Value scaling mode.

Remarks

Exceptions

SunVoxException

Thrown when the operation fails.

SetVolume(int, ValueScalingMode)

Value range: displayed: 0 to 1024, real: 0 to 1024 Original name: 0 'Volume' Note: equivalent SendEvent(int, PatternEvent) will be used internally, which may introduce latency. It will also be affected by the event timestamp set.

void SetVolume(int value, ValueScalingMode valueScalingMode = ValueScalingMode.Displayed)

Parameters

value int
valueScalingMode ValueScalingMode