Skip to content

Modulation Depth Range #1355

@spessasus

Description

@spessasus

Is your feature request related to a problem?

This RPN is not implemented in fluidsynth.
This document, section 3.4.4

Expected behavior

this MIDI file should have more and more modulation range depth with each note played.

Describe the solution you'd like

Since there's no Modulation Sensitivity (or anything similar) source in the sf2 modulator source enum, we have to give it special treatment.

My proposed solution is to use a modulation multiplier.

The sf2 spec assumes 50 cents depth by default, so when the RPN gets called, calculate a modulation multiplier by dividing the target depth range by 50. Then when running the DSP chain, simply multiply vibLfoToPitch or modLfoToPitch (or both) by that amount.

That way, if the soundfont creator wanted a more subtle vibrato effect on a given instrument (25 cents for example) and the MIDI composer would want to double the modulation depth (by setting it via RPN to 100 cents, which is the double of MIDI spec default), the final depth would be 50 cents, so double the initial depth, instead of suddenly jumping from 25 cents to 100.

Describe alternatives you've considered

Another solution could be finding all modulators that use mod wheel as source and vibLfoToPitch as destination and overriding the amount with the set range, but I think it could be quite destructive because of the problem mentioned above.

Additional context

My implementation of the solution 1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions