class Haematite::SynthesizerSettings

Overview

This class specifies the settings to use when creating a Synthesizer instance.

Defined in:

haematite/synthesizer-settings.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(*, sampleRate : Int32 = DEFAULT_SAMPLE_RATE, blockSize : Int32 = DEFAULT_BLOCK_SIZE) #

Creates a new set of SynthesizerSettings.


Instance Method Detail

def blockSize=(val : Int32) #

Sets the size of rendered audio blocks, in bytes, in the settings.


def chanFilterMode : FilterMode #

The type of lowpass filter to use on a channel.


def chanFilterMode=(chanFilterMode : FilterMode) #

The type of lowpass filter to use on a channel.


def chorusInterpolation : RemiAudio::Interpolate::Mode #

The interpolation mode to use for the chorus.


def chorusInterpolation=(chorusInterpolation : RemiAudio::Interpolate::Mode) #

The interpolation mode to use for the chorus.


def chorusSend : UInt8 #

Overrides the initial chorus level on all channels. Later MIDI events may still change the chorus. This does not affect the reverb settings for the instruments themselves.


def chorusSend=(chorusSend : UInt8) #

Overrides the initial chorus level on all channels. Later MIDI events may still change the chorus. This does not affect the reverb settings for the instruments themselves.


Creates a copy of this instance.


def enableChorus : Bool #

When true, the chorus effect will be mixed into the output audio.


def enableChorus=(enableChorus : Bool) #

When true, the chorus effect will be mixed into the output audio.


def enablePresetRemapping : Bool #

When enabled, presets that are not found are re-mapped to a preset with the same number in the default bank (0).

This is mainly intended for MIDI files that use non-standard bank numbers for General MIDI instruments. For example, the Roland JV-1010 uses bank 10371 for General MIDI patches.


def enablePresetRemapping=(enablePresetRemapping : Bool) #

When enabled, presets that are not found are re-mapped to a preset with the same number in the default bank (0).

This is mainly intended for MIDI files that use non-standard bank numbers for General MIDI instruments. For example, the Roland JV-1010 uses bank 10371 for General MIDI patches.


def enableReverb : Bool #

When true, the reverb effect will be mixed into the output audio.


def enableReverb=(enableReverb : Bool) #

When true, the reverb effect will be mixed into the output audio.


def enableSoftClipping : Bool #

When true, soft clipping will be applied to the output of the synthesizer.


def enableSoftClipping=(enableSoftClipping : Bool) #

When true, soft clipping will be applied to the output of the synthesizer.


def enableStereoEnhancer : Bool #

When true, the stereo enhancer effect will be applied to the output audio.


def enableStereoEnhancer=(enableStereoEnhancer : Bool) #

When true, the stereo enhancer effect will be applied to the output audio.


def instrumentChorus : Int16 | Nil #

Overrides the chorus level on all instruments/presets by setting the appropriate generator parameter.


def instrumentChorus=(val : Int16 | Nil) #

Overrides the chorus level on all instruments/presets by setting the appropriate generator parameter.


def instrumentReverb : Int16 | Nil #

Overrides the reverb level on all instruments/presets by setting the appropriate generator parameter.


def instrumentReverb=(val : Int16 | Nil) #

Overrides the reverb level on all instruments/presets by setting the appropriate generator parameter.


def mainVolume : Float64 #

The volume of the synthesizer.


def mainVolume=(val : Float64) #

def maximumPolyphony : Int32 #

The maximum number of concurrently playing voices.


def maximumPolyphony=(val : Int32) #

Sets the maximum number of concurrently playing voices in the settings.


def reverbMode : ReverbMode #

The type of reverb to use.


def reverbMode=(reverbMode : ReverbMode) #

The type of reverb to use.


def reverbSend : UInt8 #

Overrides the initial reverb level on all channels. Later MIDI events may still change the reverb. This does not affect the reverb settings for the instruments themselves.


def reverbSend=(reverbSend : UInt8) #

Overrides the initial reverb level on all channels. Later MIDI events may still change the reverb. This does not affect the reverb settings for the instruments themselves.


def sampleRate : Int32 #

The output sample rate.


def sampleRate=(val : Int32) #

Sets the output sample rate in the settings.


def stereoEnhancement : Float64 #

The amount of stereo enhancement to apply when the stereo enhancer effect is enabled.


def stereoEnhancement=(val : Float64) #

def voiceFilterMode : FilterMode #

The type of lowpass filter to use for voices.


def voiceFilterMode=(voiceFilterMode : FilterMode) #

The type of lowpass filter to use for voices.