How to change the master volume in PulseAudio programmatically?












1















You can change the master volume within the terminal itself by using the command shown underneath.



amixer -D pulse sset Master 5%+


However, when I tried to execute the following code in Python, the following error is shown.



No protocol specified
xcb_connection_has_error() returned true
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

amixer: Mixer attach pulse error: Connection refused


And here is the code producing the error above.



os.system("amixer -D pulse sset Master 5%+")


How does one resolve that error?










share|improve this question

























  • The "unable to connect" error can mean: pulseaudio is not running or permissions issues exist. "pactl" may be more appropriate for controlling pulseaudio. Try determine what output you're trying to control by running: "pactl list sinks". Review the output of that command to determine the sink number. Then run something like "pactl set-sink-volue 3 +5%" (where "3" is the sink # on my machine for "Built-in Audio Analog Stereo"). One point to note: sink numbers can change across reboots, so it is worthwhile to research how to accomplish the same thing with sink names instead of sink numbers.

    – joat
    Jan 26 at 13:55











  • I have tried pactl also but getting same errors.@joat

    – Ghatak Sena
    Jan 26 at 13:57











  • Pulseaudio is running? Are you (or your script) running pactl/amixer as the logged in user (not root)? That's about all that I can think of.

    – joat
    Jan 26 at 14:14











  • Of course it's working in terminal but my main issue is that it's not working with Python code.@joat

    – Ghatak Sena
    Jan 26 at 14:21











  • It's must be a permissions issue. 'import os;os.system("pactl set-sink-mute 3 1")' works if I run it in a terminal or in a script. When you run amixer, do you have to select the sound card before doing anything else?

    – joat
    Jan 26 at 23:10
















1















You can change the master volume within the terminal itself by using the command shown underneath.



amixer -D pulse sset Master 5%+


However, when I tried to execute the following code in Python, the following error is shown.



No protocol specified
xcb_connection_has_error() returned true
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

amixer: Mixer attach pulse error: Connection refused


And here is the code producing the error above.



os.system("amixer -D pulse sset Master 5%+")


How does one resolve that error?










share|improve this question

























  • The "unable to connect" error can mean: pulseaudio is not running or permissions issues exist. "pactl" may be more appropriate for controlling pulseaudio. Try determine what output you're trying to control by running: "pactl list sinks". Review the output of that command to determine the sink number. Then run something like "pactl set-sink-volue 3 +5%" (where "3" is the sink # on my machine for "Built-in Audio Analog Stereo"). One point to note: sink numbers can change across reboots, so it is worthwhile to research how to accomplish the same thing with sink names instead of sink numbers.

    – joat
    Jan 26 at 13:55











  • I have tried pactl also but getting same errors.@joat

    – Ghatak Sena
    Jan 26 at 13:57











  • Pulseaudio is running? Are you (or your script) running pactl/amixer as the logged in user (not root)? That's about all that I can think of.

    – joat
    Jan 26 at 14:14











  • Of course it's working in terminal but my main issue is that it's not working with Python code.@joat

    – Ghatak Sena
    Jan 26 at 14:21











  • It's must be a permissions issue. 'import os;os.system("pactl set-sink-mute 3 1")' works if I run it in a terminal or in a script. When you run amixer, do you have to select the sound card before doing anything else?

    – joat
    Jan 26 at 23:10














1












1








1








You can change the master volume within the terminal itself by using the command shown underneath.



amixer -D pulse sset Master 5%+


However, when I tried to execute the following code in Python, the following error is shown.



No protocol specified
xcb_connection_has_error() returned true
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

amixer: Mixer attach pulse error: Connection refused


And here is the code producing the error above.



os.system("amixer -D pulse sset Master 5%+")


How does one resolve that error?










share|improve this question
















You can change the master volume within the terminal itself by using the command shown underneath.



amixer -D pulse sset Master 5%+


However, when I tried to execute the following code in Python, the following error is shown.



No protocol specified
xcb_connection_has_error() returned true
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

amixer: Mixer attach pulse error: Connection refused


And here is the code producing the error above.



os.system("amixer -D pulse sset Master 5%+")


How does one resolve that error?







python pulse-audio






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 26 at 17:37







user979752

















asked Jan 26 at 13:21









Ghatak SenaGhatak Sena

61




