spessasynth_core documentation
    Preparing search index...

    Interface GSDelayProcessor

    Delay creates echoes. It is also possible to give depth and width to a sound by adding a short delay to the original sound.

    This is a Roland GS-compatible delay interface.

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

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

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

    interface GSDelayProcessor {
        feedback: number;
        level: number;
        levelCenter: number;
        levelLeft: number;
        levelRight: number;
        preLowpass: number;
        sendLevelToReverb: number;
        timeCenter: number;
        timeRatioLeft: number;
        timeRatioRight: number;
        applySnapshot(snapshot: GSDelayParameter): void;
        getSnapshot(): GSDelayParameter;
        process(
            input: Float32Array,
            outputLeft: Float32Array,
            outputRight: Float32Array,
            outputReverb: Float32Array,
            startIndex: number,
            sampleCount: number,
        ): void;
    }

    Hierarchy (View Summary)

    Implemented by

    Index
    feedback: number

    0-127 (-64)-63 This parameter affects the number of times the delay will repeat. With a value of 0, the delay will not repeat. With higher values there will be more repeats. With negative (-) values, the center delay will be fed back with inverted phase. Negative values are effective with short delay times.

    level: number

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

    levelCenter: number

    0-127 This parameter sets the volume of the central delay. Higher values result in a louder center delay.

    levelLeft: number

    0-127 This parameter sets the volume of the left delay. Higher values result in a louder left delay.

    levelRight: number

    0-127 This parameter sets the volume of the right delay. Higher values result in a louder right delay.

    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.

    sendLevelToReverb: number

    0-127 This parameter sets the amount of delay sound that is sent to the reverb. Higher values result in more sound being sent.

    timeCenter: number

    0-115 0.1ms-340ms-1000ms The delay effect has three delay times; center, left and right (when listening in stereo). Delay Time Center sets the delay time of the delay located at the center. Refer to SC-8850 Owner's Manual p. 236 for the exact mapping of the values.

    timeRatioLeft: number

    0-120 4% - 500% This parameter sets the delay time of the delay located at the left as a percentage of the Delay Time Center (up to a max. of 1.0 s). The resolution is 100/24(%).

    timeRatioRight: number

    1-120 4%-500% This parameter sets the delay time of the delay located at the right as a percentage of the Delay Time Center (up to a max. of 1.0 s). The resolution is 100/24(%).

    • 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.

      • 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