-
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
- 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
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:- SoundFont 2.04 <--- default
- SoundFont 2.01
- Disabled (FluidSynth & others)
filtermodtests.zip -
I added a file that contains the differences between the two files (veloToFcRemoved...).
Maybe it helps, Maybe it is uselessdiff.txt -
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. -
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?
-
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.
-
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. -
I updated all installers but this one yet ?
I'll do it this weekend
You're welcome, thank you for helping with your knowledge -
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
top