Xfce Forum

Sub domains
 

You are not logged in.

#1 2018-09-24 19:14:07

orschiro
Member
Registered: 2017-11-30
Posts: 34
Website

How to increase volume above 100%?

Dear community,

I found a way to increase output volume above 100% by clicking on the sound icon in the panel and then dragging the slide above 100% [1].

However, what I would prefer is using my touchpad to scroll over the icon and/or pressing the volume keys on my keyboard to go above 100%.

Is this possible as of yet?

If not, I would file this as a bug feature request.

Yours

[1] https://i.imgur.com/sBSEv3Q.png

Offline

#2 2018-09-24 19:57:46

MountainDewManiac
Member
From: Where Mr. Bankruptcy is Prez
Registered: 2013-03-24
Posts: 1,087

Re: How to increase volume above 100%?

orschiro wrote:

I found a way to increase output volume above 100% by clicking on the sound icon in the panel and then dragging the slide above 100%.

^^^Depends on the type of audio... server(?) - pulseaudio, et cetera - that the user and/or distro maintainer chooses to use, apparently.^^^

I'd be happy if everyone just started treating "100%" as, you know... 100%. In other words, as loud as it can get. Then there'd be no issue like this. Possibly an issue of potentially ruining one's speakers due to clipping, lol, but that'd fall under "user error," which is different from the whole "linux doesn't know how to count" issue (also evident in version numbers, where "4.8" is less than "4.10," for example) roll .

Regards,
MDM


Mountain Dew Maniac

How to Ask for Help <=== Click on this link

Offline

#3 2018-09-24 20:02:12

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 6,381

Re: How to increase volume above 100%?

It looks like a bug report already exists for xfce4-pulseaudio-plugin: https://bugzilla.xfce.org/show_bug.cgi?id=14148. Feel free to add your comment to bring it to the developer's attention.

Offline

#4 2018-09-24 20:11:48

orschiro
Member
Registered: 2017-11-30
Posts: 34
Website

Re: How to increase volume above 100%?

ToZ wrote:

It looks like a bug report already exists for xfce4-pulseaudio-plugin: https://bugzilla.xfce.org/show_bug.cgi?id=14148. Feel free to add your comment to bring it to the developer's attention.

Exactly what I had been looking for, thank you!

Yours

Offline

#5 2020-03-25 14:34:33

addeps3
Member
Registered: 2019-02-04
Posts: 3

Re: How to increase volume above 100%?

Hi, can somebody please check if the patch applies cleanly to pulseadio plugin 0.42 because Kompare tells me that "The diff file is malformed" and the differences arent applied.

I'll be honest that I'm new to applying patches but I was just suspecting that the main tree had changed, its been a long time since the patch was created (early 2018 IIRC)

Link to the patch: https://bugzilla.xfce.org/attachment.cgi?id=7525

I wont hesitate to comment on the bugzilla thread, but Im not sure if its me or the patch yet so was wondering if anyone could sort of... try #_#

Git source tree https://github.com/xfce-mirror/xfce4-pulseaudio-plugin

Last edited by addeps3 (2020-03-25 14:40:21)

Offline

#6 2020-03-25 22:15:23

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 6,381

Re: How to increase volume above 100%?

Here are the series of patches re-based against the 0.42 tarball. Confirmed that it works:

diff -Naur xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-button.c xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-button.c
--- xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-button.c	2019-08-11 15:19:12.000000000 -0400
+++ xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-button.c	2020-03-25 12:43:05.218360188 -0400
@@ -235,7 +235,12 @@
   if (event->direction == 1)  // decrease volume
     new_volume = volume - volume_step;
   else if (event->direction == 0)  // increase volume
-    new_volume = MIN (volume + volume_step, MAX (volume, 1.0));
+  {
+    if (!pulseaudio_config_get_allow_louder_than_hundred (button->config))
+      new_volume = MIN (volume + volume_step, MAX (volume, 1.0));
+    else
+      new_volume = volume + volume_step;
+  }
   else
     new_volume = volume;
 
diff -Naur xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-config.c xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-config.c
--- xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-config.c	2019-08-11 15:19:12.000000000 -0400
+++ xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-config.c	2020-03-25 12:54:16.222149368 -0400
@@ -45,6 +45,7 @@
 
 #define DEFAULT_ENABLE_KEYBOARD_SHORTCUTS         TRUE
 #define DEFAULT_SHOW_NOTIFICATIONS                TRUE
+#define DEFAULT_ALLOW_LOUDER_THAN_HUNDRED         FALSE
 #define DEFAULT_VOLUME_STEP                       5
 #define DEFAULT_VOLUME_MAX                        150
 
@@ -86,6 +87,7 @@
   gboolean         enable_keyboard_shortcuts;
   gboolean         enable_multimedia_keys;
   gboolean         show_notifications;
+  gboolean         allow_louder_than_hundred;
   guint            volume_step;
   guint            volume_max;
   gchar           *mixer_command;
