Giter VIP home page Giter VIP logo

Comments (10)

c3kkos avatar c3kkos commented on July 29, 2024

I've managed to fix it by dumb-editing the meson.build file, removing the check:

#if not cc.has_header('deadbeef/deadbeef.h')
#error('missing header: deadbeef.h')
#endif

This way the compiler do the job without any other complaints.

Said this,
i'm afraid i'm not having audio out from my devices. The pw patchway graph is correctly showing the DeadBeef source, connected to playbacks. DeadBeef logs show this:
ddbpw_play
ddbpw_init
format 16bit int 2ch 44100Hz channelmask=3
PipeWire: Stream state connecting
PipeWire: Stream state paused
PipeWire: Control Volume value[0] = 1.000000
PipeWire: Control Mute value[0] = 0.000000
PipeWire: Control Channel Volumes
PipeWire: Control Soft Mute value[0] = 0.000000
PipeWire: Control Soft Volumes
PipeWire: Control Monitor Mute value[0] = 0.000000
PipeWire: Control Monitor Volumes
PipeWire: Control Channel Volumes value[0] = 1.000000 value[1] = 1.000000

but playback timer is stuck, no audio. something's wrong.

from ddb_output_pw.

saivert avatar saivert commented on July 29, 2024

You are supposed to have the deadbeef development package installed. Something like deadbeef-devel or similar. The build script search standard include paths by default such as /usr/include/deadbeef and /usr/local/include/deadbeef.

Pipewire is now bundled with latest Deadbeef nightly and will be included with version 1.9.5 (currently in beta in case you were unaware.

As for your problem with outputting to Pipewire I have no idea. Recheck pipewire configuration.
Do you actually have other stuff playing through Pipewire on your system? Is it setup as sound server? Pipewire and Pulseaudio cannot coexist. You can install packages like pipewire-pulse to enable it as a sound server. I'm just throwing things out here as the information you have provided isn't enough to debug.

Try to download something like Helvum or qpwgraph and see if Deadbeef is connected to a sound output.

You can also get debug output by running Deadbeef with environment variable override: PIPEWIRE_DEBUG=D e.g. on command prompt:

$ PIPEWIRE_DEBUG=D deadbeef

from ddb_output_pw.

c3kkos avatar c3kkos commented on July 29, 2024

Hi and thanks for your support!

~$ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 62
Tile Size: 65472
User Name: x
Host Name: x
Server Name: PulseAudio (on PipeWire 0.3.63)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1b.0.pro-output-0
Default Source: alsa_input.pci-0000_00_1b.0.pro-input-0
Cookie: bb3c:22e1

Well it looks like after a reboot... everything's working..

There's a catch, though....

Playing a .dsf file through deadbeef (which rely upon ffmpeg decoding...) i got horrible sound

here's the pw-top:
ID QUANT RATE WAIT BUSY W/Q B/Q ERR FORMAT NAME
...
R 63 1024 48000 481,4us 48,1us 0,02 0,00 0 S32LE 2 48000 alsa_output.usb-FiiO_K3-00.pro-output-0
R 80 0 352800 24,6us 435,3us 0,00 0,02 0 F32LE 2 352800 + DeaDBeeF Music Player

there might be a problem in the resampling?

from ffmpeg's F32LE 2 352800 to pipewire output on alsa device, in S32LE 2 48000

and for convenience, since i'm new to the entire pipewire system... is there a way to disable the resampling?
I'm using wireplumber as session manager.

from ddb_output_pw.

c3kkos avatar c3kkos commented on July 29, 2024

I'm doing tests using the sample files, freely avalaible at oppo's:

https://www.oppodigital.com/hra/dsd-by-davidelias.aspx

I'm testing the one's name ""Vision of Her""

[DSF - DSD64]
[WAV - 24-bit, 88.2kHz Sampling]
[FLAC - 24-bit, 88.2kHz Sampling]
[WAV - 16-bit, 44.1kHz Sampling]
[MP3-320 - 320kHz, 44.1kHz]
[MQA - 24-bit, 352.8 kHz Sampling]

no issues but for dsd format. it sounds like its a ffmpeg conversion problem maybe.

from ddb_output_pw.

saivert avatar saivert commented on July 29, 2024

This is due to a bug in the pipewire plugin for deadbeef. I will fix it. The buffer length is too small.

from ddb_output_pw.

c3kkos avatar c3kkos commented on July 29, 2024

Ok. Thank you again.

As a last note, pipewire or not, deadbeef has some issue with DSD playback.

I can listen to dsd64, higher grade dsd are played at wrong speed and pitch.

from ddb_output_pw.

saivert avatar saivert commented on July 29, 2024

I have pushed a fix for the buffer size problem now.
I tested the "Vision of Her" DSD sample and it doesn't stutter on playback.

from ddb_output_pw.

c3kkos avatar c3kkos commented on July 29, 2024

I confirm DSD playback is fixed!

I had to edit once again the meson.build file, commenting out headers check.

This occours because i'm using linux mint. I've manually compiled and installed deadbeef (no .debs.. so... no dev package)

standard git'd package provides the files needed, but they must be pushed in.

~/ddb_output_pw$ cp /opt/deadbeef/include/deadbeef/ . -r

to let compile go straight.

maybe you could add this step in install instructions.

from ddb_output_pw.

saivert avatar saivert commented on July 29, 2024

Readme has been updated.

Btw. these are not install instructions. Regular users should not need to install things from source. This would have been available as a download eventually on Deadbeef's website (if not available as a distro package) if it wasn't decided to bundle it with Deadbeef.

from ddb_output_pw.

c3kkos avatar c3kkos commented on July 29, 2024

You are 100% right.

But i've noticed that sometimes, official .deb (ubuntu-ish) repos are not updated (or they don't have certain packages at all)

For example... you mentioned Helvum..

Helvum got NO .deb from official repos, and there are currently no PPAs to add, eventually.

I'm trying to compile it manually but i'm facing an issue (already discussed in their gitlab - its rust toolchain complaining about unstable features, so compile stops, hype!)

Everything that goes round this ecosystem, i mean pipewire/wireplumber/deadbeef/helvum is rather new and under active develop.

Difficulties are expected. And even though i'm a power user, for sure i'm not an expert!.

Thank you again for your work.

from ddb_output_pw.

Related Issues (8)

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.