News:

PsrStyles.com
- Download Styles and Expansion Packs

Main Menu

Genos MIDI CC #7 (volume) level calculation

Started by StuartR, December 19, 2021, 03:12:54 PM

Previous topic - Next topic

StuartR

Does anyone know how the maximum cc #7 (volume) values (curve) are calculated for each voice? I've noticed they vary all over the place, from 80 to 105 in the cases I've looked at via a MIDI scope. And the values are different for the same voice on an SX-900 (larger in the one case I looked at). This results in different volume levels when controlling an external module using the Genos and SX-900.


pjd

Quoting ye olde "GM Level 1 Developer Guidelines":


Volume, Expression & Master Volume Response

Volume (CC#7) and Expression (CC #11) should be implemented as follows:

For situations in which only CC# 7 is used (CC#11 is assumed "127"):

    L(dB) = 40 log (V/127) where V= CC#7 value

    For example:
        CC#7   amplitude
         127   0dB
         96    - 4.8dB
         64    -11.9dB
         32    -23.9dB
         16    -36.0dB
         0     -inf
    This follows the standard "A" and "K" potentiometer tapers.

For situations in which both controllers are used:

    L(dB) = 40 log (V/127^2) where V = (volume * expression)

    The following table denotes the interaction of volume and expression in
    determining amplitude:

    CC#7 CC#11 total amplitude     CC#7 CC#11 total amplitude
     127   127 0dB                  127    96 -4.8 dB
      96   127 -4.8dB               127    64 -11.9dB
      64   127 -11.9dB              127    32 -23.9dB
      32   127 -23.9dB              127     0 -inf
      16   127 -36.0dB               64    64 -23.9dB
       0   127 -inf                  32    96 -28.8dB


StuartR

Quote from: pjd on December 20, 2021, 02:19:04 PM
Quoting ye olde "GM Level 1 Developer Guidelines":


Volume, Expression & Master Volume Response

Volume (CC#7) and Expression (CC #11) should be implemented as follows:

For situations in which only CC# 7 is used (CC#11 is assumed "127"):

    L(dB) = 40 log (V/127) where V= CC#7 value

    For example:
        CC#7   amplitude
         127   0dB
         96    - 4.8dB
         64    -11.9dB
         32    -23.9dB
         16    -36.0dB
         0     -inf
    This follows the standard "A" and "K" potentiometer tapers.

For situations in which both controllers are used:

    L(dB) = 40 log (V/127^2) where V = (volume * expression)

    The following table denotes the interaction of volume and expression in
    determining amplitude:

    CC#7 CC#11 total amplitude     CC#7 CC#11 total amplitude
     127   127 0dB                  127    96 -4.8 dB
      96   127 -4.8dB               127    64 -11.9dB
      64   127 -11.9dB              127    32 -23.9dB
      32   127 -23.9dB              127     0 -inf
      16   127 -36.0dB               64    64 -23.9dB
       0   127 -inf                  32    96 -28.8dB


I replied to you in the other thread you commented in. None of my three Yamaha Arrangers will send out the maximum value for CC 7 (127). I've verified this using a MIDI monitor on my iPad.

overover

Hi Stuart,

The Live Control sliders for the volume of the keyboad parts Left/R1/R2/R3 (and the corresponding virtual volume sliders in the Mixer display) adjust the parameter "Volume ... (Offset)". This affects the "internal" volume of the Voice currently used in that Part.

As a test, please set the internal volume of the current Right1 Voice to 127 (in "Voice Edit > Common > Volume". Then the corresponding Live Control Slider should actually send the CC #7 values 0 - 127.


P.S.
It may also make a difference whether the Right1, Right2, Right3 and Left parts are used directly in the MIDI Setup > Transmit (such as in the MIDI template "All Parts"), or whether the special parts "Upper" and "Lower" are used (as in the MIDI template "KBD & STYLE"). The main difference is that in the first case the relevant keyboard parts must be switched on so that the MIDI data can be sent externally. When using "Upper" and "Lower", however, the MIDI data is ALWAYS sent on the two channels used, even if all keyboard parts are switched off.


Best regards,
Chris
● Everyone kept saying "That won't work!" - Then someone came along who didn't know that, and - just did it.
● Never put the Manual too far away: There's more in it than you think! ;-)

pjd

Hi Chris —

Has anyone described a way to use the sliders for external control? I did a few more experiments and cannot get a slider to send more than 100 — almost as if Genos remembers a previous setting of 100 and refuses to go beyond that value. I tried setting the volume value in the mixer and the slider still refuses to send anything beyond 100.

For Stuart's scenario, one needs to send a unique CC for each of nine drawbars, all messages on a single MIDI channel. The B-3X can be set to map each CC to a drawbar. I'm not sure there is a way to find and assign nine Ccs this way and have them go out on a single MIDI channel.

I feel pretty discouraged by this. I don't think Yamaha envisioned an external control scenario, i.e., controlling an external module or VST.

Thanks for all of your help — pj

StuartR

Quote from: overover on December 20, 2021, 03:46:11 PM
Hi Stuart,

The Live Control sliders for the volume of the keyboad parts Left/R1/R2/R3 (and the corresponding virtual volume sliders in the Mixer display) adjust the parameter "Volume ... (Offset)". This affects the "internal" volume of the Voice currently used in that Part.

As a test, please set the internal volume of the current Right1 Voice to 127 (in "Voice Edit > Common > Volume". Then the corresponding Live Control Slider should actually send the CC #7 values 0 - 127.


P.S.
It may also make a difference whether the Right1, Right2, Right3 and Left parts are used directly in the MIDI Setup > Transmit (such as in the MIDI template "All Parts"), or whether the special parts "Upper" and "Lower" are used (as in the MIDI template "KBD & STYLE"). The main difference is that in the first case the relevant keyboard parts must be switched on so that the MIDI data can be sent externally. When using "Upper" and "Lower", however, the MIDI data is ALWAYS sent on the two channels used, even if all keyboard parts are switched off.


Best regards,
Chris

Thanks Chris. Your idea gives me hope and I'll try it tomorrow and report back. This issue is only part of the bigger problem of trying to integrate external voice modules seamlessly within Genos. On the one hand, I can appreciate that Yamaha thought they gave us enough internal voicings so external ones would prove unnecessary, provided a very flexible MIDI control infrastructure yet stopped short of allowing full integration by preventing its use in registrations. Frustrating.
In my particular case, it's clear that Yamaha doesn't provide the best Hammond organ/Leslie voices so that the use of external modules such as the B-3X are required.
I made the mistake of auditioning the B-3X iPad module with my band in place of various internal Genos organ voices and they then insisted I use only the B-3X from now on. So here I am!

StuartR

Quote from: overover on December 20, 2021, 03:46:11 PM
Hi Stuart,

The Live Control sliders for the volume of the keyboad parts Left/R1/R2/R3 (and the corresponding virtual volume sliders in the Mixer display) adjust the parameter "Volume ... (Offset)". This affects the "internal" volume of the Voice currently used in that Part.

As a test, please set the internal volume of the current Right1 Voice to 127 (in "Voice Edit > Common > Volume". Then the corresponding Live Control Slider should actually send the CC #7 values 0 - 127.


P.S.
It may also make a difference whether the Right1, Right2, Right3 and Left parts are used directly in the MIDI Setup > Transmit (such as in the MIDI template "All Parts"), or whether the special parts "Upper" and "Lower" are used (as in the MIDI template "KBD & STYLE"). The main difference is that in the first case the relevant keyboard parts must be switched on so that the MIDI data can be sent externally. When using "Upper" and "Lower", however, the MIDI data is ALWAYS sent on the two channels used, even if all keyboard parts are switched off.


Best regards,
Chris

Chris,

I tried your suggestion and it works fine. Of course there are other issues at play. When you select a voice into a Genos part (L, R1,2,3) in a registration, the voice seems to inherit the common voice parameter values left by a previous voice. If you change any of these then you have to save the modified voice. Perhaps setting the common volume setting in the user pack voices to 127 will override the previous common values left over in the registration itself, so one can use a user-created voice pack without any of this extra work.I had created a user voice pack that had empty waveforms and just generated program changes for patch selection of my external B-3X module. Without empty waveforms you have to set Local Off in the Genos for that part and that setting can't be changed in a registration. This is all very frustrating and shouldn't be necessary since the Genos has provided us what at first glance seems like a flexible MIDI subsystem but really falls well short.

StuartR

Quote from: StuartR on December 21, 2021, 10:46:49 AM
Chris,

I tried your suggestion and it works fine. Of course there are other issues at play. When you select a voice into a Genos part (L, R1,2,3) in a registration, the voice seems to inherit the common voice parameter values left by a previous voice. If you change any of these then you have to save the modified voice. Perhaps setting the common volume setting in the user pack voices to 127 will override the previous common values left over in the registration itself, so one can use a user-created voice pack without any of this extra work.I had created a user voice pack that had empty waveforms and just generated program changes for patch selection of my external B-3X module. Without empty waveforms you have to set Local Off in the Genos for that part and that setting can't be changed in a registration. This is all very frustrating and shouldn't be necessary since the Genos has provided us what at first glance seems like a flexible MIDI subsystem but really falls well short.

As an update, after setting the Common volume value from the default of 100 to 127 on each voice in my custom voice pack and installing it in my Genos I discovered that that value seems to be ignored and replaced with a default of 80 on all 127 of my custom voices. Only voice editing each of these ON the Genos and saving them internally and then using that edited voice in my registration works to be able to set the cc 7 volume to reach 0DB in my external voice module. What a PITA.