LoginLogin
Nintendo shutting down 3DS + Wii U online services, see our post

Another MML Question: Effects

Root / General / [.]

glennxsergeCreated:
I've been playing with the MML Effects and am struggling to understand the distinction between some of the parameters. For vibrato, tremolo, and autopan, there are four parameters that control the LFO: Depth, Range, Speed, and Delay. I understand the last 2 just fine. Speed is the frequency of the wave and delay is the amount of time between when a note starts and the effect is applied. However, Range and Depth have me confused. They sort of seem like they are the same thing (the amplitude of the wave). The following two lines sound very similar (but they are subtly different)
BGMPLAY "@MON@MA16,64,16,0C"
BGMPLAY "@MON@MA64,16,16,0C"
The only thing I did was swap the Depth and Range values. It's such a subtle difference that I'm not sure how they are different, and if one of them is very low, like 0 or 1, it seems to negate the presence of the other. Most LFO's only use 2 params: speed, and range. And that graphs nicely into an oscillating wave where: Speed is the frequency and Range is the amplitude. So, what exactly is the difference between Depth and Range, since they both affect the amplitude?

It's possible that you just aren't using exaggerated enough values to tell. I've also seen controls for Speed, Depth, Attack, Hold/Release.

It's possible that you just aren't using exaggerated enough values to tell. I've also seen controls for Speed, Depth, Attack, Hold/Release.
That's a good idea, I'll try bump them up and see if I can pinpoint the issue. LFO's with additional controls like Attack,Hold,Release,Delay, are kind of just a hybrid of a standard waveform plus the ADSR Envelope. The MML effects don't seem to include that, with the exception of Delay, so it leaves me perplexed that they chose such an ambiguous sounding name for the first two parameters. Oh well, more documentation woes, but I'll try what you suggested tonight.

Alright, I tried this, and it appears as though they are multiplicative. Range*Depth = amplitude. I tested it with a variety of checks. Consider the following if Range=value1 and Depth=value2: 1,127 127,1 64,2 4,32 These all sound identical which confirms they are multiplied together ( I know 127 != 128 but it's close enough ). This is why if I set one of them to 0, the whole effect is negated. My feeling that they were slightly different when reversed was just a placebo. Now, I'm really scratching my head trying to figure out why they even bothered having 2 parameters at all, maybe to give a larger overall granularity since 16129 (127*127) is much higher than 127. But they could of at least used a name that made that obvious or described it better in the docs. I also, for completeness, tested this with Vibrato, Tremolo, and Autopan effects with a variety of values and they all behave the same way.

Well, that's good to know.