Sign in

v2.1 issues with default velocity-to-fc mod

  • SC 69 0
    Before I can get into the problems, I need to talk a bit about the quagmire that is the SoundFont format's default velocity-to-filter cutoff modulator (henceforth referred to as "vel->fc"). The first SoundFont version to support modulators was 2.01, which was used by the Sound Blaster Audigy and E-MU APS series sound cards. The default vel->fc modulator in this SoundFont version was defined as follows:

    Primary source: Note-On velocity, negative unipolar linear
    Secondary source: Note-On velocity, negative unipolar switch
    Destination: Initial Filter Cutoff
    Amount: -2400

    The idea was for velocity-based filtering to be disabled at velocities below 64. This is not how it worked in the implementation, though, instead causing a huge filter jump between velocities 63 and 64, an effect that probably zero people on the planet actually want. Creative later realized their mistake and removed the modulator's secondary source in the SoundFont 2.04 spec. However, this caused another problem: you must cancel the modulator differently depending on whether you are using a 2.01 or 2.04 spec device. The result of this mess is that SoundFont synths don't share a common behavior regarding the default vel->fc modulator, leaving SoundFont designers in a difficult position. FluidSynth's developers thought this issue was big enough that they disabled the default vel->fc modulator altogether.

    My way of dealing with this is to disable the default modulator in every instrument I create and then add a custom vel-to-fc modulator as needed. However, in attempting to do this in Polyphone, I ran across a few issues:

    Issue #1: Disabling SoundFont 2.04 vel->fc modulator in Polyphone has no audible effect

    If I cancel the default vel->fc modulator in Polyphone, playback is still filtered. I have created a SoundFont "filter mod canceling test 01.sf2" (in the attached zip) to demonstrate this. It contains two presets:

    000: veloToFC-default - No filter modulators are added or canceled.
    • Expected result: You should hear the default velocity-to-filter cutoff modulator reducing the filter cutoff at lower velocities (-2400 Hz at the lowest velocity).
    • Polyphone result: CORRECT
    001: veloToFC-sf2.04-dis - Default velocity-to-fc modulator canceled at the instrument level according to the SoundFont 2.04 spec.
    • Expected result: You should hear no velocity-based filtering.
    • Polyphone result: While Polyphone properly labels the canceling modulator as such ("disabling default mod"), the playback is still using the default -2400 Hz filter curve.

    Issue #2: Disabling SoundFont 2.01 vel->fc modulator in Polyphone is not recognized by my Audigy 2 or Vienna SoundFont Studio

    If I use the SoundFont 2.01 method to disable the default vel->fc modulator using Vienna SoundFont Studio (which interfaces with the Audigy 2 hardware synth), the filtering correctly disappears and Vienna recognizes that the default modulator has been removed. If I perform this task in Polyphone instead, then load the SoundFont into Vienna SoundFont Studio (or Audigy 2 hardware), the vel->fc default modulator does not show as disabled, and the filtering still occurs. Opening both SoundFonts in Polyphone shows that the modulators are configured identically, but only the one created in Vienna is recognized or actually disables the modulator. Canceling this modulator in the editors Viena (one 'n') and Swami also works correctly, so it would appear Polyphone is doing something uniquely wrong with how this information is written into the SF2 file.

    The following SoundFonts are also included in the attached zip file and are identical apart from which editor was used to disable the default vel-fc modulator:
    • 2.01 velo-to-fc mod removed in Polyphone.sf2
    • 2.01 velo-to-fc mod removed in Vienna.sf2
    Hopefully it should be easy to see what Polyphone is doing differently by comparing the RIFF chunk data between the two files.

    Issue #3: Consider adding a toggle in preferences for the editor's vel->fc modulator behavior

    I would like to suggest adding support for the following vel->fc modulator behaviors in Polyphone's playback, selectable in preferences:
    1. SoundFont 2.04 <--- default
    2. SoundFont 2.01
    3. Disabled (FluidSynth & others)
    The first two options would cause playback and modulator cancellation to follow the 2.04 and 2.01 spec respectively. If it is too complicated to build SoundFont 2.01 spec modulator behavior into the editor, than providing at least #3 as an option would be useful to help sound developers simulate the expected behavior of their target SoundFont synth engine(s), since many SoundFont synths do not implement the default vel->fc modulator at all. FYI, this "disabled" option should only affect the default modulator, not vel->fc modulators that have been added by the user.
    filtermodtests.zip
  • ZI 190 0
    Message from ziyametedemircan on 1
    I added a file that contains the differences between the two files (veloToFcRemoved...).
    Maybe it helps, Maybe it is useless
    diff.txt
  • 417 0
    Message from Davy on 1
    This has been solved here:
    https://github.com/davy7125/polyphone/issues/73 

    When we create a modulator in Polyphone the transform, that is either 0 "linear" or 2 "absolute value" was set to 1... The modulator was not recognized correctly after that.

    I add the option as suggested: soundfont 2.01 / 2.04 or none.
  • SC 69 0
    Thanks, Davy! How should I go about correcting the existing, bad modulators? Will a simple file save with the next version of Polyphone fix it, or do I need to do something manually?
  • 417 0
    Message from Davy on 1
    You can update Polyphone with the new version I uploaded. Just open the modulators with the bad transform and save it, it will be fixed.
  • SC 69 0
    The "polyphone_2.1-1_ubuntu18.04_amd64.deb" file is identical to the previous version (via MD5 sum). Is there a different location I should be downloading it from?

    Thanks again for all the work you have been putting into Polyphone. It is really a fantastic SoundFont editor, and is becoming my go-to for all of my SoundFont design work now that modulators play back in the editor.
  • 417 0
    Message from Davy on 1
    I updated all installers but this one yet ?
    I'll do it this weekend

    You're welcome, thank you for helping with your knowledge
  • Message from Davy on
    The installer for Ubuntu is updated

Sign in or register to take part in discussions.

Polyphone needs you!

Polyphone is free but there are costs associated with its website and development. A small donation will help a lot.

Donate
Learn the basics Try a tutorial
Scroll to
top