@@ -103,6 +105,7 @@
     PROP_ENABLE_KEYBOARD_SHORTCUTS,
     PROP_ENABLE_MULTIMEDIA_KEYS,
     PROP_SHOW_NOTIFICATIONS,
+    PROP_ALLOW_LOUDER_THAN_HUNDRED,
     PROP_VOLUME_STEP,
     PROP_VOLUME_MAX,
     PROP_MIXER_COMMAND,
@@ -164,6 +167,16 @@
 
 
 
+
+ g_object_class_install_property (gobject_class,
+                                  PROP_ALLOW_LOUDER_THAN_HUNDRED,
+                                  g_param_spec_boolean ("allow-louder-than-hundred", NULL, NULL,
+                                                        DEFAULT_ALLOW_LOUDER_THAN_HUNDRED,
+                                                        G_PARAM_READWRITE |
+                                                        G_PARAM_STATIC_STRINGS));
+
+
+
   g_object_class_install_property (gobject_class,
                                    PROP_VOLUME_STEP,
                                    g_param_spec_uint ("volume-step", NULL, NULL,
@@ -247,6 +260,7 @@
   config->enable_keyboard_shortcuts = DEFAULT_ENABLE_KEYBOARD_SHORTCUTS;
   config->enable_multimedia_keys    = DEFAULT_ENABLE_MULTIMEDIA_KEYS;
   config->show_notifications        = DEFAULT_SHOW_NOTIFICATIONS;
+  config->allow_louder_than_hundred = DEFAULT_ALLOW_LOUDER_THAN_HUNDRED;
   config->volume_step               = DEFAULT_VOLUME_STEP;
   config->volume_max                = DEFAULT_VOLUME_MAX;
   config->mixer_command             = g_strdup (DEFAULT_MIXER_COMMAND);
@@ -292,6 +306,10 @@
     case PROP_SHOW_NOTIFICATIONS:
       g_value_set_boolean (value, config->show_notifications);
       break;
+      
+    case PROP_ALLOW_LOUDER_THAN_HUNDRED:
+      g_value_set_boolean (value, config->allow_louder_than_hundred);
+      break;      
 
     case PROP_VOLUME_STEP:
       g_value_set_uint (value, config->volume_step);
@@ -370,6 +388,16 @@
           g_signal_emit (G_OBJECT (config), pulseaudio_config_signals [CONFIGURATION_CHANGED], 0);
         }
       break;
+      
+    case PROP_ALLOW_LOUDER_THAN_HUNDRED:
+      val_bool = g_value_get_boolean (value);
+      if (config->allow_louder_than_hundred != val_bool)
+        {
+          config->allow_louder_than_hundred = val_bool;
+          g_object_notify (G_OBJECT (config), "allow-louder-than-hundred");
+          g_signal_emit (G_OBJECT (config), pulseaudio_config_signals [CONFIGURATION_CHANGED], 0);
+        }
+      break;
 
     case PROP_VOLUME_STEP:
       val_uint = g_value_get_uint (value);
@@ -478,6 +506,16 @@
 
 
 
+gboolean
+pulseaudio_config_get_allow_louder_than_hundred (PulseaudioConfig *config)
+{
+  g_return_val_if_fail (IS_PULSEAUDIO_CONFIG (config), DEFAULT_ALLOW_LOUDER_THAN_HUNDRED);
+
+  return config->allow_louder_than_hundred;
+}
+
+
+
 guint
 pulseaudio_config_get_volume_step (PulseaudioConfig *config)
 {
@@ -824,6 +862,10 @@
       property = g_strconcat (property_base, "/show-notifications", NULL);
       xfconf_g_property_bind (channel, property, G_TYPE_BOOLEAN, config, "show-notifications");
       g_free (property);
+      
+      property = g_strconcat (property_base, "/allow-louder-than-hundred", NULL);
+      xfconf_g_property_bind (channel, property, G_TYPE_BOOLEAN, config, "allow-louder-than-hundred");
+      g_free (property);      
 
       property = g_strconcat (property_base, "/volume-step", NULL);
       xfconf_g_property_bind (channel, property, G_TYPE_UINT, config, "volume-step");
diff -Naur xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-config.h xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-config.h
--- xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-config.h	2019-08-11 15:19:12.000000000 -0400
+++ xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-config.h	2020-03-25 12:47:56.272204849 -0400
@@ -41,6 +41,7 @@
 gboolean           pulseaudio_config_get_enable_keyboard_shortcuts  (PulseaudioConfig     *config);
 gboolean           pulseaudio_config_get_enable_multimedia_keys     (PulseaudioConfig     *config);
 gboolean           pulseaudio_config_get_show_notifications         (PulseaudioConfig     *config);
+gboolean           pulseaudio_config_get_allow_louder_than_hundred  (PulseaudioConfig     *config);
 guint              pulseaudio_config_get_volume_step                (PulseaudioConfig     *config);
 guint              pulseaudio_config_get_volume_max                 (PulseaudioConfig     *config);
 const gchar       *pulseaudio_config_get_mixer_command              (PulseaudioConfig     *config);
diff -Naur xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-dialog.c xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-dialog.c
--- xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-dialog.c	2019-08-11 15:19:12.000000000 -0400
+++ xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-dialog.c	2020-03-25 12:49:59.009643434 -0400
@@ -234,6 +234,12 @@
       g_object_bind_property (G_OBJECT (dialog->config), "enable-keyboard-shortcuts",
                               G_OBJECT (object), "active",
                               G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
+                              
+      object = gtk_builder_get_object (builder, "checkbutton-allow-louder-than-hundred");
+      g_return_if_fail (GTK_IS_CHECK_BUTTON (object));
+      g_object_bind_property (G_OBJECT (dialog->config), "allow-louder-than-hundred",
+                              G_OBJECT (object), "active",
+                              G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
 
       object = gtk_builder_get_object (builder, "checkbutton-show-notifications");
       g_return_if_fail (GTK_IS_CHECK_BUTTON (object));
diff -Naur xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-dialog.glade xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-dialog.glade
--- xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-dialog.glade	2019-08-11 15:19:12.000000000 -0400
+++ xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-dialog.glade	2020-03-25 12:51:27.461386310 -0400
@@ -308,6 +308,22 @@
                             <property name="position">1</property>
                           </packing>
                         </child>
+                        <child>
+                          <object class="GtkCheckButton" id="checkbutton-allow-louder-than-hundred">
+                            <property name="label" translatable="yes">Allow louder than 100%</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="halign">start</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>                        
                       </object>
                       <packing>
                         <property name="expand">False</property>
diff -Naur xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-notify.c xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-notify.c
--- xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-notify.c	2019-08-11 15:19:12.000000000 -0400
+++ xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-notify.c	2020-03-25 12:56:31.930425240 -0400
@@ -170,6 +170,7 @@
   GError             *error = NULL;
   NotifyNotification *notification;
   gdouble             volume;
+  gdouble             volume_max;
   gint                volume_i;
   gboolean            muted;
   gboolean            connected;
@@ -190,7 +191,11 @@
   volume = (mic ? pulseaudio_volume_get_volume_mic : pulseaudio_volume_get_volume) (notify->volume);
   muted = (mic ? pulseaudio_volume_get_muted_mic : pulseaudio_volume_get_muted) (notify->volume);
   connected = pulseaudio_volume_get_connected (notify->volume);
-  volume_i = (gint) round (volume * 100);
+
+  if (!pulseaudio_config_get_allow_louder_than_hundred (notify->config))
+    volume_i = (gint) round (volume * 100);
+  else
+    volume_i = (gint) round (volume * 100 / volume_max);
 
   if (!connected)
     volume_i = 0;
diff -Naur xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-plugin.c xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-plugin.c
--- xfce4-pulseaudio-plugin-0.4.2/panel-plugin/pulseaudio-plugin.c	2019-08-11 15:19:12.000000000 -0400
+++ xfce4-pulseaudio-plugin-0.4.2-patched/panel-plugin/pulseaudio-plugin.c	2020-03-25 12:53:00.549901826 -0400
@@ -351,7 +351,12 @@
   pulseaudio_debug ("%s pressed", keystring);
 
   if (strcmp (keystring, PULSEAUDIO_PLUGIN_RAISE_VOLUME_KEY) == 0)
-    pulseaudio_volume_set_volume (pulseaudio_plugin->volume, MIN (volume + volume_step, MAX (volume, 1.0)));
+  {
+    if (!pulseaudio_config_get_allow_louder_than_hundred (pulseaudio_plugin->config))
+      pulseaudio_volume_set_volume (pulseaudio_plugin->volume, MIN (volume + volume_step, MAX (volume, 1.0)));
+    else
+      pulseaudio_volume_set_volume (pulseaudio_plugin->volume, volume + volume_step);
+  }
   else if (strcmp (keystring, PULSEAUDIO_PLUGIN_LOWER_VOLUME_KEY) == 0)
     pulseaudio_volume_set_volume (pulseaudio_plugin->volume, volume - volume_step);
 }

Run as:

patch -p 1 < PATCH_FILE

...from the root of the tarball.

Offline

#7 2020-03-29 10:45:47

woistemeinauto
Member
Registered: 2020-03-29
Posts: 16

Re: How to increase volume above 100%?

From what i know 100 is actually 100, And this is intended behaviour I think. On some pcs increasing it above 100 will cause scratchy noise.
So it's louder but quality is crap.
There could be an option to add it to slider but I myself would never want that.
It's like normalize option on video players, where you can go up to 200 percent but the noise is terrible.
It's something that's put there for you to use it when you really need it every once in a while. Not all the time.

Last edited by woistemeinauto (2020-03-29 10:46:05)

Offline

Board footer

Powered by FluxBB