Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 28 17:55

    declension on master

    Playlist: bit more typing, redu… Libraries: never try pointless … (compare)

  • Nov 28 17:36
    declension labeled #3287
  • Nov 28 17:36
    declension edited #3283
  • Nov 28 17:35
    declension labeled #3292
  • Nov 28 17:35
    declension labeled #3292
  • Nov 28 17:33
    declension edited #3340
  • Nov 28 17:09
    Meriipu commented #3131
  • Nov 28 16:55
    declension commented #3131
  • Nov 28 15:52
    Meriipu commented #3131
  • Nov 28 15:52
    Meriipu commented #3131
  • Nov 28 14:47
    declension commented #3131
  • Nov 28 14:20
    Meriipu commented #3131
  • Nov 28 11:48
    declension commented #3131
  • Nov 28 11:45
    declension closed #1645
  • Nov 28 11:45
    declension commented #1645
  • Nov 28 11:37
    declension commented #3131
  • Nov 28 11:25
    declension commented #1179
  • Nov 28 11:20

    declension on master

    Tests: improve source scanning … (compare)

  • Nov 28 11:19

    declension on master

    Tests: improve source scanning … (compare)

  • Nov 28 10:37
    declension closed #2592
Nick Boultbee
@declension
Yeah that code doesn't work sadly
TypeError: Gst.Bin.add() takes exactly 2 arguments (11 given)
Christoph Reiter
@lazka
eh
Nick Boultbee
@declension
There seem to be such a mix of C, half C, pre-1.0 Gstreamer Python and other stuff out there it's really hard to know what to believe
Christoph Reiter
@lazka
@declension might depend on the gst-python overrides
which we disable in QL, IIRC, to avoid changing signatures
Nick Boultbee
@declension
hmm though i'm just running that as a script (although in the same venv I guess)
Christoph Reiter
@lazka
it's called python3-gst-1.0 in debian
it extends some API and add some types not accessible via gobject introspection
Nick Boultbee
@declension
oh, so maybe that repo uses it I guess?
Christoph Reiter
@lazka
maybe
Nick Boultbee
@declension
It's 5 years since last update though
Christoph Reiter
@lazka
the tutorial? yeah.. unclear. ideally there was no API break since then
Nick Boultbee
@declension
@lazka you were right, thanks - installing python3-gst-1.0 magically makes it start working
Christoph Reiter
@lazka
:+1:
Nick Boultbee
@declension
though I guess we don't want that in QL
Nick Boultbee
@declension
One question - why do we add a GhostPad to the bufbin: Gst.Bin? I don't really get that whole bit
Christoph Reiter
@lazka
@declension I think so playbin knows where to send things to "playbin -> [pad, elements, pulse]"
Nick Boultbee
@declension
Oh right so you can't connect a playbin directly to a chain of elements
Christoph Reiter
@lazka
the bin abstracts the contents away
btw, there is playbin3 now, though I haven't tried it
Nick Boultbee
@declension
Oh, exciting
Christoph Reiter
@lazka
seems to be mostly about easier stream switching and reusing of things when the source changes
Nick Boultbee
@declension
But my plan is roughly
                /->- Queue -> Spectrum -> Fakesink etc 
Playbin ->- Tee 
                \->- Queue ->  QL pipeline elements -> Pulsesink
Christoph Reiter
@lazka
I see, seems useful
though I don't find spectrum analysis very useful for music/audio... except for the visual art aspect ;)
lazka @lazka is off to work
Nick Boultbee
@declension

(Yes - entirely for the visual side :grin: , not really useful unless you're sound-engineering I guess).

FWIW finally got the split pipeline working(ish) but pausing froze the playbin (skipping works, but rebuilds the pipeline AIUI).

Anyway, realised that Spectrum etc are identity (or whatever, basically sink -> src) pipeline elements, so you can just put them in the middle of a normal pipeline anyway :grimacing: which of course is more reliable. Only works for simpler things of course.

The real blocker turned out to be be Gst.ValueArray support in Python Gobject (or something) is broken; luckily Gst.ValueList is OK, but this means no multi-dim data back from Spectrum :disappointed:
Christoph Reiter
@lazka
@declension our gst plugins basically just do that, adding them to the output
@declension ValueArray is afair something gst-python fixes
so we can depend on it if we want
Nick Boultbee
@declension
Oh, sweet. Yes it did seem to be quite useful when I looked at the examples more
we'd need to detect if it's available somehow and error out if not though
Nick Boultbee
@declension
Managed to get a proof-of-concept OpenGL pipeline running (separately) with shader uniforms sent from bus messages, but the spectrum data is less directly usable than I was hoping (not smoothed). level is more configurable at least but I think the only way a decent solution of quodlibet/quodlibet#3445 would work is a custom pipeline plugin that "renders" the raw audio stream itself as GLTexture
Nick Boultbee
@declension

we'd need to detect if it's available somehow and error out if not though

Do you mean for plugins or the whole of QL?

Christoph Reiter
@lazka
at least back then it also changed API, so all or nothing. Maybe it has changed since then
it would be easier for testing to not make it optional at least
Nick Boultbee
@declension
Yeah agreed. OK so maybe worth trying to include normally and removing that check / remove code, to see what breaks
Christoph Reiter
@lazka
yeah (but we also need a check to see if it's missing.. not sure how)
Nick Boultbee
@declension
Maybe deliberately doing something that fails without the library and catching that Exception would work (so long as we can guarantee that exception would happen)
David Jorgensen
@davejorg
Thank you to everyone who is contributing to Quod Libet! I've been using it for the last few months and it is perfect for my use case - organizing a large library efficiently.
Nick Boultbee
@declension
Thanks @davejorg , good to hear! Publicity is not something we do well, how did you find out about QL?
David Jorgensen
@davejorg
Welcome Nick! I cant remember exactly. It was likely a combination of google search and trying every single application I could find and being dissapointed with all of them until using Quod Libet. It does everything that matters correctly.
David Jorgensen
@davejorg
My one reccomendation would be to make it even clearer in the docs how changing song paths will break playlists unless the paths in the playlists file are updated. This makes sense in retrospect, but I had a setting turned on automatically scanned and updated my library. So I lost some songs id organized and wasnt sure why or which ones. I now back up those important files using git just incase.
David Jorgensen
@davejorg
I have an idea of how this could be solved for all future user encounters with it if you are open to hearing it. Its not a big deal for me now that I understand how the playlist files work. However, it could save future users a some pain of not realizing which songs they’ve mistakenly/unknowingly removed from their playlists..
Nick Boultbee
@declension
@davejorg thanks for the feedback, and please do share your joy on socials etc to make QL easier to find for others :grin:
Nick Boultbee
@declension
As to the playlist, yes, it's been a sore point for... almost a decade now. See quodlibet/quodlibet#708 and linked issues. Some progress on underlying blockers, but none at the top level quite yet, so yes documentation improvements would be good :thumbsup: