Giter Club home page Giter Club logo

pulseaudio-win32's Introduction

pulseaudio-win32

An up-to-date PulseAudio build for Windows with an installer, service, and other improvements.

Features

  • Various fixes and improvements.
  • Standalone.
  • Optional installer.
  • Can run as a Windows Service.
  • Working pactl/pacat.
  • Working modules.
  • Working auto-connection to user and system instances.
  • Working unix sockets for both user and system instances on Windows 10.
  • HTML documentation.
  • Works on Windows 7 and later.

Limitations

  • There are still some hard-coded paths which don't automatically relocate to the installation directory. This mainly affects the documentation.
  • Locale files aren't currently included.

Building

mkdir -p ./build &&
docker build --tag pulseaudio-win32 --build-arg "PAW32_VERSION=$(echo "$(git describe --always --tags --dirty || echo unknown)" | sed -e "s/^v//g")" ./src &&
docker save pulseaudio-win32 |
tar -xOf - --wildcards '*/layer.tar' |
tar -xvf - -C ./build

Usage

See the website.

Notes

While this repository is licensed under the MIT license, the icon and build output is licensed under the LGPL like PulseAudio itself (the PulseAudio build isn't linked to GPL libraries).

pulseaudio-win32's People

Contributors

pgaskin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pulseaudio-win32's Issues

is it possible to stream audio from windows to windows?

i want to stream sound from a windows (pulseaudio server) to a windows (pulseaudio client) but i can't hear sound from windows (pulseaudio server)

following steps were done:

  • running pulseaudio on windows (server ip 192.168.0.11) and windows (client ip 192.168.0.22)
  • on windows client executing pactl.exe load-module module-tunnel-source-new server=192.168.0.11

result:

  • the windows server shows a connection of the windows client, but no sound can be heared on the windows client.
: [(null)] ../../src/pulseaudio/src/pulsecore/client.c: Created 0 "Native client (TCP/IP client from 192.168.0.22:51060)"
: [(null)] ../../src/pulseaudio/src/pulsecore/protocol-native.c: Client authenticated anonymously.

is it possible that the windows server have to redirect somehow the audio signal to the soundcard driver? is this possible at all to get a remote stream from windows to windows? any advice?

Using a default.pa Causes PulseAudio to not Launch

I am attempting to setup PulseAudio to be a sink for my OpenHAB home automation server. (https://www.openhab.org/addons/bindings/pulseaudio/) but I'm running into a lot of issues. Firstly the windows build from the PulseAudio website will connect beautifully just by adding load-module module-cli-protocol-tcp to the default.pa and passing that in as a launch command but the audio received was being played way to fast so I tried to find a support page and I ended up on the Element chat room where no one knows anything about the windows builds haha but one guy found your site and I decided to start trying it instead but now I get a whole new set of issues.

If I enable the use default.pa or use a default.pa as a launch command I get a too many commands error and the server just wont start. I can not see any rhyme or reason to this either. If I disable it again and simply try to edit the system.pa I can get it workingish I'll post a different issue for those problems.

WASAPI

I'm going to look into creating a WASAPI module to allow for:

  • 1:1 output devices
  • 1:1 input devices
  • Loopback of system audio
  • Optional linkage of device volume with PA volume
  • Custom application labels in the mixer
  • Latency options
  • TODO

I've never worked with WASAPI nor created a PA module from scratch, so this might take some time to figure out.

Distribute 64 bit binaries

Hello,

First of all, thank you for building this. It's really great! The old "official" win32 port of pulse audio was really showing it's age.

Also, thank you for distributing the binaries so that people don't have to compile this themselves!

I was wondering if you have been able to get these to compile as a 64 bit application. Would it be possible for you to distribute the 64 bit version alongside the 32 bit one?

If it's too much trouble, do you think you could provide some guidance on how to compile this targeted for 64-bit windows?

Thank you again,
Chris

Windows Event Log integration

  • Figure out how the event log API works.
  • Decide whether to have PA itself create the event source if it doesn't exist or whether to leave this to the installer (I think logs will go into Application if the event source isn't found).
    • Allow all users to write to the event log when creating the event source.
  • Decide whether to make PA use the event log by default (it currently does this for systemd-journald).
  • Integrate it with pulseaudio/src/pulsecore/log.c.
  • Upstream the patch?

Pulseaudio for WSL configuration

Dear Patrick,
I am filing this issue after exhausting the following paths to solve my problem:

  • Changing variables one by one and testing the results,
  • Following 2 different threads on the web claiming that sound under WSL works,
  • WSL refers to wWSL2 witth updated Ubuntu 21.04,
  • Reinstalling Pulseaudio from scratch,

If you could help out with a working configuration if you happen to have one or clarify a bit more the following:
What configuration directory is used by the windows service? There are 3 possible places or more, where configuration files can be or are placed:

  • Program files folder with /ebc/...,
  • Program data folder with: pulseaudio mentioned in hte log output,
  • Administrator home folder .config/pulse/,

Which files should be modified to enable TCP protocol and allow connections from WSL. The WSL virtual machine is assigned a local network address from the pool in 172.16.0.0/12 - I found this vale in a few threads on the web.

Last but not least. Any hints about proper configuration on the WSL Linux side besides setting the $PULSE_SERVER environment variable to the assigned IpP address?

Thank you in advance for your time and help...
Pawel

windows as client to pipewire-pulse

Hi ,

i got pipewire-pulse running on debian bookworm , it should play audio.

i got your code running and connection is successful on Win11, but how can i select the audio source to be played on the remote server ?

regards and thanks for your effort,
Simon

Provide a MSI installer

  • Feature parity with the existing installer.
  • Eliminate the need for install-time patching of configuration files (done in 58f5e6d).
  • Ensure config files in *.{pa,conf}.d are preserved between updates/reinstalls.
  • Remove pasvcfw?

Unix socket support

  • Ensure Unix socket creation works.
  • Figure out a way to patch the system-wide local state dir to use ProgramData.
  • Test the user-specific state dir.
  • Fix auto-detection.
  • Add options to the installer?

Split from #2

PulseAudio Sink over CLI is Playing WAY to fast

With pulseaudio running on a windows 10 machine using module-cli-protocol-tcp to send TTS messages from openhab using (https://www.openhab.org/addons/bindings/pulseaudio/) I am receiving the audio clips at crazy play back speeds. Even reducing the playback to 1/4 speed is not understandable. While it may be easy to blame openhab the same messages play at a standard speed when sent to another speaker source and a wav played locally via pactl appears to play normally so presumably it has the most to do with the module-cli-protocol-tcp but I have also posted an issue with the bindings github (openhab/openhab-addons#11662). At the moment I can not find a way to verify who's causing the issue as I can't seem to figure out how to send a test sound to cli using telnet and putty.

module-native-protocol-tcp is using the wrong port

I am using PulseAudio to setup a sink source for an OpenHAB instance using this to connect (https://www.openhab.org/addons/bindings/pulseaudio/) and I've notice some oddities. By default PulseAudio should be using 4712 for module-cli-protocol-tcp and 4713 for module-native-protocol-tcp but your version appears to use 4712 for module-native-protocol-tcp and so when you enable module-cli-protocol-tcp with module-native-protocol-tcp it kind of bumps module-cli-protocol-tcp to 4713.

I know this because openhab can only connect using module-cli-protocol-tcp. When both module-cli-protocol-tcp and module-native-protocol-tcp are loaded openhab can only see the server on 4713. If I disable module-native-protocol-tcp I can only connect on 4712 and if I use the old windows version from the pulseaudio site it also connects on 4712. Unfortunately with module-native-protocol-tcp disabled I can't do any pactl commands as it uses that protocol and a lot of that openhab bindings code is hard coded to 4712 so I can see the server but I can't connect to a sink.

Now I have post an issue about the hardcoding to them (openhab/openhab-addons#11661) but unfortunately that doesn't mean there isn't an issue here to. The problem with this comes in the fact that if you try to define load-module module-native-protocol-tcp port=4712 which should fix it and allow me to have both running using the port argument, PulseAudios Server starts to act strange. Things will connect right quick like it is running fine but a pactl -s 127.0.0.1 list will time out and trying to send audio also appears to time out and neither show in the log. Now I tried to look through the win32 code to see what might be causing it but I can't find anything that should cause that behavior or the port change.

Better Windows Service integration

  • Move service logic directly into pulseaudio/src/daemon/main.c.
  • Decide whether to always attempt to create a service, or whether to put it behind a flag.
  • Maybe make PulseAudio see the system service as a system instance rather than a user instance. This would also eliminate the need for messing with config paths when creating the service.
    • Figure out the implications of PA's system flag.
  • Decide whether to keep the pasvc command.
  • Upstream the patch?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.