Home AMX User Forum AMX General Discussion

Enova DVX2100HD Volume

Novice question here,

I am trying to program an Enova DVX2100HD using the audio "amp" output. In the manual there is a section that explains how you could send specific volume levels to this output, but obviously I'd like to be able to send it variable output levels based on how loud I want it. I have created two buttons on my TP, up and down. For each button, what should my code look like?


Thank you,
Matt

Comments

  • From the manual:
    AUDOUT_VOLUME
    Sets the volume on the
    specified audio output.
    Sets the volume on the audio output addressed by the D:P:S to <value>.
    Syntax:
    SEND_COMMAND <DEV>, "'AUDOUT_VOLUME-<VALUE>'"
    Variable:
    value = 0..100
    Example:
    SEND_COMMAND AUDOUT_VOLUME_1, "'AUDOUT_VOLUME-50'"
    Sets the volume of audio output port #1 to 50.
    Note: Volume attenuation on the DVX-2150, 2155, 3150 & 3155 is not set by
    percentage, like it was on earlier DVX models: On the 215x and 315x, the
    output volume slider changes .5dB per click, to provide a more subtle
    adjustment.
    Unity gain is at 88, so a setting of 100 is actually 6dB gain. A setting of 20 would
    be -34 reduction (88-20=68 clicks. @ .5dB per click =34 dB). This is only the
    output slider.
    See Appendix C - Volume Attenuation Table on page 123.
  • John NagyJohn Nagy Posts: 1,742
    Note that there is a lot of value in the "complication" of direct set volume levels. Your programming needs to keep track of where the volume is, and when you get an up or down button, send the next appropriate level.

    This lets you:
    * know the level at all times without having to ask the unit.
    * chose the increment/decrement amount per "step" so you can regulate the speed and granularity of the volume contour.
    * re-contour the volume curve to correct or create non-linearity so you get a wider range of adjustment that matches the audio perception.
    * start a source at a known volume level.
    * do volume ramps on turn-on for smooth startup.
    * build timed events that can regulate the volume over a period of time.
    * create volume limits.
    * choose how far to allow the volume to move per hold on the button, to manage volume runaway.

    While many audio devices offer both "up/down" and discrete volume settings, the benefits of discrete operation are many, and worth the work to include.
  • Yes John you are correct that is what I have these structures for:

    Struct TVolume
    {
    Integer Type;

    Integer Muted;
    Integer RampLevel;
    TAFLLevel AFLLevel;

    TCommand CmdUp;
    TCommand CmdDown;

    TCommand CmdUpRelease;
    TCommand CmdDownRelease;

    TCommand CmdMute;
    TCommand CmdUnMute;

    TCommand QryVolume;
    TCommand QryMute;
    }
    Struct TAFLLevel
    {
    Float Current;
    Float Pending;

    Integer ScalingRequired;
    Float MinDevice;
    Float MaxDevice;
    SInteger MinPanel;
    SInteger MaxPanel;

    Integer ModuleScaling;
    SInteger MinModule;
    SInteger MaxModule;

    Float Step;
    Float StepRepeat;
    }
    Struct TAudio
    {
    Dev Device;
    Dev vDevice;

    Integer Zone;
    Integer Type;
    Integer SubType;

    Integer Gated;
    //think about removing these 2
    Integer ControlType;
    Integer SourceIndex;

    Char Name[LEN_NAME];
    Char DeviceType[LEN_NAME];
    Char DeviceID[LEN_NAME];

    Char Caption[LEN_CAPTION];
    TVolume Volume;
    TCommand CurrentCommand;
    }
  • From the manual:
    AUDOUT_VOLUME
    Sets the volume on the
    specified audio output.
    Sets the volume on the audio output addressed by the D:P:S to <value>.
    Syntax:
    SEND_COMMAND <DEV>, "'AUDOUT_VOLUME-<VALUE>'"
    Variable:
    value = 0..100
    Example:
    SEND_COMMAND AUDOUT_VOLUME_1, "'AUDOUT_VOLUME-50'"
    Sets the volume of audio output port #1 to 50.
    Note: Volume attenuation on the DVX-2150, 2155, 3150 & 3155 is not set by
    percentage, like it was on earlier DVX models: On the 215x and 315x, the
    output volume slider changes .5dB per click, to provide a more subtle
    adjustment.
    Unity gain is at 88, so a setting of 100 is actually 6dB gain. A setting of 20 would
    be -34 reduction (88-20=68 clicks. @ .5dB per click =34 dB). This is only the
    output slider.
    See Appendix C - Volume Attenuation Table on page 123.

    So my only option is to have a static value? How do I attenuate? I don't see a page 123 on my 2100 manual
Sign In or Register to comment.