PDA

View Full Version : volume controll and registers



Ron
October 13th, 2002, 12:55 PM
I can see what I can do,.. but i can't change the default behaviour this would break 99% of the users behaviour, and i don't know what it should be... so I would need some help on this.

Ron
October 13th, 2002, 12:55 PM
so we have 2 options,...

1. Logaritmic volume control,..sounds okay but what is the EXACT formula to use,.. 10log, elog,.. and what not else for different sound cards. (hard for me, easy for you)

2. Get the current value into a register (easy for me, hard for you)

If you could contribute some code snippets then i can implement solution 1. I ask this because my soundcard does this conversion internally, thus exposing a linear control.

-Ron

Ron
October 13th, 2002, 12:55 PM
Good Point :grin:

Ron
October 13th, 2002, 12:55 PM
Darn,... thats what i forgot :wink:

Ron
October 13th, 2002, 12:55 PM
Done! see 3.0.24 pre 3

Ron
October 13th, 2002, 12:55 PM
Good idea's! There is one little thing that can be done a little easier since the last preview release. You can set the volume directly!




* Added direct set support to mute ( Trick! Want to set a volume channel to a specific value ? use the mute action on a normal volume line and enter a value!!)


* So choose the line you want to set.
* Select the mute action
* Enter the value you want the volume set to.

Hope this helps.



<font size=-1>[ This Message was edited by: RonB on 2001-10-24 23:33 ]</font>

Ingo
October 13th, 2002, 12:55 PM
as my soundcard (sblive) seems to have linear volume controll I tried to fix this using girder's registers.

first thing I was thinking about was to put the current volume in a register an multiply it by let's say 1.1 ... reading the current volume doesn't seem to be possible, so I went to the next possible solution...

so I tried to do some volume controll acceleration. starting with a low value in a register, increasing the volume by this small amount and increasing this register at the same time and reseting the register if no volume change appeared within a certain time. but again this was a dead end as girder doens't seem to take a register in the step size box, it changes to 0 on leaving the command.

did I miss something? if not: Ron, can you change this?

Ingo

Ingo
October 13th, 2002, 12:55 PM
hi Ron,

the best thing would be to have an option do some logarithmical stuff on volume change as this is the way our ear works (as you shurly know). this it what I wanted to achieve by reading the current volume setting and multiplying it by some factor (using registers to do this and setting the new register value as the new volume or to increase/decrease the current volume by a value depending on the current volume setting).
Can you see what I'm thinking about? My problem is that the same volume increase changes the listening volume a lot on when the card's output volume is small, but doesn't change it very much once I reached around half of maximum....

Ingo
October 13th, 2002, 12:55 PM
Thanks Ron, allready did some testing...

