Home of the Squeezebox™ & Transporter® network music players.
Page 2 of 4 FirstFirst 1234 LastLast
Results 11 to 20 of 36
  1. #11
    Senior Member bakker_be's Avatar
    Join Date
    May 2009
    Location
    Kwaadmechelen, Belgium
    Posts
    670
    Hmmm, something seems wrong at my end. Probably something I've not done correctly or misunderstood
    I'm getting this:
    Code:
    bart@up-server:~/LMSmusly-0.0.1/src$ ./lmsmusly.py --db-path /home/bart/musicip analyze /mnt/music/
    INFO:__main__:database: /home/bart/musicip/lmsmusly.db
    DEBUG:lmsmusly.libmusly.musly:musly init done
    DEBUG:__main__:analyze: input: /mnt/music/ rep: None
    DEBUG:lmsmusly.utils.tools:get_files_dir: 119591 files from /mnt/music/
    INFO:lmsmusly.libmusly.musly:analyze_files: 119591 files to analyze
    DEBUG:lmsmusly.libmusly.musly:file #0: /mnt/music/John Legend/Love In The Future/12-Wanna Be Loved.flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: not found in DB: /mnt/music/John Legend/Love In The Future/12-Wanna Be Loved.flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: mtrack = <lmsmusly.libmusly.musly.c_float_Array_351 object at 0x7f8224239ea0>
    DEBUG:lmsmusly.libmusly.musly:file #1: /mnt/music/John Legend/Love In The Future/01-Love In The Future (Intro).flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: not found in DB: /mnt/music/John Legend/Love In The Future/01-Love In The Future (Intro).flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: mtrack = <lmsmusly.libmusly.musly.c_float_Array_351 object at 0x7f8223201d90>
    DEBUG:lmsmusly.libmusly.musly:file #2: /mnt/music/John Legend/Love In The Future/10-What If I Told You (Interlude).flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: not found in DB: /mnt/music/John Legend/Love In The Future/10-What If I Told You (Interlude).flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: mtrack = <lmsmusly.libmusly.musly.c_float_Array_351 object at 0x7f822320d598>
    DEBUG:lmsmusly.libmusly.musly:file #3: /mnt/music/John Legend/Love In The Future/18-Bridge Over Troubled Water (Li.flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: not found in DB: /mnt/music/John Legend/Love In The Future/18-Bridge Over Troubled Water (Li.flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: mtrack = <lmsmusly.libmusly.musly.c_float_Array_351 object at 0x7f822320d950>
    DEBUG:lmsmusly.libmusly.musly:file #4: /mnt/music/John Legend/Love In The Future/15-Asylum.flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: not found in DB: /mnt/music/John Legend/Love In The Future/15-Asylum.flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: mtrack = <lmsmusly.libmusly.musly.c_float_Array_351 object at 0x7f82232189d8>
    DEBUG:lmsmusly.libmusly.musly:file #5: /mnt/music/John Legend/Love In The Future/20-All Of Me (Live).flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: not found in DB: /mnt/music/John Legend/Love In The Future/20-All Of Me (Live).flac
    It keeps on going like this. The lmsmusly.db is created where I tell it to be, so it's not a write permission issue. When I look at it with an SQLite browser, it contains 3 empty tables: jukebox, sqlite_sequence and tracks, as well as related indices.
    Main System: Touch; Marantz SR-5004 + TMA Premium 905 + TMA Premium 901 + Teufel Ultima 20 Mk 2 + BK Monolith+ FF + Lenovo T460 + Kodi + Pioneer PDP-LX5090H
    Workshop: iPad 32GB Wifi + Squeezepad (local playback activated)
    Wherever needed: Acer Iconia Tab A700 + Squeezeplayer
    Kitchen: iPhone 5s + iPeng (local playback activated) + NAD 312 + Teufel Ultima 20 Mk 2
    Headphone (cozy corner): Lenovo T550 + Squeezelite-X + Cyrus Soundkey + Topping A30 + Focal Elear
    Car: TBC ...

  2. #12
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    736
    Quote Originally Posted by bakker_be View Post
    Hmmm, something seems wrong at my end.
    Code:
    bart@up-server:~/LMSmusly-0.0.1/src$ ./lmsmusly.py --db-path /home/bart/musicip analyze /mnt/music/
    INFO:__main__:database: /home/bart/musicip/lmsmusly.db
    DEBUG:lmsmusly.libmusly.musly:musly init done
    DEBUG:__main__:analyze: input: /mnt/music/ rep: None
    DEBUG:lmsmusly.utils.tools:get_files_dir: 119591 files from /mnt/music/
    INFO:lmsmusly.libmusly.musly:analyze_files: 119591 files to analyze
    DEBUG:lmsmusly.libmusly.musly:file #0: /mnt/music/John Legend/Love In The Future/12-Wanna Be Loved.flac
    DEBUG:lmsmusly.libmusly.musly:analyze_files: not found in DB: /mnt/music/John Legend/Love In The Future/12-Wanna Be Loved.flac
    It keeps on going like this.
    Looks fine to me, this is just some debug output.
    You can switch it off with --log-level INFO (which should be the default anyway - I'll change that)

    The lmsmusly.db is created where I tell it to be, so it's not a write permission issue. When I look at it with an SQLite browser, it contains 3 empty tables: jukebox, sqlite_sequence and tracks, as well as related indices.
    The database only gets populated after the complete analysis is done.
    I'd suggest you start with a smaller number of tracks and check if it works.
    It'll be interesting to see how well it scales to that large a number of tracks (I've only tested with ~3000), especially wrt startup time (however, the next version will hopefully include a feature which will speed this up significantly)

  3. #13
    Senior Member bakker_be's Avatar
    Join Date
    May 2009
    Location
    Kwaadmechelen, Belgium
    Posts
    670
    OK, thanks. I'll try a smaller batch before relaunching the whole enchillada and be patient for it to complete then
    Main System: Touch; Marantz SR-5004 + TMA Premium 905 + TMA Premium 901 + Teufel Ultima 20 Mk 2 + BK Monolith+ FF + Lenovo T460 + Kodi + Pioneer PDP-LX5090H
    Workshop: iPad 32GB Wifi + Squeezepad (local playback activated)
    Wherever needed: Acer Iconia Tab A700 + Squeezeplayer
    Kitchen: iPhone 5s + iPeng (local playback activated) + NAD 312 + Teufel Ultima 20 Mk 2
    Headphone (cozy corner): Lenovo T550 + Squeezelite-X + Cyrus Soundkey + Topping A30 + Focal Elear
    Car: TBC ...

  4. #14
    Member srasher's Avatar
    Join Date
    Jun 2006
    Location
    Bochum, Germany
    Posts
    85
    Quote Originally Posted by srasher View Post
    Then lmsmusly.py works from the command line. Great!

    Next step will be to include it into LMS, will try this tomorrow.

    Cheers,
    Seb
    Well, I got mixed results for that:

    1. Installation on the ODroid:
    Getting it to run the playlist generation on the Odroid wasn't possible for me with medium effort. python3-requests could only be installed on Ubuntu 14.04 (max2play's latest available version base for the U3) in a compatible version (> 2.4.2) by using PIP. That was somehow OK. After several minor issues, I reached a dead end due to some other command used inside lmsmusly.py only working with >= Python 3.5. Trying to install that beside the "default" 3.4 version on the Odroid lead to dependency issues in apt, so at some point I gave up.

    2. Generated playlist contents:
    My next try was to let lmsmusly.py run on the x86_64 machine. Not a viable solution for everyday use but OK for trials in the beginning or for the "Party only" use case. Well, it doesn't show exactly the results that I had hoped for. First it took rather minutes than seconds to generate a 20 song static playlist addition based on the first song of the current playlist (one of the examples on the LMSmusly web page). It generates them, but the mix is rather strange. Within those 20 songs (and I tried 5 or 6 times with always different seed tracks) it never had less than 5 songs from the same album as the seed track. The additional songs then most of the time had a majority of songs from the same artist. And then there always where one or two songs that were totally "off". Example: when starting a playlist with Alice Cooper, I got 14 Alice Cooper songs, 7 from the same album, one from The Pogues, one from AC/DC, one from Deep Purple, one from Aerosmith (that's all fine), one song from Cradle of Filth (Black Metal, totally off genre-wise) and one from Cindy Lauper (well, discussable ;-)). Similar mix results with other seed tracks.

    While the Cradle of Filth song might be something like a glitch, maybe caused by the 30 seconds analysis time window or something, the general distribution of the tracks was not what I had expected. Statistics: I have analyzed ~25000 songs from 2200 albums, wide variety of genres from Pop to Death Metal. All of the seed tracks "main genre's" have at least 100 albums within the collection, mostly from not less than 20 artists.

    I know that the generation isn't based on metadata at all, still the genre and artist distribution is something I would look at to judge the "quality" of the mix ;-)

    Maybe something went strange in my analysis of the tracks (left everything at default in the related config.py).

    I think it is a very interesting tool, especially given the hassle that MusicIP usage nowadays generates. Will do more trials soon.

    Thanks for your efforts anyway, Roland! Much appreciated.

    Cheers,
    Seb
    "The only word I know is 'Grunt' - and I can't spell it" (R.I.P. D.A.)

  5. #15
    Senior Member bakker_be's Avatar
    Join Date
    May 2009
    Location
    Kwaadmechelen, Belgium
    Posts
    670
    Since the machine which will host this, along with my LMS and other assorted duties in my home network, is running completely headless I'm doing everything through Putty from my laptop. This of course means that it's not always connected to my home network, so the session gets interrupted and I don't know wether it's finished, nor how long it took to run To alleviate these points I've done 2 things:
    1. I tell lmsmusly.py to store the DB in the root of my music directory. If it exceeds the initial 7KB of creation, the process has run
    2. I've modified the logging.basicConfig to write the log to the same location.

    Since this is the very first time I'm modifying anything Python, it's not really what I'd like, but it does the job.
    Code:
    logging.basicConfig(level=args.log_level,
    		format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
    		datefmt='%Y-%m-%d %H:%M:%S',
    		filename= config.MUSLY_DBPATH + '/' + time.strftime('%Y%m%d%H%M%S') + '_lmsmusly.log',
    		filemode='w')
    Ideally I'd like to have it still send the defined level to stdout, while simultaneously writing a complete DEBUG log to the file, but thats quite a bit above my competences at the moment. I believe I should create a second logging instance to achieve this, which should then take its level from the command arguments, while this one gets set to DEBUG statically, but I'm afraid I don't understand Python well enough as yet to see the ramifications of this approach.
    Main System: Touch; Marantz SR-5004 + TMA Premium 905 + TMA Premium 901 + Teufel Ultima 20 Mk 2 + BK Monolith+ FF + Lenovo T460 + Kodi + Pioneer PDP-LX5090H
    Workshop: iPad 32GB Wifi + Squeezepad (local playback activated)
    Wherever needed: Acer Iconia Tab A700 + Squeezeplayer
    Kitchen: iPhone 5s + iPeng (local playback activated) + NAD 312 + Teufel Ultima 20 Mk 2
    Headphone (cozy corner): Lenovo T550 + Squeezelite-X + Cyrus Soundkey + Topping A30 + Focal Elear
    Car: TBC ...

  6. #16
    Senior Member bakker_be's Avatar
    Join Date
    May 2009
    Location
    Kwaadmechelen, Belgium
    Posts
    670
    Quote Originally Posted by srasher View Post
    ... It generates them, but the mix is rather strange. Within those 20 songs (and I tried 5 or 6 times with always different seed tracks) it never had less than 5 songs from the same album as the seed track. The additional songs then most of the time had a majority of songs from the same artist. And then there always where one or two songs that were totally "off". Example: when starting a playlist with Alice Cooper, I got 14 Alice Cooper songs, 7 from the same album, one from The Pogues, one from AC/DC, one from Deep Purple, one from Aerosmith (that's all fine), one song from Cradle of Filth (Black Metal, totally off genre-wise) and one from Cindy Lauper (well, discussable ;-)). Similar mix results with other seed tracks.

    While the Cradle of Filth song might be something like a glitch, maybe caused by the 30 seconds analysis time window or something, the general distribution of the tracks was not what I had expected. Statistics: I have analyzed ~25000 songs from 2200 albums, wide variety of genres from Pop to Death Metal. All of the seed tracks "main genre's" have at least 100 albums within the collection, mostly from not less than 20 artists ...
    Seb
    Hey Seb,
    Some questions:
    • Did you listen to the generated playlist?
    • Apart from the frequent repetion of the same artist/album, was it fine in the sense that it sounded coherent, making abstraction of the genre itself?
    • are you at all happy with the way e.g. Spotify, Tidal, Roon generate "dynamic" playlists? As what you seemingly want from lmsmusly is exactly what's wrong with those IMO. They focus to hard on genre and not how a song sounds. To me there's nothing wrong with putting a good country song, some Creedence Clearwater Revival and e.g. a track from Tesla's "Five Man Acoustical Jam" next to one another, as they do sound similar. This to me was the strength of MusicIP: it went all over my collection, regardless of tagging, but always acoustically coherent.
    Main System: Touch; Marantz SR-5004 + TMA Premium 905 + TMA Premium 901 + Teufel Ultima 20 Mk 2 + BK Monolith+ FF + Lenovo T460 + Kodi + Pioneer PDP-LX5090H
    Workshop: iPad 32GB Wifi + Squeezepad (local playback activated)
    Wherever needed: Acer Iconia Tab A700 + Squeezeplayer
    Kitchen: iPhone 5s + iPeng (local playback activated) + NAD 312 + Teufel Ultima 20 Mk 2
    Headphone (cozy corner): Lenovo T550 + Squeezelite-X + Cyrus Soundkey + Topping A30 + Focal Elear
    Car: TBC ...

  7. #17
    I have a problem with the dynamic mix. My database contains 156000 flac and flac24 tracks. LMS runs on a vm with four cores and 4 GB ram.

    The creation of the mix needs 12 minutes to finish and it doesn┬┤t matter what seed track I use, I get always "Amy Winehouse - Back to Black" flac24 tracks. Always the same album. If I jump to the last track, I get the same tracks again.

    The static mix works without any problem, but it also needs about 12 minutes to finish and uses 100% cpu on one core for this time.
    2x Transporter, 4x Touch, 5x Radio, H/K Onyx (AirPlay-Bridge), Marantz Consolette (AirPlay-Bridge), iPhone 6 (iPeng), iMac-5k (SqueezePlay)

  8. #18
    Member srasher's Avatar
    Join Date
    Jun 2006
    Location
    Bochum, Germany
    Posts
    85
    Quote Originally Posted by bakker_be View Post
    Hey Seb,
    Hi,

    Quote Originally Posted by bakker_be View Post
    • Did you listen to the generated playlist?
    Yes, I did. And apart from that, there was no material included that I hadn't been very "aware" of, so I actually pretty much know how those songs sound.

    Quote Originally Posted by bakker_be View Post
    • Apart from the frequent repetion of the same artist/album, was it fine in the sense that it sounded coherent, making abstraction of the genre itself?
    Mostly, yes. Apart from that one/two songs that don't fit at all. Maybe one could argue that they sound more or less coherent in the sense that for example the Black Metal style song was from the more "catchy" end of that genre's spectrum. Still, it was about screeching/growling vocals compared to "normal" Rock voice style vocals in the seed and most other tracks. So, well, pretty OK with some abnormalities, I would say.

    Quote Originally Posted by bakker_be View Post
    • are you at all happy with the way e.g. Spotify, Tidal, Roon generate "dynamic" playlists? As what you seemingly want from lmsmusly is exactly what's wrong with those IMO. They focus to hard on genre and not how a song sounds. To me there's nothing wrong with putting a good country song, some Creedence Clearwater Revival and e.g. a track from Tesla's "Five Man Acoustical Jam" next to one another, as they do sound similar. This to me was the strength of MusicIP: it went all over my collection, regardless of tagging, but always acoustically coherent.
    Not at all happy with those "dynamic" playlists (though I nowadays only rarely try one of them after initial disappointment.
    You're right, lmsmusly was/is a big hope for me to get to something MusicIP-like when it comes to generating "automated/dynamic" playlists. And I am not totally disappointed with it, I just think that something about the way it mixes is not yet ready/right. I know that "true" random looks less random to humans than "controlled" random. Still the "partitioning" of the generated playlist was odd in my view.

    To be honest, my real dream application is something else:
    Based on some MusicIP/musly-like mixing, I would like to be able to generate dynamic playlists that come close to a very good DJ, but for a less "closed"/consistent audience. Meaning: going through a collection of extremely big spectrum of music (I always refer to it as "from Nena to Napalm Death") that my wife and I have collected, I would like to get an "slowly oscillating style" type of mix. E.g. starting of with a Hard Rock track, going over to Classic Rock/Rock'n'Roll after some tracks, proceeding to Pop, coming over whatever iterations to even Death or Black Metal. All with some "coherence" within each bunch of 4-5 tracks, having slow/soft transitions.

    MusicIP was relatively close, but seems to have its limits when it comes to opening the tracks taken into account over all possible styles of the collection. Plus, it doesn't do "soft transitions" in the sense I tried to explain above in a very clever way in my opinion.

    Hard task, I know, still I dream of getting there some day ;-)
    "The only word I know is 'Grunt' - and I can't spell it" (R.I.P. D.A.)

  9. #19
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    736
    Quote Originally Posted by srasher View Post
    1. Installation on the ODroid:
    Getting it to run the playlist generation on the Odroid wasn't possible for me with medium effort. python3-requests could only be installed on Ubuntu 14.04 (max2play's latest available version base for the U3) in a compatible version (> 2.4.2) by using PIP. That was somehow OK. After several minor issues, I reached a dead end due to some other command used inside lmsmusly.py only working with >= Python 3.5. Trying to install that beside the "default" 3.4 version on the Odroid lead to dependency issues in apt, so at some point I gave up.
    If you can tell me which commands are only working with >= Python 3.5, I can see if there's a workaround.
    Meanwhile, I'd suggest building python 3.6 yourself, and install it into /opt/python3.6. Should be simple, all the dependencies will already be available (some -dev packages will be needed for the compilation).

    Within those 20 songs (and I tried 5 or 6 times with always different seed tracks) it never had less than 5 songs from the same album as the seed track. The additional songs then most of the time had a majority of songs from the same artist. And then there always where one or two songs that were totally "off".
    Well, this goes to show that people have very different expectations. For me, a playlist with tracks from the same artist / album is exactly what I want.
    My experience is that for some music the results are really very focused (e.g. for some Pixies tracks, I get 70% Pixies, 10% Frank Black (singer of the Pixies), 10% Breeders (band of bass player of the Pixies), 10% very similar stuff), for some it's more varied (but still very similar, e.g. for a classical track, I get classical, neo classical, minimal classic, film scores, neo folk, post rock), and others are more varied still (but still not really this dissimilar - e.g. industrial rock instead of indie rock)
    And yes, sometimes an "inappropiate" track comes up, but nothing really that jarring (e.g a slow song, although the seed was fast - not sure how much speed is taken into account).

    However, it seems you want actually more variety. You could check if lower-ranked results are more to your liking (they are sorted by how similar they are), and it would be possibe to e.g. get 20 results, and queue 11-20.

  10. #20
    Senior Member
    Join Date
    Aug 2012
    Location
    Austria
    Posts
    736
    Quote Originally Posted by bakker_be View Post
    Since the machine which will host this, along with my LMS and other assorted duties in my home network, is running completely headless I'm doing everything through Putty from my laptop. This of course means that it's not always connected to my home network, so the session gets interrupted and I don't know wether it's finished, nor how long it took to run
    I'd suggest either using nohup (which will keep the process running after you log out), or tmux / GNU screen (which let you detach / re-attach your terminal session).
    In the latter case, set the log to debug, pipe the output to tee and grep for INFO, then you can easily have debug to a file and info to the screen without any fiddling with the code.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •