Announcement

Collapse
No announcement yet.

[Announce] Music Similarity DSTM mixer

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • mark wollschlager
    replied
    Originally posted by cpd73
    Your ffmpeg is too old. Either update, or re-rebuild bliss-analyser from git.
    Thanks. At the risk of abusing you good nature, would re-rebuilding bliss-analyzer allow me to use the older ffmpeg utils?
    Or, could I run the bliss-analyze from another system with the current version of ffmpeg and then upload the result to my LMS server system?
    I really want to try this, but not rebuild and reconfigure my server and players.



    I moved this over to the correct thread, I posted in the wrong one while reading.
    Last edited by mark wollschlager; 2022-03-06, 03:57.

    Leave a comment:


  • cpd73
    replied
    Originally posted by mark wollschlager
    This project looks very promising to me, so I started following along.
    Got the plugins, got the bliss-analyzer for linux, changed the config.ini.
    Your ffmpeg is too old. Either update, or re-rebuild bliss-analyser from git.

    Leave a comment:


  • mark wollschlager
    replied
    This project looks very promising to me, so I started following along.
    Got the plugins, got the bliss-analyzer for linux, changed the config.ini.
    installed ffmpeg.
    But it looks like I might be stuck by my OS situation.
    When I run the bliss-analyze analyze I get this:
    Code:
    root@Awesome516:~# ./bliss-analyser analyze
    ./bliss-analyser: error while loading shared libraries: libavutil.so.56: cannot open shared object file: No such file or directory
    Decided to check the ffmpeg version:
    Code:
    root@Awesome516:~# ffmpeg -version
    ffmpeg version 3.4.4 Copyright (c) 2000-2018 the FFmpeg developers
    built with gcc 4.9.2 (Debian 4.9.2-10+deb8u1)
    configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc=cc --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-stripping --enable-small --disable-amd3dnow --disable-cuvid --disable-cuda --disable-bsfs --disable-ffserver --enable-avresample --disable-devices --disable-protocols --enable-protocol=file --enable-protocol=pipe --disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=dvbsub --enable-parser=dvdsub --enable-parser=flac --enable-parser=h261 --enable-parser=h263 --enable-parser=h264 --enable-parser=mjpeg --enable-parser=mlp --enable-parser=mpeg4video --enable-parser=mpegaudio --enable-parser=mpegvideo --enable-parser=vc1 --enable-parser=vorbis --enable-parser=vp3 --enable-parser=vp8 --disable-demuxers --enable-demuxer=aac --enable-demuxer=ac3 --enable-demuxer=aiff --enable-demuxer=asf --enable-demuxer=avi --enable-demuxer=dts --enable-demuxer=dv --enable-demuxer=eac3 --enable-demuxer=flac --enable-demuxer=flv --enable-demuxer=h261 --enable-demuxer=h263 --enable-demuxer=h264 --enable-demuxer=matroska --enable-demuxer=mjpeg --enable-demuxer=mov --enable-demuxer=m4v --enable-demuxer=mp3 --enable-demuxer=mpegps --enable-demuxer=mpegts --enable-demuxer=mpegtsraw --enable-demuxer=mpegvideo --enable-demuxer=ogg --enable-demuxer=rtsp --enable-demuxer=vc1 --enable-demuxer=wav --disable-decoders --enable-decoder=aac --enable-decoder=alac --enable-decoder=eac3 --enable-decoder=flac --enable-decoder=flv --enable-decoder=h264 --enable-decoder=mp3 --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=pcm_s16be --enable-decoder=pcm_s16le --enable-decoder=vorbis --enable-decoder=wmalossless --enable-decoder=wmapro --enable-decoder=wmav1 --enable-decoder=wmav2 --disable-muxers --enable-muxer=mp3 --enable-muxer=pcm_s16be --enable-muxer=pcm_s16le --disable-encoders --enable-libmp3lame --enable-encoder=libmp3lame --enable-encoder=pcm_s16be --enable-encoder=pcm_s16le --disable-filters --enable-filter=aresample
    libavutil      55. 78.100 / 55. 78.100
    libavcodec     57.107.100 / 57.107.100
    libavformat    57. 83.100 / 57. 83.100
    libavdevice    57. 10.100 / 57. 10.100
    libavfilter     6.107.100 /  6.107.100
    libavresample   3.  7.  0 /  3.  7.  0
    libswscale      4.  8.100 /  4.  8.100
    libswresample   2.  9.100 /  2.  9.100
    root@Awesome516:~#
    Any suggestions appreciated. I'm really not to keen on giving up this server platform yet

    Leave a comment:


  • chill
    replied
    Originally posted by cpd73
    As an aside, what is the benefit of FLAC+CUE as opposed to just splitting the FLAC into single FLAC tracks? FLAC handles gapless, no? Just curious...
    Probably no benefit. It's how I started ripping my library years ago, and it works just fine in LMS so I've continued the same way. And I can easily convert from this format to any other with a few simple commands. I think my motivation was that I could faithfully reproduce the original CD on a CD-R, but that's another pastime that's disappeared into history.

    EDIT: Ooh - I thought of a benefit! I can edit my tags with a text editor, rather than a dedicated tag editor.

    Leave a comment:


  • cpd73
    replied
    Originally posted by chill
    Wait, sorry - in my lossy library, FLAC+CUE albums are converted to (single)OGG+CUE equivalents, so I believe MusicSimilarity will still want to split them into individual MP3 files for the analysis. So no benefit in using the lossy library for the analysis after all.
    As an aside, what is the benefit of FLAC+CUE as opposed to just splitting the FLAC into single FLAC tracks? FLAC handles gapless, no? Just curious...

    Leave a comment:


  • cpd73
    replied
    Originally posted by chill
    Inspired by the Bliss DSTM announcement, I want to give MusicSimilarity a go with my library of mostly FLAC+CUE albums.

    I do maintain a 'lossy' form of my library which could be used for the analysis, to save what must be a time consuming analysis step of splitting the album into MP3 files. In my lossy library, every FLAC+CUE album is converted to individual OGG files, and any MP3 or OGG original files are just copied over. The folder structure is a copy of my main library. The tags in the OGG files are taken from the CUE files, so should match what's in my main LMS library. Does MusicSimilarity handle OGG files, and if I use this lossy library for the MusicSimilarity Bliss-only analysis, will the MusicSimilarity plugin find the corresponding tracks from the CUE files in my LMS library?
    Yess OGG files are handled. But you wont be able to use your names - as the code matches on filenames, not tags. Files in MusicSimilarity's DB will be named "source.CUE_TRACK.<start>-<end>.mp3" e.g. If your source file was "Artist/Album/Blah.flac" then the fist tack would be something like "Artist/Album/Blah.flac.CUE_TRACK.0-180.22.mp3" The start/stop times are taken from LMS's Library.db file.

    In the play queue the track's entry will be something like "file:///my/music/Artist/Album/Blah.flac#.0-180.22" This URL is passed to MusicSimilarity, which strips of the "file:///my/music/" prefix then converts the "#.0-180.22" part to locate the track in its DB.

    Leave a comment:


  • chill
    replied
    Originally posted by chill
    Inspired by the Bliss DSTM announcement, I want to give MusicSimilarity a go with my library of mostly FLAC+CUE albums.

    I do maintain a 'lossy' form of my library which could be used for the analysis, to save what must be a time consuming analysis step of splitting the album into MP3 files. In my lossy library, every FLAC+CUE album is converted to individual OGG files, and any MP3 or OGG original files are just copied over. The folder structure is a copy of my main library. The tags in the OGG files are taken from the CUE files, so should match what's in my main LMS library. Does MusicSimilarity handle OGG files, and if I use this lossy library for the MusicSimilarity Bliss-only analysis, will the MusicSimilarity plugin find the corresponding tracks from the CUE files in my LMS library?
    Wait, sorry - in my lossy library, FLAC+CUE albums are converted to (single)OGG+CUE equivalents, so I believe MusicSimilarity will still want to split them into individual MP3 files for the analysis. So no benefit in using the lossy library for the analysis after all.

    Leave a comment:


  • chill
    replied
    Inspired by the Bliss DSTM announcement, I want to give MusicSimilarity a go with my library of mostly FLAC+CUE albums.

    I do maintain a 'lossy' form of my library which could be used for the analysis, to save what must be a time consuming analysis step of splitting the album into MP3 files. In my lossy library, every FLAC+CUE album is converted to individual OGG files, and any MP3 or OGG original files are just copied over. The folder structure is a copy of my main library. The tags in the OGG files are taken from the CUE files, so should match what's in my main LMS library. Does MusicSimilarity handle OGG files, and if I use this lossy library for the MusicSimilarity Bliss-only analysis, will the MusicSimilarity plugin find the corresponding tracks from the CUE files in my LMS library?

    Leave a comment:


  • mruddo
    replied
    Originally posted by cpd73
    Yeah, as stated before I'm writing a new analyser and mixer for Bliss in Rust. The code is done, I just need to test some more. I also, thanks to some ideas I borrowed from Spotty, have it compiling for Linux, macOS, and Windows. I'm creating a new LMS plugin that starts the mixer when required - so no systemd service required. Should make the whole process easier to install and run. I've written a python script to convert the bliss analysis in music-similarity DB to the format used by this new plugin, so no need to re-analyse.
    Thanks for the update - sounds great. Sorry, but I've not yet had time to revisit my attempts to get the Bliss analysis working within WSL, and I'm still running with Essentia/Musly... but from the sounds of your post, I need not worry too much about prioritising that.

    Looking forward to giving the latest version a run when it's available!

    Leave a comment:


  • cpd73
    replied
    Originally posted by bakker_be
    I've been playing with this for some time now, and I agree that Bliss is probably the way to go with this. It seems to be more robust and faster in scanning and the mixes are entirely satisfactory IMO when compared to Spicefly SugarCube.
    Yeah, as stated before I'm writing a new analyser and mixer for Bliss in Rust. The code is done, I just need to test some more. I also, thanks to some ideas I borrowed from Spotty, have it compiling for Linux, macOS, and Windows. I'm creating a new LMS plugin that starts the mixer when required - so no systemd service required. Should make the whole process easier to install and run. I've written a python script to convert the bliss analysis in music-similarity DB to the format used by this new plugin, so no need to re-analyse.

    Leave a comment:


  • bakker_be
    replied
    I've been playing with this for some time now, and I agree that Bliss is probably the way to go with this. It seems to be more robust and faster in scanning and the mixes are entirely satisfactory IMO when compared to Spicefly SugarCube.

    Leave a comment:


  • bakker_be
    replied
    Originally posted by cpd73
    Ah, I'm guessing you have not analysed your tracks with Musly. The original idea was that Bliss would replace Musly - so, if bliss-analyse is found then Musly defaults to disabled. You need to edit config.json and add {"musly":{"enabled":true}} and then analyse again - this should only run the Musly analysis, as it should detect that the files have already been analysed with the others. ...or just don't use Musly.

    To be honest, as stated before, I'm not convinced mixing the analysis types is a good idea - I added the code just to experiment.
    OK, that does indeed seem to explain it. I've just added that parameter to config.json and it indeed now tells me that it's using Musly as analyser as well. I admit I didn't see that in the code/docs while trying to troubleshoot this thing.
    One advantage I already have from this: it's identified around 10K track in my collection which unexplicably had lost all tags. Solved now. If I hadn't wanted to play with the simalgo I never would've seen this

    Leave a comment:


  • cpd73
    replied
    Originally posted by bakker_be
    I seem to recall that it used to create a music-similarity.jukebox file. This file doesn't exist in my installation and doesn't seem to get created at restart either ...
    Ah, I'm guessing you have not analysed your tracks with Musly. The original idea was that Bliss would replace Musly - so, if bliss-analyse is found then Musly defaults to disabled. You need to edit config.json and add {"musly":{"enabled":true}} and then analyse again - this should only run the Musly analysis, as it should detect that the files have already been analysed with the others. ...or just don't use Musly.

    To be honest, as stated before, I'm not convinced mixing the analysis types is a good idea - I added the code just to experiment.

    Leave a comment:


  • bakker_be
    replied
    Originally posted by cpd73
    I've updated the code to list the number of tracks loaded for Essentia, Bliss, Musly. Perhaps this will allow you to debug the issue?
    I just did a git pull and set the simalgo. It seems to fail on Musly. If I set the Musly ratio to 0 it starts flawlessly. DEBUG output:
    Code:
    bart@p700:~/music-similarity$ ./music-similarity.py -l DEBUG
    2022-02-16 08:32:36 D (Defaults) musly.lib set to linux/x86-64/libmusly.so
    2022-02-16 08:32:36 D Init DB
    2022-02-16 08:32:36 D Start server
    2022-02-16 08:32:36 D Loading essentia attribs from DB
    2022-02-16 08:32:38 D 121511 track(s) loaded from Essentia
    2022-02-16 08:32:38 D Loading bliss from DB
    2022-02-16 08:32:39 D 121511 track(s) loaded from Bliss
    2022-02-16 08:32:39 D Init Musly
    2022-02-16 08:32:39 D Using: /home/bart/music-similarity/linux/x86-64/libmusly.so (b'libav')
    2022-02-16 08:32:39 D Musly init done
    Traceback (most recent call last):
      File "./music-similarity.py", line 43, in <module>
        app.start_app(args, cfg, jukebox_file)
      File "/home/bart/music-similarity/lib/app.py", line 930, in start_app
        similarity_app.init(args, config, jukebox_path)
      File "/home/bart/music-similarity/lib/app.py", line 77, in init
        _LOGGER.debug('%d track(s) loaded from Musly' % len(self.paths))
    TypeError: object of type 'NoneType' has no len()
    I seem to recall that it used to create a music-similarity.jukebox file. This file doesn't exist in my installation and doesn't seem to get created at restart either ...

    Additional info: If I set simalgo to musly it tells me it's loading tracks from Bliss and that similarity is through Bliss as well
    Last edited by bakker_be; 2022-02-16, 08:04.

    Leave a comment:


  • cpd73
    replied
    Originally posted by bakker_be
    The strange thing is that each individual setting works, but as soon as I want to use a mix it freaks out
    I've updated the code to list the number of tracks loaded for Essentia, Bliss, Musly. Perhaps this will allow you to debug the issue?

    Leave a comment:

Working...
X
😀
🥰
🤢
😎
😡
👍
👎