Oh, I think I see what you mean about the mute. If you slide the volume down to zero it just turns the volume down, even though the tooltip says it is muted. To get a true mute you need to middle click on the tray icon, or uncheck the check box in the "full window"._________________If you have or know of a good gtkdialog application, please post a link here

Hey, has anyone else noticed this?:
If the volume is at 0% or 100%, scrolling the mouse wheel over the tray icon often does not have any effect. After left clicking on the icon and then clicking again to close the slider, scrolling over the icon always works. Also, if the volume is not at 0% or 100%, I think it always works.
It looks like a way to reliably trigger the problem is to disable the context menu and right-click twice on the icon to bring up the "full window" and close it again...
I'm wondering if it is anything to do with my tray or my GTK version or something - I'll see if I can investigate further._________________If you have or know of a good gtkdialog application, please post a link here

Hey, has anyone else noticed this?:
If the volume is at 0% or 100%, scrolling the mouse wheel over the tray icon often does not have any effect. After left clicking on the icon and then clicking again to close the slider, scrolling over the icon always works. Also, if the volume is not at 0% or 100%, I think it always works.
It looks like a way to reliably trigger the problem is to disable the context menu and right-click twice on the icon to bring up the "full window" and close it again...
I'm wondering if it is anything to do with my tray or my GTK version or something - I'll see if I can investigate further.

I booted a version of slacko that I have around, and the problem didn't seem to occur with its retrovol. So I tried running my Arch retrovol in slacko and it did have the problem. So I think the problem is not the GTK version it is running against.
I thought maybe the retrovol in slacko was build long ago and therefore used eggtrayicon rather than gtkstatusicon. So I hacked the gtkstatusicon code out to force it to use eggtrayicon, and built it in Arch, and the problem still occurred.
I'm puzzled now. Could the problem somehow be the gtk version it was compiled against?_________________If you have or know of a good gtkdialog application, please post a link here

Retrovol has never worked on my computer, does it work for others? From Lucid Puppy to the very latest development versions of Precise, Retrovol doesn't do anything to the volume level -- or at least not in the Intel- or AMD-powered desktop computers I've used. I always rely on the volume control of Gnome MPlayer and DeaDBeeF, who wants to make a scientific investigation to rise/low volume when all they wish at the moment is to enjoy a video or their favourite music? Now seriously, this is the kind of bugs that make some windoze users say "aahhh, LINUX is crappy!" It'd be great to find a solution._________________Puppy Linux en español

Retrovol has never worked on my computer, does it work for others? From Lucid Puppy to the very latest development versions of Precise, Retrovol doesn't do anything to the volume level -- or at least not in the Intel- or AMD-powered desktop computers I've used. I always rely on the volume control of Gnome MPlayer and DeaDBeeF, who wants to make a scientific investigation to rise/low volume when all they wish at the moment is to enjoy a video or their favourite music? Now seriously, this is the kind of bugs that make some windoze users say "aahhh, LINUX is crappy!" It'd be great to find a solution.

hi vicmz

right click on the retrovol tray icon and choose 'config window' then click on the 'hardware' tab and try changeing hw:0 to hw:1 or visa versa.....

Some of us are easily pleased, happy to have the thing work. Then there's me. . . I just reread this thread through from the beginning. It's been an interesting and arduous path with seemingly most everyone chipping in with pizzasgood to get here. Well, we're not there yet.

In response to a recent question given me by disciple:

Quote:

Henry wrote:
"That the curve is so crowded at the top is perhaps not so bad as the lack of a true mute."

It has a "true mute" as far as I can tell. Am I missing something, or are you?

As I see it there are two things still wrong with retrovol:

1. It has a linear "taper," not logarithmic. Nearly every volume control has a curve such that it "gives an approximately equal change in perceived volume for each equal slider increment."

2. It has a false mute indication, the red x popping up at the lowest visual segment, but not at zero volume.

When I pointed this out to pizzasgood in Feb 2012 he said:

Quote:

"If anybody is interested in having it changed right now, there are only two lines of source code that would need adjusting. Otherwise, you'll have to wait until I get around to adding it proper, which is more work since I want it to be optional - I'm kind of busy lately so I might not work on it for a week or two. Also, this hasn't been tested thoroughly - it is possible that in some situations near the maximum and minimum volume levels you might have trouble getting it to completely max (or min) out. I will test that more rigorously when I implement it for real.

Anyway, the changes are to the alsa_classes.cpp file. The lines to change are 161 and 167, in the scale_out and scale_in functions.

Here is the original code: Code:
//this is used internally to scale a number to be from 0-100
int Element::scale_out(int num){
if(max-min==0){ return(num); }
return(ceil(100.0*(num-min)/(max-min)));
}
//this is the inverse of scale_out; it's used to take a 0-100 number and put it
//into the proper scale for the element to understand
int Element::scale_in(int num){
if(max-min==0){ return(num); }
return(floor((num*(max-min)/(100))+min));
}

And here is the modified code: Code:
//this is used internally to scale a number to be from 0-100
int Element::scale_out(int num){
if(max-min==0){ return(num); }
return(ceil(pow(100.0, (num-min)/(double)(max-min))));
}
//this is the inverse of scale_out; it's used to take a 0-100 number and put it
//into the proper scale for the element to understand
int Element::scale_in(int num){
if(max-min==0){ return(num); }
return(round((log(num)/log(100)*(max-min))+min));
}

And here is the diff, if you prefer that format: Code:
--- src/alsa_classes.cpp (revision 181)
+++ src/alsa_classes.cpp (working copy)
@@ -158,13 +158,13 @@
//this is used internally to scale a number to be from 0-100
int Element::scale_out(int num){
if(max-min==0){ return(num); }
- return(ceil(100.0*(num-min)/(max-min)));
+ return(ceil(pow(100.0, (num-min)/(double)(max-min))));
}
//this is the inverse of scale_out; it's used to take a 0-100 number and put it
//into the proper scale for the element to understand
int Element::scale_in(int num){
if(max-min==0){ return(num); }
- return(floor((num*(max-min)/(100))+min));
+ return(round((log(num)/log(100)*(max-min))+min));
}
//this will grab the highest value in the element
int Element::get(){

If you wanted some other scaling formula, these two functions are where you'd define it.

Too bad he didn't do it if it was so simple. (I am not a coder, sorry.)

In the screen slider it's desirable for the end limits to represent zero (mute) and maximum sound level. If it's not possible we shouldn't say so.Last edited by Henry on Mon 25 Feb 2013, 07:20; edited 1 time in total

Now the BIG question is: if this is how Retrovol is supposed to work, why is Puppy using another setting as default? Or different CPUs have different settings?

I think you have a weird sound card, or something is weird about your system - maybe the linux driver that is used for your chip doesn't quite know enough about it and thinks that it has controls that it really hasn't. With most cards "master playback" is the best choice._________________If you have or know of a good gtkdialog application, please post a link here

BTW, if you don't use your Line/Mic/CD inputs etc., using the PCM volume control should be fine. Otherwise you might want to set up a "Master" software volume control (the normal volume controls are hardware volume controls) - there is a howto for this on the alsa wiki. Or you might not

Incidentally, Henry might also want to try configuring retrovol to control "PCM" rather than "Master". I have read that on many sound cards the master playback control is logarithmic but the PCM control is linear (or the other way around, depending on how you interpret that statement).

Also, Henry, I'll post back again when I have time - I think you have some misunderstandings/misconceptions which we should clear up._________________If you have or know of a good gtkdialog application, please post a link here

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum