Another Idle Volume Adjuster

Turranius

Member
Supporter
RL Member
In that case it's perfect the way it is. I assumed that ProgramSpecificVolume apps would not go idle. Thanks for the app, It's great.

Pleasure. Glad to hear it =)

Hopefully I've worked off my jet lag tomorrow and can add shortcuts to set specific volume for Takaji.
 

Turranius

Member
Supporter
RL Member
It should still go idle with ProgramSpecificVolume defined applications. You can add "Demul.exe" to the exclusionlist as well. Have not tried that but it should work..

Quoting myself here. That will probably NOT work. It first checks exceptions and if found, waits indefinitely for it to exit. After checking exceptions, it checks for specific volume applications.
I'll reverse that in the next version. As of right now, if you set demul.exe as an exception, it will not work with ProgramSpecificVolume.
 

Turranius

Member
Supporter
RL Member
Ok, I've done a 1.6 in the beta folder here:

ftp://misc:[email protected]/Tur-AnotherIdleVolumeAdjuster

You just need to replace the .exe and it will add the new settings for manually changing volume =)

By default its alt-up and alt-down and it will change 10% for each click.

First I tried to make a nice progressbar that showed the volume and such, but it just got very buggy when holding down alt-up och alt-down so I opted for a simpler solution..

Code:
ManualVolumeUp=
This key raises the volume one step. Please note that each notch is 2%.
Valid: Any command acceptable. See QuitKey above. Same as with that one. Leave it empty to disable.
Default: !{UP} (meaning Alt-Up)

ManualVolumeDn=
This key lowers the volume one step. Please note that each notch is 2%.
Valid: Any command acceptable. See QuitKey above. Same as with that one. Leave it empty to disable.
Default: !{DOWN} (meaning Alt-Down)

ManualVolumeStep=
How many steps do you want to raise or lower the volume for each click?
Note that each step is 2% so setting this to 5 raises or lowers the volume by 10%.
Valid:1-50
Default: 5 (10%)
 

Takaji

New member
RL Member
Oh wow, this is a godsend. You know how ear-splitting-ly loud Atari sounds are?? This works perfectly!

Would it be too big of a request to make a setting that remembers what you set the volume to (using the alt-up, alt-down buttons)? This would be easier than editing the ProgramSpecificVolume value in Settings.ini, then opening the emulator and testing the level, then going back to edit it again, etc... I think this would be something you could enable or disable... like "Remember user-set volume setting = true" or something like that.

Thank you so much for your work on this!
 

Turranius

Member
Supporter
RL Member
That is possible, but .. save it for when? When should it restore the volume to that? I can make a button to save the current volume, but I have no way to know which program you want to use it for..

Perhaps I can read the process for the current active window and use that, unless you have any other ideas..
 

Takaji

New member
RL Member
The idea is that using Alt+Up or Alt+Down while in an emulator (that already has an entry under ProgramSpecificVolume) will modify the value of ProgramSpecificVolume for that emulator permanently, so the next time you run that emulator, the volume is set to what is stored in Settings.ini. Ideally there would be an option to enable and disable this feature.

So for example...
- ProgramSpecificVolume for retroarch.exe is 100
- Open the emulator, use Alt+Down to turn down the volume
- ProgramSpecificVolume for retroarch.exe is changed to, say, 67
- Exit the emulator, ProgramSpecificVolume for retroarch.exe = 67
- Next time you open retroarch.exe, ProgramSpecificVolume for retroarch.exe = 67

This would solve the problem of trying to match the volume just perfectly between emulator programs by needing to open and close them all the time to edit Settings.ini.

Just a suggestion though - this is already a great little utility. Thanks again :)
 

Turranius

Member
Supporter
RL Member
Yes. Can do that. It can mess up though as you can start two programs at the same time that is in ProgramSpecificVolume. Although I would guess that is rare..

I'll work on it =)
 

Dime333

Active member
RL Member
Yes. Can do that. It can mess up though as you can start two programs at the same time that is in ProgramSpecificVolume. Although I would guess that is rare..

I'll work on it =)

This would be a great feature. Just about an hour ago, I came across a game that had very loud sound. But i didn't do anything about it because the process of editing the ini file and testing the game again seemed to be a Little more than I felt like doing just then. If I could just adjust it ingame, It would have been fixed at once.
 

Takaji

New member
RL Member
Yes. Can do that. It can mess up though as you can start two programs at the same time that is in ProgramSpecificVolume. Although I would guess that is rare..

Yeah, I think it's not a situation I'd ever run into. It would mean running both MESS and RetroArch at the same time, which would never occur.
 

Turranius

Member
Supporter
RL Member
Ok, a new 1.7 beta is available on my FTP in the signature. Just replace the exe and run it and the missing values will be added to settings.ini (although they are False by default so you have to change that).

Be adviced: As with ProgramSpecificVolume, this only works on processes (exe names), so Dime133, if that game was a standalone game with its own .exe file, it will work fine. If it was a MAME or similar game, it wont work since it will only save the volume for your mame.exe (whatever its called). No way in the current setup to know which game is loaded..

Code:
ManualVolumeAutoSave=
With this set to True, it will automatically save the new volume set to ProgramSpecificVolume for that process. That means that it will remember
the volume you set with ManualVolumeUp and ManualVolumeDn for the next time this process is started.
Valid: True/False
Default: False