but (you knew it would be there, didn't you?) is there a way to read the current volume? And if there is, how can I set a register to its value?

Ingo
October 13th, 2002, 12:55 PM
we're all getting older :wink:

thanks for the new release. works great.
now I can adjust the volume of my soundcard even at lower volumes.

Ingo
October 13th, 2002, 12:55 PM
Hi Ron,

I think you somehow broke mute toggling. It only seems to work when setting the 'Register' check box.
By the way, how about adding register support and support for direct setting of mute state (via registers, value in Step Size box)?

Ingo

Ingo
October 13th, 2002, 12:55 PM
Hi Doof,

sorry, no readme ;-( , just the export group.... But if you have a question, just ask.

Ingo

Ingo
October 13th, 2002, 12:55 PM
1. Looking at the export group, I can't figure out exactly what I'm supposed to assign an IR command to. It kind of looks to me like if I assign an IR command to the multigroups Vol + and Vol - the the rest will take care of itself for the logrythmic volume change. Does it somehow call on the other commands on it's own?


as long as you don't want to change the default behavour, yes, just vol+ and vol- the others are for internal use only...



2. How do I go about assigning a specific value to a volume line? Like if I wanted to set my wave volume to 50%, how would I do that?


hm, I don't think you can do that directly....
first you have to figure out what value would be the volume max. to do this, create a multigroup, add a command, make that a volume change and set the checkmark on the set register box. then add a second command after that one and make it an OSD PopUp (don't forget to activate it in girders action plugin list first). On the settings screen for this OSD, add '[reg25]' (as usual, without the quotes) in the place message text here box.
then set the volume to max value, and test the multigroup. now you should get an osd popup screen giving you the vol max value.

No for the real thing: again, first create a multigroup and add a command, make it a volume change and add the volume max as the change value into the step size box, add a '-' in front of it. now you know that the volume is 0. add a second command and again make it a volume change and add the value you want your volume to be in the step size box.
now you should be done....

Good luck.

Ingo

Ingo
October 13th, 2002, 12:55 PM
On 2001-10-25 15:55, Doof wrote:
"make that a volume change and set the checkmark on the set register box."

Where is the set register checkbox?

once you're on the right tab (the one with the windows logo) you'll find it on the lower right corner. (the OSD which you'll find there won't help you to find out the volume value as it only displays a graphical view)

Ingo

Ingo
October 13th, 2002, 12:55 PM
ah, ok, which version are you using?
If it's not 3.0.24pre3 update to it. it's the first version suporting this register feature for volume control without bugs...
If you're allready at 3.0.24pre3... aehm, then I'll have to think over your question again....

Ingo

Ingo
October 13th, 2002, 12:55 PM
On 2001-10-29 19:03, Doof wrote:
The saga continues...

I have a SBLive! under WinXP.


so they seem to have changed the volume range for XP... I'm using a SBLive!Value on W2k...

In the 'Vol-' block, look for the 'check max-' group and change the '>10000' to a smaller value, do the same for 'max stpe-/set step' and 'norm step-/set step' (the Icon/Device text box contains the value to be changed). Do the same in the 'Vol+' block. (check max, max step, norm step)

Totaly confused? Then ask again... (this was only meant as a quick hint... I have to leave now.)

jediperry
October 13th, 2002, 12:55 PM
... reading the current volume doesn't seem to be possible, so I went to the next possible solution...


A couple of times I have thought that being able to put the value of a volume level into a register would be useful. It would allow things like an attenuate toggling button and preset volume levels for different applications.
I assume its not that difficult to get the value, and you could use the current volume control selection dialogue.


Mike

jediperry
October 13th, 2002, 12:55 PM
If you are going to do the register thing Ron, I forgot to point out that you would also need to be able put a register in the volume increment setting. Otherwise It would be a bit pointless :grin:

Doof
October 13th, 2002, 12:55 PM
I'm really interested in the way all of this sounds. It sounds like a much better way of controlling the volume and a way of creating presets so I can automatically set the volume to the way I like it during different activities. I downloaded the export group, and have to admit that I'm absolutely baffled by all of it. Can you help? Even if it's just pointing me to a readme that will explain it all?

Doof
October 13th, 2002, 12:55 PM
Okay, ready? :razz:

I'm still into the basics of Girder...

1. Looking at the export group, I can't figure out exactly what I'm supposed to assign an IR command to. It kind of looks to me like if I assign an IR command to the multigroups Vol + and Vol - the the rest will take care of itself for the logrythmic volume change. Does it somehow call on the other commands on it's own?

2. How do I go about assigning a specific value to a volume line? Like if I wanted to set my wave volume to 50%, how would I do that?

Doof
October 13th, 2002, 12:55 PM
"make that a volume change and set the checkmark on the set register box."

Where is the set register checkbox?

Doof
October 13th, 2002, 12:55 PM
Okay, I'm sorry if I'm sounding like an idiot here, but I'm still not seeing this. The checkbox on the OS tab is for OSD. I can't find a checkbox anywhere that says "Set Register"

I created a multigroup.
Added 2 commands to it.
On one I clicked on the OS tab, selected Volume Change, picked the master volume control, and hit OK. What next?

I set the other command to be an OSD popup to display [reg25] but it always only says 0.

Doof
October 13th, 2002, 12:55 PM
Ah, ok... I AM an idiot. I was only using 3.023. I upgraded and now all is well.

Thanks for the help. :smile:

Doof
October 13th, 2002, 12:55 PM
The saga continues...

Ok, I got home, imported the group, assigned the codes, and the logrythmic volume control seems to be working. However, it seems to be moving to steps that are too large. If I start from a state with the volume down as far it will go, it only takes 4 steps to get to max. Do I have to change a setting somewhere for my specific system? I have a SBLive! under WinXP.

Doof
October 13th, 2002, 12:55 PM
That was enough. It works great now! Thanks for all of your help. :smile: