spessasynth_core documentation
    Preparing search index...

    Interface GSChorusProcessor

    Chorus broadens the spatial image of the sound, adding depth and richness.

    This is a Roland GS-compatible chorus interface.

    It is used when GlobalMIDIParameter.system is gm gm2 or gs.

    SpessaSynthProcessor allows you to supply a custom chorus processor. A custom chorus processor must implement this interface.

    Editing the parameters can be done via GS/GM2 system exclusive messages.

    interface GSChorusProcessor {
        delay: number;
        depth: number;
        feedback: number;
        level: number;
        preLowpass: number;
        rate: number;
        sendLevelToDelay: number;
        sendLevelToReverb: number;
        applySnapshot(snapshot: GSChorusParameter): void;
        getSnapshot(): GSChorusParameter;
        process(
            input: Float32Array,
            outputLeft: Float32Array,
            outputRight: Float32Array,
            outputReverb: Float32Array,
            outputDelay: Float32Array,
            startIndex: number,
            sampleCount: number,
        ): void;
    }

    Hierarchy (View Summary)

    Implemented by

    Index
    delay: number

    0-127

    This parameter sets the delay time of the chorus effect.

    depth: number

    0-127

    This parameter sets the depth at which the chorus sound is modulated. Higher values result in deeper modulation.

    feedback: number

    0-127

    This parameter sets the level at which the chorus sound is re-input (fed back) into the chorus. By using feedback, a denser chorus sound can be created. Higher values result in a greater feedback level.

    level: number

    0-127 This parameter sets the amount of the effect sent to the effect output.

    preLowpass: number

    0-7 A low-pass filter can be applied to the sound coming into the effect to cut the high frequency range. Higher values will cut more of the high frequencies, resulting in a more mellow effect sound.

    rate: number

    0-127

    This parameter sets the speed (frequency) at which the chorus sound is modulated. Higher values result in faster modulation.

    sendLevelToDelay: number

    0-127

    This parameter sets the amount of chorus sound that will be sent to the delay. Higher values result in more sound being sent.

    sendLevelToReverb: number

    0-127

    This parameter sets the amount of chorus sound that will be sent to the reverb. Higher values result in more sound being sent.

    • Process the effect and adds it to the output.

      Parameters

      • input: Float32Array

        The input buffer to process. It always starts at index 0.

      • outputLeft: Float32Array

        The left output buffer.

      • outputRight: Float32Array

        The right output buffer.

      • outputReverb: Float32Array

        The mono input for reverb. It always starts at index 0.

      • outputDelay: Float32Array

        The mono input for delay. It always starts at index 0.

      • startIndex: number

        The index to start mixing at into the output buffers.

      • sampleCount: number

        The amount of samples to mix. This will never be larger than SynthProcessorOptions.maxBufferSize of the parent SpessaSynthProcessor instance.

      Returns void