Announcement

Collapse
No announcement yet.

[Announce] Essentia Integration - music classification (moods, genres, ...)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [Announce] Essentia Integration - music classification (moods, genres, ...)

    > FWIW, I noticed the updates of LMS Essentia Integration plugin required
    > me to restart the LMS service twice before it worked smoothly (the
    > latest update v0.0.5 even three times).


    Are you running LMS < 7.9 or some older version of 7.9? Previously LMS
    didn't wait for the plugin to be downloaded before asking the user to
    restart. Just give it a minute or two before the restart, and it should
    work first time. 7.9.1 would wait until it has finished downloading
    before prompting you to restart.

    --

    Michael
    Various SW: Web Interface | Text Interface | Playlist Editor / Generator | Music Classification | Similar Music | Announce | EventTrigger | Ambient Noise Mixer | DB Optimizer | Image Enhancer | Chiptunes | LMSlib2go | ...
    Various HowTos: build a self-contained LMS | Bluetooth/ALSA | Control LMS with any device | ...

    #2
    [Announce] Essentia Integration - music classification (moods, genres, ...)

    Essentia is a music analysis framework, capable of (among lots of other things) statistical classification of music (e.g. by moods, genres, danceability, timbre, ...)

    The Essentia Integration plugin enables importing Essentia's results into the LMS database, making them available to be used by LMS-based applications / plugins (currently, extGUI4LMS and the LMS Playlist Editor).

    Details and installation / usage instructions can be found on the homepage.
    Last edited by Roland0; 2017-12-05, 16:15.
    Various SW: Web Interface | Text Interface | Playlist Editor / Generator | Music Classification | Similar Music | Announce | EventTrigger | Ambient Noise Mixer | DB Optimizer | Image Enhancer | Chiptunes | LMSlib2go | ...
    Various HowTos: build a self-contained LMS | Bluetooth/ALSA | Control LMS with any device | ...

    Comment


      #3
      I like this very much.........!


      Transcoded from Matt's brain by Tapatalk
      --
      Hardware: 3x Touch, 1x Radio, 2x Receivers, 1 HP Microserver NAS with Debian+LMS 7.9.0
      Music: ~1300 CDs, as 450 GB of 16/44k FLACs. No less than 3x 24/44k albums..

      Comment


        #4
        error message in process ste SVM models: Unable to load library icui18n

        Hi,
        I'm analyzing my flac collection using the LMS Essentia software, but I am a bit confused about an error message that appears for every file. I'm running the software on an x86_64 linux Mint 18 machine, accessing the music files via an NFS mount. Since I have 24000 flac files I decided to separate the analysis and the upload so I can check the results before I submit it to the LMS database. Here's the command line:
        ./ess-analyze.sh -o analyze -s "s#/network/music#/local/volfram1/wav#" -v -j /home/byjo/bin/essentia/jsons -m /network/music/Filmmusik

        Here's the console output for a flac file:

        Code:
        Writing results to file /home/byjo/bin/essentia/jsons/_local_volfram1_wav_Klassisk_Rachmaninov - Piano Concertos Nos. 2 and 3; Prelude in E flat etc (192-24)_07-Prelude in E flat, Op.23, No.6.flac.json.tmp
        Process step: Read metadata
        Process step: Compute md5 audio hash and codec
        Process step: Replay gain
        [   INFO   ] On connection Resample::signal → Trimmer::signal:
        [   INFO   ] BUFFER SIZE MISMATCH: max=2248 - asked for read size 4096
        [   INFO   ] resizing buffer to 36040/4505
        Process step: Compute audio features
        [   INFO   ] On connection Resample::signal → Trimmer::signal:
        [   INFO   ] BUFFER SIZE MISMATCH: max=2248 - asked for read size 4096
        [   INFO   ] resizing buffer to 36040/4505
        [   INFO   ] On connection Resample::signal → Trimmer::signal:
        [   INFO   ] BUFFER SIZE MISMATCH: max=2248 - asked for read size 4096
        [   INFO   ] resizing buffer to 36040/4505
        Process step: Compute aggregation
        adding SVM model: /home/byjo/bin/svm_models/genre_tzanetakis.history
        adding SVM model: /home/byjo/bin/svm_models/genre_dortmund.history
        adding SVM model: /home/byjo/bin/svm_models/genre_electronic.history
        adding SVM model: /home/byjo/bin/svm_models/danceability.history
        adding SVM model: /home/byjo/bin/svm_models/genre_rosamerica.history
        adding SVM model: /home/byjo/bin/svm_models/mood_acoustic.history
        adding SVM model: /home/byjo/bin/svm_models/mood_aggressive.history
        adding SVM model: /home/byjo/bin/svm_models/mood_electronic.history
        adding SVM model: /home/byjo/bin/svm_models/mood_happy.history
        adding SVM model: /home/byjo/bin/svm_models/mood_party.history
        adding SVM model: /home/byjo/bin/svm_models/mood_relaxed.history
        adding SVM model: /home/byjo/bin/svm_models/mood_sad.history
        adding SVM model: /home/byjo/bin/svm_models/timbre.history
        adding SVM model: /home/byjo/bin/svm_models/voice_instrumental.history
        adding SVM model: /home/byjo/bin/svm_models/gender.history
        adding SVM model: /home/byjo/bin/svm_models/tonal_atonal.history
        adding SVM model: /home/byjo/bin/svm_models/ismir04_rhythm.history
        Process step: SVM models
        Unable to load library icui18n "Cannot load library icui18n: (icui18n: cannot open shared object file: No such file or directory)"
        All done
        The error line "Unable to load library icui18n .." appears for every file. I have googled and followed the hints and suggestions (I have libicu55 and it's dependencies and relatives installed) but to no avail.
        Before I continue with the rest of the sub-libraries (my music share subdirectories are organized after genres and record labels) I would appreciate some information on the error message above: is it affecting the analysis, making it less complete?

        I'll also attach a typical output file (JSON file corresponding to the extract above). If anyone can see if the analysis is complete in spite of the message above I'd be grateful :-)

        Looking forward to trying out the Essentia plugin :-)

        /Bosse
        Attached Files
        2 Touch, 2 Picoreplayer
        LMS 8.3.0 on Debian 11 on Intel-NUC. All wired
        Main audio system: speakers Magnepan 3.6, amp "Gdis 400", DAC & pre: NAD M51, streamers: SB Touch // NAD M50

        Comment


          #5
          Originally posted by BosseJ View Post
          The error line "Unable to load library icui18n .." appears for every file. I have googled and followed the hints and suggestions (I have libicu55 and it's dependencies and relatives installed) but to no avail.
          icu 58.2 is the version installed on the system used to compile the extractor.

          Before I continue with the rest of the sub-libraries (my music share subdirectories are organized after genres and record labels) I would appreciate some information on the error message above: is it affecting the analysis, making it less complete?
          No. If it affects anything (which I doubt), it would be the metadata, and this is irrelevant, since the one from LMS will be used during normal operation.

          I'll also attach a typical output file (JSON file corresponding to the extract above). If anyone can see if the analysis is complete in spite of the message above I'd be grateful :-)
          Looks fine to me. You can upload a couple of analysis files and browse the data in the web interface to make sure.

          btw, with that many files to analyse, you may want to run as many ess-analyze.sh instances simultaneously as your cpu has cores to speed up things (doing that on the same directory tree should work).
          Various SW: Web Interface | Text Interface | Playlist Editor / Generator | Music Classification | Similar Music | Announce | EventTrigger | Ambient Noise Mixer | DB Optimizer | Image Enhancer | Chiptunes | LMSlib2go | ...
          Various HowTos: build a self-contained LMS | Bluetooth/ALSA | Control LMS with any device | ...

          Comment


            #6
            Thanks

            Originally posted by Roland0 View Post
            icu 58.2 is the version installed on the system used to compile the extractor.


            No. If it affects anything (which I doubt), it would be the metadata, and this is irrelevant, since the one from LMS will be used during normal operation.


            Looks fine to me. You can upload a couple of analysis files and browse the data in the web interface to make sure.

            btw, with that many files to analyse, you may want to run as many ess-analyze.sh instances simultaneously as your cpu has cores to speed up things (doing that on the same directory tree should work).
            Thank you for replying. I'll ignore the libicu-warning and continue. It seems to work very well so far, but I am in no hurry and can easily spare one core for Essentia analysis :-) I estimate the analysis of my collection will take ~70 hours or so.
            Looking at the attached analysis result it is almost cute to see that Rachmaninovs piano concert is "not danceable" with a 99% likelihood :-) It also set the key to "D#" "major" which seems okay given that the recording is entitled "E flat".

            Good job!
            2 Touch, 2 Picoreplayer
            LMS 8.3.0 on Debian 11 on Intel-NUC. All wired
            Main audio system: speakers Magnepan 3.6, amp "Gdis 400", DAC & pre: NAD M51, streamers: SB Touch // NAD M50

            Comment


              #7
              Repo error?

              I get an error when trying to add the repo:
              Code:
              Bad repository https://www.nexus0.net/pub/sw/lmsessentia/repo.xml - Connect timed out: Transport endpoint is not connected
              Main System: Marantz SR-5015 + Adam Audio T8V + Teufel Ultima 20 Mk 3 + BK Monolith+ FF + Lenovo T560 + Kodi + LG OLED65B26LA + UP-Board running Daphile
              Kitchen: Touch + Ikea ENEBY 30
              Home-Office: SqueezeLite-X + Topping DX3 Pro + NAD 312 + TMA Premium 905

              Comment


                #8
                Originally posted by BosseJ View Post
                Looking at the attached analysis result it is almost cute to see that Rachmaninovs piano concert is "not danceable" with a 99% likelihood :-) It also set the key to "D#" "major" which seems okay given that the recording is entitled "E flat".
                I'd be interested to hear how accurate the classifications are for your library. I've analyzed ~3000 tracks from mine, and there's quite some variation how well the classifications work (e.g. classical music is detected very well, electronic gets confused a lot with rock, sad / happy is quite accurate, vocal / instrumental less, gender not at all, ...)
                It most likely depends how closely one's music resembles the one used to build the classification models (which probably is of the mainstream / popular type, so the more unusual one's music is, the less accurate the pre-build models will be).
                I'll try to create some classifications based on my collection next to see if I can improve the accuracy that way.
                Various SW: Web Interface | Text Interface | Playlist Editor / Generator | Music Classification | Similar Music | Announce | EventTrigger | Ambient Noise Mixer | DB Optimizer | Image Enhancer | Chiptunes | LMSlib2go | ...
                Various HowTos: build a self-contained LMS | Bluetooth/ALSA | Control LMS with any device | ...

                Comment


                  #9
                  Originally posted by bakker_be View Post
                  I get an error when trying to add the repo:
                  Code:
                  Bad repository https://www.nexus0.net/pub/sw/lmsessentia/repo.xml - Connect timed out: Transport endpoint is not connected
                  Check if your LMS installation is SSL-enabled (e.g. on *nix, the perl modules Net::SSLeay and IO:Socket:SSL need to be installed)
                  If it is, check the LMS server logs.
                  Various SW: Web Interface | Text Interface | Playlist Editor / Generator | Music Classification | Similar Music | Announce | EventTrigger | Ambient Noise Mixer | DB Optimizer | Image Enhancer | Chiptunes | LMSlib2go | ...
                  Various HowTos: build a self-contained LMS | Bluetooth/ALSA | Control LMS with any device | ...

                  Comment


                    #10
                    Originally posted by Roland0 View Post
                    Check if your LMS installation is SSL-enabled (e.g. on *nix, the perl modules Net::SSLeay and IO:Socket:SSL need to be installed)
                    If it is, check the LMS server logs.
                    Ok, baby steps Seems I was missing IO:Socket:SSL on my Ubuntu ... PlayList Editor, ExtGui & Essentia plugin installed & working. Analysis however doesn't seem to work

                    20171126_Essentia_Errors.txt
                    Main System: Marantz SR-5015 + Adam Audio T8V + Teufel Ultima 20 Mk 3 + BK Monolith+ FF + Lenovo T560 + Kodi + LG OLED65B26LA + UP-Board running Daphile
                    Kitchen: Touch + Ikea ENEBY 30
                    Home-Office: SqueezeLite-X + Topping DX3 Pro + NAD 312 + TMA Premium 905

                    Comment


                      #11
                      Originally posted by bakker_be View Post
                      Analysis however doesn't seem to work
                      Maybe your CPU doesn't support certain instructions (AVX, SSE4), either because it is very old (<2008 (SSE) / < 2011 (AVX) ), or low-end (some old Celerons / Pentiums).
                      Check the output of
                      Code:
                      cat /proc/cpuinfo
                      The flags should include
                      Code:
                      flags: sse sse2 ssse3 sse4_1 sse4_2 avx
                      Various SW: Web Interface | Text Interface | Playlist Editor / Generator | Music Classification | Similar Music | Announce | EventTrigger | Ambient Noise Mixer | DB Optimizer | Image Enhancer | Chiptunes | LMSlib2go | ...
                      Various HowTos: build a self-contained LMS | Bluetooth/ALSA | Control LMS with any device | ...

                      Comment


                        #12
                        Originally posted by Roland0 View Post
                        Maybe your CPU doesn't support certain instructions (AVX, SSE4), either because it is very old (<2008 (SSE) / < 2011 (AVX) ), or low-end (some old Celerons / Pentiums).
                        Check the output of
                        Code:
                        cat /proc/cpuinfo
                        The flags should include
                        Code:
                        flags: sse sse2 ssse3 sse4_1 sse4_2 avx
                        Seems I'm missing the AVX, it's not all that old though I'll look into another solution
                        Code:
                        login as: bart
                        [email protected]'s password:
                        Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-2-upboard x86_64)
                        
                         * Documentation:  https://help.ubuntu.com
                         * Management:     https://landscape.canonical.com
                         * Support:        https://ubuntu.com/advantage
                        
                        0 packages can be updated.
                        0 updates are security updates.
                        
                        
                        Last login: Mon Nov 27 10:31:36 2017 from 192.168.1.132
                        [email protected]:~$ cat /proc/cpuinfo
                        processor       : 0
                        vendor_id       : GenuineIntel
                        cpu family      : 6
                        model           : 76
                        model name      : Intel(R) Atom(TM) x5-Z8350  CPU @ 1.44GHz
                        stepping        : 4
                        microcode       : 0x406
                        cpu MHz         : 704.250
                        cache size      : 1024 KB
                        physical id     : 0
                        siblings        : 4
                        core id         : 0
                        cpu cores       : 4
                        apicid          : 0
                        initial apicid  : 0
                        fpu             : yes
                        fpu_exception   : yes
                        cpuid level     : 11
                        wp              : yes
                        flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat
                        bugs            :
                        bogomips        : 2879.86
                        clflush size    : 64
                        cache_alignment : 64
                        address sizes   : 36 bits physical, 48 bits virtual
                        power management:
                        
                        processor       : 1
                        vendor_id       : GenuineIntel
                        cpu family      : 6
                        model           : 76
                        model name      : Intel(R) Atom(TM) x5-Z8350  CPU @ 1.44GHz
                        stepping        : 4
                        microcode       : 0x406
                        cpu MHz         : 617.906
                        cache size      : 1024 KB
                        physical id     : 0
                        siblings        : 4
                        core id         : 1
                        cpu cores       : 4
                        apicid          : 2
                        initial apicid  : 2
                        fpu             : yes
                        fpu_exception   : yes
                        cpuid level     : 11
                        wp              : yes
                        flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat
                        bugs            :
                        bogomips        : 2879.86
                        clflush size    : 64
                        cache_alignment : 64
                        address sizes   : 36 bits physical, 48 bits virtual
                        power management:
                        
                        processor       : 2
                        vendor_id       : GenuineIntel
                        cpu family      : 6
                        model           : 76
                        model name      : Intel(R) Atom(TM) x5-Z8350  CPU @ 1.44GHz
                        stepping        : 4
                        microcode       : 0x406
                        cpu MHz         : 480.881
                        cache size      : 1024 KB
                        physical id     : 0
                        siblings        : 4
                        core id         : 2
                        cpu cores       : 4
                        apicid          : 4
                        initial apicid  : 4
                        fpu             : yes
                        fpu_exception   : yes
                        cpuid level     : 11
                        wp              : yes
                        flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat
                        bugs            :
                        bogomips        : 2879.86
                        clflush size    : 64
                        cache_alignment : 64
                        address sizes   : 36 bits physical, 48 bits virtual
                        power management:
                        
                        processor       : 3
                        vendor_id       : GenuineIntel
                        cpu family      : 6
                        model           : 76
                        model name      : Intel(R) Atom(TM) x5-Z8350  CPU @ 1.44GHz
                        stepping        : 4
                        microcode       : 0x406
                        cpu MHz         : 479.981
                        cache size      : 1024 KB
                        physical id     : 0
                        siblings        : 4
                        core id         : 3
                        cpu cores       : 4
                        apicid          : 6
                        initial apicid  : 6
                        fpu             : yes
                        fpu_exception   : yes
                        cpuid level     : 11
                        wp              : yes
                        flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat
                        bugs            :
                        bogomips        : 2879.86
                        clflush size    : 64
                        cache_alignment : 64
                        address sizes   : 36 bits physical, 48 bits virtual
                        power management:
                        
                        [email protected]:~$
                        Main System: Marantz SR-5015 + Adam Audio T8V + Teufel Ultima 20 Mk 3 + BK Monolith+ FF + Lenovo T560 + Kodi + LG OLED65B26LA + UP-Board running Daphile
                        Kitchen: Touch + Ikea ENEBY 30
                        Home-Office: SqueezeLite-X + Topping DX3 Pro + NAD 312 + TMA Premium 905

                        Comment


                          #13
                          Originally posted by bakker_be View Post
                          Seems I'm missing the AVX, it's not all that old though I'll look into another solution
                          I've uploaded a binary which may run without AVX.
                          Various SW: Web Interface | Text Interface | Playlist Editor / Generator | Music Classification | Similar Music | Announce | EventTrigger | Ambient Noise Mixer | DB Optimizer | Image Enhancer | Chiptunes | LMSlib2go | ...
                          Various HowTos: build a self-contained LMS | Bluetooth/ALSA | Control LMS with any device | ...

                          Comment


                            #14
                            Originally posted by Roland0 View Post
                            I've uploaded a binary which may run without AVX.
                            Hi,

                            thank you for looking into this. I do have a NAS with an Intel Celeron N3160. The CPU does not support AVX.

                            I could start the first static app and did see usage instructions, However, when I wanted to analyze a file the 'Illegal instruction' message appeared.

                            With the 'NoAVX' app the 'Illegal instruction' message shows up immediately. No usage instructions at all when I start the app with no arguments.

                            I will try to compile it on my system.
                            2 x Squeezebox 3 - 1 x Squeezebox Touch - Squeezecenter 7.9.1 / MusicIP in Container station - QNAP TS453A - 4 x 3 TB Hitachi (RAID5)

                            Comment


                              #15
                              Originally posted by Roland0 View Post
                              I've uploaded a binary which may run without AVX.
                              Thanks for the effort, still no luck however. I'll try compiling myself.
                              Main System: Marantz SR-5015 + Adam Audio T8V + Teufel Ultima 20 Mk 3 + BK Monolith+ FF + Lenovo T560 + Kodi + LG OLED65B26LA + UP-Board running Daphile
                              Kitchen: Touch + Ikea ENEBY 30
                              Home-Office: SqueezeLite-X + Topping DX3 Pro + NAD 312 + TMA Premium 905

                              Comment

                              Working...
                              X