Home AMX User Forum AMX General Discussion

Runaway Volume

What do you all do to avoid volume runaway when ramping volume especially with the R4s? If the user presses and holds a button and we don’t see the release we’re pretty much SOL. The offline event for a TP or R4 doesn’t seem to trigger fast enough. Or is it just me?

The only thing I can think of besides cancelling a volume ramp when the TP or R4 drops offline is to only ramp volume x number of steps (using TIMELINE.REPETITION) before cancelling and make the user press and hold the volume up button again. I’m not too crazy about that solution but I’m out of ideas.

Whenever possible I also have the installer set the max gain of the device distributing the audio to a value that doesn’t blow out any speakers.

Thoughts? Suggestions?

Thanks.

Comments

  • viningvining Posts: 4,368
    Joe Hebert wrote: »
    What do you all do to avoid volume runaway when ramping volume especially with the R4s? If the user presses and holds a button and we don’t see the release we’re pretty much SOL. The offline event for a TP or R4 doesn’t seem to trigger fast enough. Or is it just me?

    The only thing I can think of besides cancelling a volume ramp when the TP or R4 drops offline is to only ramp volume x number of steps (using TIMELINE.REPETITION) before cancelling and make the user press and hold the volume up button again. I’m not too crazy about that solution but I’m out of ideas.

    Whenever possible I also have the installer set the max gain of the device distributing the audio to a value that doesn’t blow out any speakers.

    Thoughts? Suggestions?

    Thanks.

    In the hold event handler I just use an if(button.holdtime > 5000) type of thing with a do_release(tp,btn) below. Else would handle the repeating hold command.
  • the8thstthe8thst Posts: 470
    vining wrote: »
    In the hold event handler I just use an if(button.holdtime > 5000) type of thing with a do_release(tp,btn) below. Else would handle the repeating hold command.

    That is the same solution that I have come up with as well.
  • a_riot42a_riot42 Posts: 1,624
    vining wrote: »
    In the hold event handler I just use an if(button.holdtime > 5000) type of thing with a do_release(tp,btn) below. Else would handle the repeating hold command.

    That will help but doesn't solve the problem since if the volume is already quite high and the user presses and holds the volume it will continue for 5 seconds still. Can you not do the release in the offline event? Or is the offline event being delayed and allowing ramping to occur until it occurs? There really should be no way for this to happen in the firmware. AMX should fix this so that all buttons get released when an R4 loses its connection or the connection stalls.
    Paul
  • ericmedleyericmedley Posts: 4,177
    I had such bad luck with this on the R4, I tend to set up a ramp speed over time routine depending upon the processor.

    At the low-end of the function scale I basically don't allow holds in general. These are gear that doesn't have much control over ramping or good old fashion IR control They just hit the up/down button until they get where they're going.

    For gear that has fast feedback and the ability to do more than one ramp speed, I do a first hit jumps slow and quick hits right after it ramp faster.

    So, hit hit hit hit hit means it's way too soft or loud and I'm in a hurry to adjust the volume.

    But hit (wait) hit hit (wait) hit is more a person just rying to tweak the level. So, I keep the ramping slow and precise.
  • viningvining Posts: 4,368
    a_riot42 wrote: »
    That will help but doesn't solve the problem since if the volume is already quite high and the user presses and holds the volume it will continue for 5 seconds still. Paul
    If the volume is already quite high they shouldn't be ramping it up , ey. :)

    Of course it doesn't have to be 5 seconds either. It depends on your repeat intervals and how much you choose to step each repeat. It's basically just a safety relief valve that is just as useful for those times when someone or something (dog, cat, rat) sits on the remote and doesn't realize the increasing noise is becuase they're pressing the vol btn on the TP or remote under their a$$ or paw. That's one benefit of IR over RF, our fat a$$es usually blocks the IR.

    You could do the release in the offline but as Joe mentioned in his OP that doesn't always seem to happen right away. Plus that won't help with the accidental "holds" when there is no release and there won't be an offline event. I use this method regardless of the UI being an R4 or not and IMHO there's no reason not too even if you want to add something in the offline. The more safety valves the better.
  • jjamesjjames Posts: 2,908
    ---see below---
  • John NagyJohn Nagy Posts: 1,742
    There are many reasons that could cause a HOLD's RELEASE to be missed or delayed in reaction. It's not just an offline that could cause it (though it probably is here). So there's no simple "fix" at the firmware level to automagically know the difference between an intentional long hold (totally legal and useful) and a missed release. So you need to make you code know what it is about and how to decide in your circumstance. These problems are not limited to R4. If your button has a page flip that dismisses the page that has the button, it can "lock on" because it was never available to be released. This can happen on DMS, G3, R4, and to a limited degree on G4 even now. We've also seen runaways due to timelines that haven't finished, delaying or obscuring the release that did get seen. So you really need a way to prevent the repeated volume increment, tied directly to the act of incrementing.

    We do similarly to what others suggested here. We have a maximum repeat that equates to about 12% volume when applied to any given AVR/MR/TV volume device (calculated against the increment for the device - some are too slow to increment in 1%) or five max repeats for non VOLUME items. Then we do a forced release. Waiting for the offline is too late.

    This is good for customers anyway, as a button can stick, or a book is set on a panel, or they carry it wrong, and 100% volume is not healthy for a business relationship either. We also put in room-by-room volume limits (with bypass exemptions for specific users by permissions if desired).
  • jjamesjjames Posts: 2,908
    John Nagy wrote: »
    So there's no simple "fix" at the firmware level to automagically know the difference between an intentional long hold (totally legal and useful) and a missed release. So you need to make you code know what it is about and how to decide in your circumstance.
    Wouldn't it be great if they released a firmware update that would allow us to set this timeout in the remote itself that way we didn't have to manage it in code? You know - something along the lines that at the end of the timeout it would automatically generate a release; now that'd be slick.
  • a_riot42a_riot42 Posts: 1,624
    jjames wrote: »
    Wouldn't it be great if they released a firmware update that would allow us to set this timeout in the remote itself that way we didn't have to manage it in code? You know - something along the lines that at the end of the timeout it would automatically generate a release; now that'd be slick.

    I have only had a couple of rare complaints about this issue over many projects, so I haven't put that much time into looking at it. I tend to try and avoid this problem rather than work around it since its so annoying. I have offered the rare client that has experienced this to change the ramp so that you can only ramp for a few seconds at a time, but all have refused. I think a lot of people like to play with the volume and since its so responsive they get a kick out of it compared to their typical IR remote so I don't want to disable the system just on the off chance that the volume might ramp. Besides, we sell more speakers this way :)
    Paul
  • John NagyJohn Nagy Posts: 1,742
    A timeout managed in the remote wouldn't help much when the connection is lost before the timeout. It has to be in the NetLinx.
  • jjamesjjames Posts: 2,908
    John Nagy wrote: »
    A timeout managed in the remote wouldn't help much when the connection is lost before the timeout. It has to be in the NetLinx.
    Right - perhaps a dual firmware update? Or it's already built in there and we just need the firmware for the remote?
  • ericmedleyericmedley Posts: 4,177
    Perhaps AMX should start using the managed WiFi solution they now offer. Since the new managed WiFi system now communicates the health and data rate of each specific device and can communicate this it wouldn't be too difficult to get this info into the Netlinx master. So things like offline, online and such don't have to be based upon long timeouts. A whole ne set of metrics cand be made into events such as slow data rates, etc....

    Ive never been a big fan of signee anyway. It's klunky and slow.

    Imagine being able to upload an R4 over the network.
  • viningvining Posts: 4,368
    ericmedley wrote: »
    Ive never been a big fan of signee anyway. It's klunky and slow.
    Signee? I'm not getting this line. (zigbee?)
    Imagine being able to upload an R4 over the network.
    Yeah, wouldn't that be a trip. Actually it wouldn't cuz then we could do it remotely :) like everythying else. Currently the idea of making R4 file changes usually makes me not make them since doing so means a road trip and once onsite the fussing about with the connections, which have been pretty good lately but it's still a pain.

    Maybe the upcoming infocom release with have a wi-fi remote and then the whole zigbee thing can be eliminated from AMX completely, unless they want to do zigbee sensors or other low bitrate type devices. IMHO it never should have been used for a UI that requires medium to heavy traffic. Well maybe not "requires" but definitely should be capable of medium to heavy traffic to tap the potential an AMX wireless remote should have.
  • John NagyJohn Nagy Posts: 1,742
    Sure WIFI gives a more stable connection suitable for loading software.
    But WIFI+24/7 on time=short battery life.
    That's why they did Zigbee in the first place. I get nearly 2 weeks between charging my R4 with daily use. You can't leave a WIFI active overnight off the charger. An 8400 will shut down and need a restart/reboot in the morning. A 5200 will just peter out and be dead. Not even if it's an iPad. The iPad turns off the wifi when it wants to, that's how it lasts for days. That's not acceptable for a dedicated remote...
    Just sayin, there's a reason, and a consequence to the decision. Do you want battery longevity or remotable load? Can't have both today, and it's not because of a stupid design.
  • viningvining Posts: 4,368
    John Nagy wrote: »
    Sure WIFI gives a more stable connection suitable for loading software.
    But WIFI+24/7 on time=short battery life.
    That's why they did Zigbee in the first place. I get nearly 2 weeks between charging my R4 with daily use. You can't leave a WIFI active overnight off the charger. An 8400 will shut down and need a restart/reboot in the morning. A 5200 will just peter out and be dead. Not even if it's an iPad. The iPad turns off the wifi when it wants to, that's how it lasts for days. That's not acceptable for a dedicated remote...
    Just sayin, there's a reason, and a consequence to the decision. Do you want battery longevity or remotable load? Can't have both today, and it's not because of a stupid design.
    How about smart wi-fi that connects on touch/pick up and stays connected while the controlled system is on. Then drop the wi-fi (via master) when the system turns off and the remote is inactive. I think the connection could be made in time to be usefull when picked up since it basically does that now even when it's docked and if it shuts down when the system isn't being used or x amount of idle time you can achieve an adequate battery longevitiy.

    How about a hybrid system?

    If you think about how many local systems only use a 5200 or 8400 for control? Those users seem to adapt and cope with that battery life. A lot of my customers don't use the systems for weeks so if they leave the remote undocked they're still SOL anyway even with the current battery longevity so they should complain cuz it doesn't last years like a standard remote. I think if you pay big bucks for a remote system you should get a little bang with those bucks and the R4's kinda make you feel like you didn't get the dinner and the movie, just went straight to getting... If you get my drift. Ok, it's not really that bad but it could be alot nicer.
  • ericmedleyericmedley Posts: 4,177
    vining wrote: »
    Signee? I'm not getting this line. (zigbee?)

    Yeah, wouldn't that be a trip. Actually it wouldn't cuz then we could do it remotely :) like everythying else. Currently the idea of making R4 file changes usually makes me not make them since doing so means a road trip and once onsite the fussing about with the connections, which have been pretty good lately but it's still a pain.

    Maybe the upcoming infocom release with have a wi-fi remote and then the whole zigbee thing can be eliminated from AMX completely, unless they want to do zigbee sensors or other low bitrate type devices. IMHO it never should have been used for a UI that requires medium to heavy traffic. Well maybe not "requires" but definitely should be capable of medium to heavy traffic to tap the potential an AMX wireless remote should have.

    Ha! another example of the iPad auto correct winning the day!
  • jjamesjjames Posts: 2,908
    John Nagy wrote: »
    I get nearly 2 weeks between charging my R4 with daily use.
    This I am surprised with, considering "Average use time between charges" is "1 week". (http://www.amx.com//assets/literature/R4.Mio.Modero.Remote.Family.pdf - last page.) I am ever surprised with that! I guess our clients are just TV junkies and use it NON-STOP! For one client, I know this is true as their systems are on from sun-up until way past sun-down. She claims to have to charge it every night.

    Regardless - it's funny how many cell phones, and smaller devices can have WiFi and people do not complain much about their battery life, or as vining has pointed out, adapt to it. I've been hoping for an R-5 that'd have WiFi since the R-4 came out.
  • Jorde_VJorde_V Posts: 393
    jjames wrote: »
    This I am surprised with, considering "Average use time between charges" is "1 week". (http://www.amx.com//assets/literature/R4.Mio.Modero.Remote.Family.pdf - last page.) I am ever surprised with that! I guess our clients are just TV junkies and use it NON-STOP! For one client, I know this is true as their systems are on from sun-up until way past sun-down. She claims to have to charge it every night.

    Regardless - it's funny how many cell phones, and smaller devices can have WiFi and people do not complain much about their battery life, or as vining has pointed out, adapt to it. I've been hoping for an R-5 that'd have WiFi since the R-4 came out.

    Not to mention that with wireless N and current up-to-date wi-fi equipment there's no reason wi-fi couldn't suffice. The connection speed is almost instantaneously. Not to mention the possible use of lower power wi-fi transmitters. Laptops tend to have 300mW wireless transmitters while things like phones and iPads have 150mW transmitters.

    On pick-up the first thing the remote would need to do is reconnect. For that to work though it will need to recognize picking up really quickly. Again something that isn't impossible with current tech standards. AMX just needs to incorporate those into one slick little remote. (and perhaps a better battery-pack)

    Back on topic, I have used the HOLD event to force a release as well. 2-3 seconds depending on the ramping speed.
  • Joe HebertJoe Hebert Posts: 2,159
    One thing the firmware can fix is to release all button pushes when a device drops offline. Channels and levels get released already. Why not button pushes? When it comes to volume ramping the offline event takes too long to trigger in many cases but the button release should still happen on its own.

    It seems like the majority that responded have some sort of timeout for volume ramping and while it’s not an ideal solution it appears to be our only viable option.

    Volume runaway is not a problem I would want to just sweep under the rug and ignore. It may only happen rarely but when it does it can be quite embarrassing. If I was a client and the volume ran away when I was showing off my million dollar+ system to friends or when the baby was sleeping, I’d be pretty pissed about it.

    So either we throttle the volume ourselves or just let the volume rip. We can brag to our clients how fast we can go from 0-60 although by the way there is a slight chance the accelerator will stick and the car will reach 300 and blow up. But we’d be happy to sell you a new car if it does.

    If we could keep these devices connected that would be Utopia.

    Thanks to everyone for their feedback.
  • a_riot42a_riot42 Posts: 1,624
    Joe Hebert wrote: »
    it appears to be our only viable option.

    There are other options. Four things seem to cause this problem most often:

    1) Devices falling offline while ramping, which can be minimized or even abolished with careful planning and execution.

    2) Inefficient code that hogs the cpu or too much define_program code causing events to get backed up in the message queue and then executed after the button is released.

    3) Sending too many events to the processor during a hold causing events to get backed up in the message queue and then executed after the button is released.

    4) Sending events in a hold faster than the preamp can execute them causing command buffering in the module/device.

    Since all these issues are preventable, having volume ramping is avoidable in most cases, requiring a workaround only in suboptimal installations.

    I tend not to worry too much about freak accidents like pets standing on the volume control or a remote getting stuck in between couch cushions, since its never happened in my 7 years of AMX programming. If it ever does I will come up with a solution for that client should they want one to prevent this.
    Paul
  • viningvining Posts: 4,368
    It's like having a loaded gun on the coffee table. It's quite possible it can stay there for years with out issue but it only takes one time, one careless moment and a child is dead. Is that what you want? OK, that analogy is a little over the top but adding some breaks in the hold can usually go unnoticed by the user and works like putting a keylock on the trigger of that gun. I still wouldn't leave the gun out on the table but at least then if I did I wouldn't have to worry about some stupid kid blowing his brains out. :)
  • John NagyJohn Nagy Posts: 1,742
    Until we really turned the corner on managing potential runaways and still encountered them on rare occasions, we made the 100% volume actually repeat the 45% level. So if you ever went so high and stuck there, you jumped down to a moderate level as the final step. No one every mentioned finding this in ordinary use - seems no one ever goes to 100% on purpose. Not ideal, but it made the rare pain of a runaway only fleeting.

    I remember one call from a furious and frantic customer years ago with the system blasting away. He'd broken his CP4a and had spent 20 minutes of aural agony while trying to push the wires together to turn down the volume before calling me... I asked him to press STOP on the DVD player. He started to say something... then a few seconds later, blessed silence. How quickly and completely people forget there are still manual ways to operate their system.
  • jjamesjjames Posts: 2,908
    Since I never use a VOLUME+ command and instead use discrete volume directives, I stop it at a specified max per zone. If the client asks for it to be raised, we'll do it, but typically it's between 70-80% - still a little high, but not it's not as bad as 100%.
  • Joe HebertJoe Hebert Posts: 2,159
    jjames wrote: »
    Since I never use a VOLUME+ command and instead use discrete volume directives
    Why is that? Any special reason or just a personal preference?
  • jjamesjjames Posts: 2,908
    Mainly for just two reasons: If i keep track of where I sent the volume, I don't need to wait for a response to parse and find what the volume is and then send again to update my bargraph. It's as simple as send volume to device, send volume level to TPs, repeat as necessary. Also I can set volume limits easily with a simple
    if(i_volume < i_max)
    {
      i_volume++;
       send_string-blahblahblah
    }
    

    You can easily do swap it around to a minimum volume level too, that way they never can really ramp it to zero, but just have it really quiet; this way if it ever does ramp down, at least they'll be able to hear it and not say "Well, all of a sudden, I gradually lost audio - and now it won't work at all." and then you're out there chasing your tail possibly thinking the device went bad.

    If it's caught in a loop, or a runaway volume - it'll stop at a predetermined value. I should mention that I do know the "risks" involved, say for instance having a receiver in the open and then a client manually changes the volume, then when they go to change the volume with the panel it'll drop down to what software thought it was supposed to be. Easily fixed by capturing the volume feedback if available. But to be honest, in the short six years I've been doing this - I've yet to see someone do this and if they have, I've never heard a complaint. Also, there are no volume knobs on a lot of the switchers out there, mainly just receivers - so I'm not too worried about it.
  • Joe HebertJoe Hebert Posts: 2,159
    I take a different approach. I never fake (or anticipate) volume feedback. I always show what I’ve actually received and by doing so I can easily verify that the switcher or receiver is actually working. If the volume bargraph is moving then I know the switcher/receiver is wired correctly and functioning. I’ve never noticed any kind of lag by doing it this way. I use discrete commands for turn on volume and presets.

    You bring up a good point about setting a max volume via software (which can be done with vol +/- commands just as easily.) So aside from a timeout we also have the option to do a do_release or stop a timeline when we see that the volume has reached our predetermined max level. Good idea.

    As far as the volume level going to zero I just turn on the mute button when that happens.
  • the8thstthe8thst Posts: 470
    John Nagy wrote: »
    Sure WIFI gives a more stable connection suitable for loading software.
    But WIFI+24/7 on time=short battery life.
    That's why they did Zigbee in the first place. I get nearly 2 weeks between charging my R4 with daily use. You can't leave a WIFI active overnight off the charger. An 8400 will shut down and need a restart/reboot in the morning. A 5200 will just peter out and be dead. Not even if it's an iPad. The iPad turns off the wifi when it wants to, that's how it lasts for days. That's not acceptable for a dedicated remote...
    Just sayin, there's a reason, and a consequence to the decision. Do you want battery longevity or remotable load? Can't have both today, and it's not because of a stupid design.

    I would much rather have a properly implemented WIFI remote with slightly lower battery life than a mediocre implementation of Zigbee.

    Everyone of my clients with R4s put the remote back on the charger when they are done using the system, so we really only NEED 12 hours or so of battery life. We talk about the charging cradle concept as a selling point from day one. It is a way to always know where the remote is and a way to always have the remote charged and ready to go every time it gets picked up.

    I would also much rather put the money that we spend on Zigbee gateways and receivers into 1 or 2 more WIFI access points with a Ruckus Controller to really offer a kick *** wireless network.
Sign In or Register to comment.