ManualVolumeAutoAdd=
When this is set to True and you use ManualVolumeUp or ManualVolumeDn and the current process is NOT in the ProgramSpecificVolume settings, it will
automatically be added to it. A question will pop up, asking you if you are sure and show you the process it will add.
If you do not say "Yes" to that question, nothing will be added. This question only pops up once, since after you say "Yes", it will be added
to the ProgramSpecificVolume settings and the normal procedure will follow (always save new volume).
If you set this to AUTO, the active process when you use ManualVolumeUp or ManualVolumeDn will always be saved. No questions asked (dangerous).
Requires: ManualVolumeAutoSave=True
Valid: True/False/AUTO
Default: False
 

Dime333

Active member
RL Member
Ok, a new 1.7 beta is available on my FTP in the signature. Just replace the exe and run it and the missing values will be added to settings.ini (although they are False by default so you have to change that).

Be adviced: As with ProgramSpecificVolume, this only works on processes (exe names), so Dime133, if that game was a standalone game with its own .exe file, it will work fine. If it was a MAME or similar game, it wont work since it will only save the volume for your mame.exe (whatever its called). No way in the current setup to know which game is loaded..

Code:
ManualVolumeAutoSave=
With this set to True, it will automatically save the new volume set to ProgramSpecificVolume for that process. That means that it will remember
the volume you set with ManualVolumeUp and ManualVolumeDn for the next time this process is started.
Valid: True/False
Default: False

ManualVolumeAutoAdd=
When this is set to True and you use ManualVolumeUp or ManualVolumeDn and the current process is NOT in the ProgramSpecificVolume settings, it will
automatically be added to it. A question will pop up, asking you if you are sure and show you the process it will add.
If you do not say "Yes" to that question, nothing will be added. This question only pops up once, since after you say "Yes", it will be added
to the ProgramSpecificVolume settings and the normal procedure will follow (always save new volume).
If you set this to AUTO, the active process when you use ManualVolumeUp or ManualVolumeDn will always be saved. No questions asked (dangerous).
Requires: ManualVolumeAutoSave=True
Valid: True/False/AUTO
Default: False

I'm aware. It was a Standalone game. Thanks.
 

oakleez

New member
RL Member
Just curious... I love this app but plan on using hyperspin.exe as my shell instead of explorer. Upon testing this, and trying to set this app as a system service, it doesn't seem to be working. Has anyone got this working as a service... and how did you do it? I tried running it as the hyperspin startup app but it didn't seem to release focus back to hyperspin. Thanks!

UPDATE: So running the app as a service DOES seem to work for the following:
Set_Volume_at_Startup
Set_Volume_at_Idle_to_Percent
FadeOut_Delay

But does not seem to work with:
FadeIn_Delay
(or restoring to full volume after resuming from idle)

Even with FadeIn_Delay=False, the audio level stays at the "Set_Volume_at_Idle_to_Percent" volume.

Everything works fine with when not running as a service.
 
Last edited:

Turranius

Member
Supporter
RL Member
Hm, I doubt it can detect or control the Volume Mixer when running as a service. Best bet would be to add it the script that runs as a windows shell, before Hyperlaunch.exe is executed.

If its a batch script, you probably have to run it like "start path\to\Tur-Another Idle Volume Adjuster.exe" so that the batch does not wait for it to exit.
 

oakleez

New member
RL Member
Thanks for the help, guys!

I'm using ghutch92's startup script and now everything is happy... except for ManualVolumeUp/ManualVolumeDn.

I've mapped them to PGUP/PGDN in the .ini via my iPac and they work great... until I run hyperspin as my shell.

I know this feature is new/beta but I just figured I'd let you know that this is the case.
 
Last edited:

Turranius

Member
Supporter
RL Member
I think HyperSpin uses PGUP and PGDN as keys for something. It probably overwrites the keybindings I set...

Check you HyperHQ, Controls
For me, Skip Up Num and Skip Down Num is set as PAGE UP and PAGE DOWN.

Let me know if that was it. If so I'll add a note in the readme not to set keys used by HyperSpin.
 

oakleez

New member
RL Member
I think HyperSpin uses PGUP and PGDN as keys for something. It probably overwrites the keybindings I set...

Check you HyperHQ, Controls
For me, Skip Up Num and Skip Down Num is set as PAGE UP and PAGE DOWN.

Let me know if that was it. If so I'll add a note in the readme not to set keys used by HyperSpin.

I thought about that but Hyperspin/HQ is not using those keys for anything.

Like I said, it fully works when using explorer as a shell... just not when using hyeprspin as a shell which is odd because all of the other features seem to work just fine.

I've searched around and found an app called cabvol that supposedly fixes this (known) issue of volume controls not working when HS is shelled. I'll be trying it out tonight.
 
Last edited:

Turranius

Member
Supporter
RL Member
There are actually two ways I can modify the volume. Either using AutoIT directly or interacting with the volume mixer. The ManualVolumeUp/ManualVolumeDn function uses the AutoIT method directly since it was easier (I do not have to care what the volume was set to previously etc) so if that does not work, but it does fade and restore volume as it should, let me know and we can try switching the function to the other method.

I should also add some logging to a file instead of that useless debug mode... Its getting advanced enough that troubleshooting is hard without a log.
 

oakleez

New member
RL Member
No worries... I've abandoned shelling hyperspin... it just breaks too much stuff.

I just installed Fences to hide desktop icons and hid the taskbar and it boots up nicely and gives me the benefits of explorer/etc being open. Thanks again, love the app!
 
Top