61













  • The "unable to connect" error can mean: pulseaudio is not running or permissions issues exist. "pactl" may be more appropriate for controlling pulseaudio. Try determine what output you're trying to control by running: "pactl list sinks". Review the output of that command to determine the sink number. Then run something like "pactl set-sink-volue 3 +5%" (where "3" is the sink # on my machine for "Built-in Audio Analog Stereo"). One point to note: sink numbers can change across reboots, so it is worthwhile to research how to accomplish the same thing with sink names instead of sink numbers.

    – joat
    Jan 26 at 13:55











  • I have tried pactl also but getting same errors.@joat

    – Ghatak Sena
    Jan 26 at 13:57











  • Pulseaudio is running? Are you (or your script) running pactl/amixer as the logged in user (not root)? That's about all that I can think of.

    – joat
    Jan 26 at 14:14











  • Of course it's working in terminal but my main issue is that it's not working with Python code.@joat

    – Ghatak Sena
    Jan 26 at 14:21











  • It's must be a permissions issue. 'import os;os.system("pactl set-sink-mute 3 1")' works if I run it in a terminal or in a script. When you run amixer, do you have to select the sound card before doing anything else?

    – joat
    Jan 26 at 23:10



















  • The "unable to connect" error can mean: pulseaudio is not running or permissions issues exist. "pactl" may be more appropriate for controlling pulseaudio. Try determine what output you're trying to control by running: "pactl list sinks". Review the output of that command to determine the sink number. Then run something like "pactl set-sink-volue 3 +5%" (where "3" is the sink # on my machine for "Built-in Audio Analog Stereo"). One point to note: sink numbers can change across reboots, so it is worthwhile to research how to accomplish the same thing with sink names instead of sink numbers.

    – joat
    Jan 26 at 13:55











  • I have tried pactl also but getting same errors.@joat

    – Ghatak Sena
    Jan 26 at 13:57











  • Pulseaudio is running? Are you (or your script) running pactl/amixer as the logged in user (not root)? That's about all that I can think of.

    – joat
    Jan 26 at 14:14











  • Of course it's working in terminal but my main issue is that it's not working with Python code.@joat

    – Ghatak Sena
    Jan 26 at 14:21











  • It's must be a permissions issue. 'import os;os.system("pactl set-sink-mute 3 1")' works if I run it in a terminal or in a script. When you run amixer, do you have to select the sound card before doing anything else?

    – joat
    Jan 26 at 23:10

















The "unable to connect" error can mean: pulseaudio is not running or permissions issues exist. "pactl" may be more appropriate for controlling pulseaudio. Try determine what output you're trying to control by running: "pactl list sinks". Review the output of that command to determine the sink number. Then run something like "pactl set-sink-volue 3 +5%" (where "3" is the sink # on my machine for "Built-in Audio Analog Stereo"). One point to note: sink numbers can change across reboots, so it is worthwhile to research how to accomplish the same thing with sink names instead of sink numbers.

– joat
Jan 26 at 13:55





The "unable to connect" error can mean: pulseaudio is not running or permissions issues exist. "pactl" may be more appropriate for controlling pulseaudio. Try determine what output you're trying to control by running: "pactl list sinks". Review the output of that command to determine the sink number. Then run something like "pactl set-sink-volue 3 +5%" (where "3" is the sink # on my machine for "Built-in Audio Analog Stereo"). One point to note: sink numbers can change across reboots, so it is worthwhile to research how to accomplish the same thing with sink names instead of sink numbers.

– joat
Jan 26 at 13:55













I have tried pactl also but getting same errors.@joat

– Ghatak Sena
Jan 26 at 13:57





I have tried pactl also but getting same errors.@joat

– Ghatak Sena
Jan 26 at 13:57













Pulseaudio is running? Are you (or your script) running pactl/amixer as the logged in user (not root)? That's about all that I can think of.

– joat
Jan 26 at 14:14





Pulseaudio is running? Are you (or your script) running pactl/amixer as the logged in user (not root)? That's about all that I can think of.

– joat
Jan 26 at 14:14













Of course it's working in terminal but my main issue is that it's not working with Python code.@joat

– Ghatak Sena
Jan 26 at 14:21





Of course it's working in terminal but my main issue is that it's not working with Python code.@joat

– Ghatak Sena
Jan 26 at 14:21













It's must be a permissions issue. 'import os;os.system("pactl set-sink-mute 3 1")' works if I run it in a terminal or in a script. When you run amixer, do you have to select the sound card before doing anything else?

– joat
Jan 26 at 23:10





It's must be a permissions issue. 'import os;os.system("pactl set-sink-mute 3 1")' works if I run it in a terminal or in a script. When you run amixer, do you have to select the sound card before doing anything else?

– joat
Jan 26 at 23:10










1 Answer
1






active

oldest

votes


















0














Finally, I got a solution to my own problem which is shown below



    import subprocess
proc = subprocess.Popen('/usr/bin/amixer sset Master 5%', shell=True, stdout=subprocess.PIPE)
proc.wait()





share|improve this answer























    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1398700%2fhow-to-change-the-master-volume-in-pulseaudio-programmatically%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Finally, I got a solution to my own problem which is shown below



        import subprocess
    proc = subprocess.Popen('/usr/bin/amixer sset Master 5%', shell=True, stdout=subprocess.PIPE)
    proc.wait()





    share|improve this answer




























      0














      Finally, I got a solution to my own problem which is shown below



          import subprocess
      proc = subprocess.Popen('/usr/bin/amixer sset Master 5%', shell=True, stdout=subprocess.PIPE)
      proc.wait()





      share|improve this answer


























        0












        0








        0







        Finally, I got a solution to my own problem which is shown below



            import subprocess
        proc = subprocess.Popen('/usr/bin/amixer sset Master 5%', shell=True, stdout=subprocess.PIPE)
        proc.wait()





        share|improve this answer













        Finally, I got a solution to my own problem which is shown below



            import subprocess
        proc = subprocess.Popen('/usr/bin/amixer sset Master 5%', shell=True, stdout=subprocess.PIPE)
        proc.wait()






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 27 at 11:34









        Ghatak SenaGhatak Sena

        61




        61






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Super User!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1398700%2fhow-to-change-the-master-volume-in-pulseaudio-programmatically%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

            Mangá

            Eduardo VII do Reino Unido