Author Topic: Questions about BASSMIDI NPRN and CC internal implementation  (Read 209 times)

spessasus

  • Posts: 14
Hi,

So I've noticed that BASSMIDI adds some additional controllers for CCs like 74 (brightness) 71 (reasonance) and vibrato controllers.

Note: This was tested with Falcosoft MIDI Player 6 if that matters.

My question is, how are these effects implemented?
In "MIDI implementation chart" it's only called "recognized" and in "BASS_MIDI_StreamEvent" it's not clear either.
For example "filter cutoff":
Quote
MIDI_EVENT_CUTOFF

Set the low-pass filter cutoff (MIDI controller 74, NRPN 120h)
param : cutoff level (0-127, 0=-64, 64=normal, 127=+63).

This begs a lot of questions:
  • In what units?
  • In Hz or absolute cents?
  • Is it relative or absolute to the SF2 generators?
  • If a patch in my SF2 file has a filter cutoff set to 2500Hz and I set the CC 74 to 0, what's the final cutoff?
  • Is it just an SF2 modulator (because it seems like a Bipolar Positive CC 71 to filterFc with some sort of transform amount)
And that question applies to other controllers (like vibrato controllers and NRPNs) too. How do they work?

Sorry for a ton of questions, but I'm really curious about this one : )

Ian @ un4seen

  • Administrator
  • Posts: 26172
The spec for those GM2 controllers is basically limited to describing their purpose, with the details left up to the implementer, so they can sound different in different hardware/software. The GM2 spec is available here:

   https://midi.org/general-midi-2

You'll see a lot of "Exact behavior is left to the manufacturer's discretion" in there :)

spessasus

  • Posts: 14
Hi Ian,

Thanks for answering,


Though I'm asking about how BASSMIDI implements them.
After all, you're the manufacturer/implementer of this synth :)

So, how did you implement them? For example I'm curious about cc71. It seems to trigger reasonance even when the filter is open (no filterfc generator in the patch)

Ian @ un4seen

  • Administrator
  • Posts: 26172
When CC71>64 (for higher resonance), BASSMIDI will limit the preset lowpass filter cutoff to 8000Hz unless the modulation envelope is affecting it. The same applies when CC74<64 (for lower cutoff). This possibly isn't typical behaviour but some "manufacturer's discretion" was used to allow filter control to have an audible effect regardless of a soundfont's preset values.