This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Gapless playback...

Tags: None
(comma "," separated)
User avatar
Scias
Registered Member
Posts
3
Karma
0
OS

Gapless playback...

Sun May 15, 2011 5:08 pm
I know this has been repeated many times already, but we're almost half 2011, and Amarok is still unable to do proper gapless playback or (cross)fading regardless of the used stable phonon-backend or the audio formats...

I know this is not directly Amarok devs fault but rather phonon ones, but how can you sleep at night knowing your so advanced music player fails to accomplish a so basic but very essential feature which is proper gapless playback. The last bug report (https://bugs.kde.org/show_bug.cgi?id=256734) is already 6 months old and nothing has been done about it yet...

Can't you make some pressure on the phonon devs ? Implement a temporary workaround for it ? Because this flaw is really ruining your whole player.
I have to use Clementine to avoid the stupid gaps between the tracks...
I don't know but please do something for god's love ! Amarok is great but this small thing makes it completely odd for a "modern" media player...

Thanks.
User avatar
apachelogger
KDE Developer
Posts
525
Karma
5
OS

Re: Gapless playback...

Sun May 15, 2011 9:43 pm
Awesome! We definitely could use some help.

If you don't know how to program C++/Qt/KDE yet, here are some book recommendations:
http://techbase.kde.org/Development/Fur ... tion#Books

Please find me as apachelogger in #phonon on irc.kde.org and we can start working on issues :)


Annoyed with bbcode since 1999.
User avatar
Dieter Schroeder
Registered Member
Posts
714
Karma
7
OS

Re: Gapless playback...

Mon May 16, 2011 6:26 pm
Must be some strange sense of Austrian humour. The request is indeed very old and all you can suggest is: Learn programming??
Des is fürn Orsch.

m0nk


If men could get pregnant, abortion would be a sacrament.
User avatar
Scias
Registered Member
Posts
3
Karma
0
OS

Re: Gapless playback...

Mon May 16, 2011 6:58 pm
apachelogger wrote:Awesome! We definitely could use some help.


First, sorry if I may have sounded harsh, it's not my genre to rant on Open-Source software, but here it comes from years of frustration and seeing other mostly less advanced open source or not music players doing it right...

Althrought I only know C and PHP and would not be any help here, but when I see that Phonon can switch several audio backends on the fly and is generally a great abstraction layer with a lot of advanced features, failing to properly use the GStreamer framework, seeing that Clementine and much more basic GStreamer audio players do everything properly and in the other side Amarok and its load of very advanced features fails because of a phonon issue no one seems to care about (reading the latest 6 months changelogs + the bug reports of phonon/phonon-gstreamer it seems to be the case).

The way you posted it, it seems it's a very difficult task to fix this crucial bug for all the audiophiles, but it's not like it hasn't been done yet elsewhere (hint: Clementine)...

So far the "best" backend to get gapless is the VLC one, but it's still bugged on many points (eg: seeking/stopping randomly works or is terribly laggy), gapless "works" but the 1st second of the next track is skipped so well it's not good yet.

EDIT :
Out of curiosity I went to browse the clementine (C++) sources.
Found this :
Code: Select all
void GstEngine::StartPreloading(const QUrl& url) {
  if (autocrossfade_enabled_) {
    // Have to create a new pipeline so we can crossfade between the two

    preload_pipeline_ = CreatePipeline(url);
    if (!preload_pipeline_)
      return;

    // We don't want to get metadata messages before the track starts playing -
    // we reconnect this in GstEngine::Load
    disconnect(preload_pipeline_.get(), SIGNAL(MetadataFound(Engine::SimpleMetaBundle)), this, 0);

    preloaded_url_ = url;
    preload_pipeline_->SetState(GST_STATE_PAUSED);
  } else {
    // No crossfading, so we can just queue the new URL in the existing
    // pipeline and get gapless playback (hopefully)
    if (current_pipeline_)
      current_pipeline_->SetNextUrl(url);
  }
}


here :

http://code.google.com/p/clementine-pla ... cpp?r=1409

Not saying it's right but if it could be any help...


Bookmarks



Who is online

Registered users: bancha, Bing [Bot], daret, Evergrowing, Google [Bot], lockheed, sandyvee, Sogou [Bot]