Testing and Feedback for Linux Rhythmbox Skill


#1

How to install Rhythmbox Skill

Linux Software Required

  • Ubuntu: apt install rhythmbox
  • Linux Mint: apt install rhythmbox
  • Arch: pacman -S rhythmbox

Install skill via git:

How to test Rhythmbox Skill

  • Setup Rhythmbox with music, playlists, etc.
  • Utterances…
    ◦ “play **”
    ◦ “play ** playlist”
    ◦ “play something by **”
    ◦ “shuffle ** playlist on Rhythmbox”
    ◦ “pause”
    ◦ “resume”
    ◦ “next song”
    ◦ “previous song” [limited function within Rhythmbox]
    ◦ “stop Rhythmbox”

Skill Pass Criteria

  • Skill searches the Rhythmbox song and playlist databases for the best match and queues it up.

Skill Failure Criteria

  • Skill does not install
  • Skill fails to interface with Rhythmbox
  • Skill does not play music when requested

Feedback


#4

Hi dwfalk,

I’ve dropped a new issue in your repo with some trouble I had accessing the file system, but wanted to say thanks for creating Rhythmbox Skill!


#5

Great feedback. Thank you.


#6

gez-mycroft’s suggestion over on github simplifies installing the skill. I added a requirements.txt file with the fuzzywuzzy dependency. So now you only need to issue the following command to install the skill…

mycroft-msm install https://github.com/dwfalk/rhythmbox-skill


#7

Thanks for your work :slight_smile: , installation worked like a charm.

CPS_match_query on the other hand, has me pretty puzzled it never finds what i’m asking for.

Sometimes it doesn’t start music because it thinks stuff is not in my library :smile:

rhythmbox-skill_dwfalk - INFO - Artist Utterance: eminem
Playback Control Skill - INFO - No matches
rhythmbox-skill_dwfalk - INFO - Artist Probabilities: (‘Eminem’, 100)

And it doesn’t do anything else… I am sure it should work :thinking: ,
do you have any insights about the common play skill skill class?
i am trying to use it in my own music skill and i am also having problems adapting it to common play :confused: is it me using it wrong ? thank you again :slight_smile: have a nice day


#8

colla69…If you wish, you can open an issue over on the github site I reference for skill feedback and post the pertinent contents of your Rhythmbox database (~/.local/share/rhythmbox/rhythmdb.xml) and I’ll take a peek.

You can also look at my code on the github site to get an idea on how to work with common play skill. I was a little intimidated with it myself, at first. But took on the challenge of converting my original code to it and am rather happy I did.


#9

Hey @dwfalk
i found out what the problem is … it has notihg to do with your skill …
The common play framework has a timeout, you should be getting an answer from the search queries in max 1 sec time…
thats why i got

  • “Playback Control Skill - INFO - No matches”
    before
  • “rhythmbox-skill_dwfalk - INFO - Artist Probabilities: (‘Eminem’, 100)”

My computer isn’t fast enough (it’s getting old ^^ and my rhythmdb.xml is almost 20 MB and increasing )…
That meand Your Skill passed all my tests on a smaller library… all the problems i had seem to arise because of the performance of my pc…

At the moment I am trying to write a Filecrawler that can load my data faster hoping i can structure the data to speed up the search… I’ll be developing a test version for my own player skill. If your intrested I’ll let you know when i have something working…

Wishing you a nice day :slight_smile: ,
colla


#10

nice ability. I have found that the complete request is always sent to playlist, artist and title. “Hells Bells by AC DC” instead of “Hells Bells” and artist “AC DC”. Normally, the mycroft player module can separate this. I use German. how is that with you? Maybe my translation in the mycroft player module is not correct either.


#11

I had in mind to add “song by artist” to the skill. Its been a while since I tinkered around. I appreciate the feedback. It’ll stir me to get back to doing some coding. Guten Tag!


#12

I published a new version of the skill that includes “title by artist” support.


#13

supper works for me. I have only the problem with my 35mb database. would it help to change the XMLParser to iterparse?


#14

Thanks for the suggestion. This was a hobby project of mine. I’m not the most literate on the ins and outs of Python and XML, having just a basic programming background. A Google search is leading me in the direction of lxml, interparse, and using element.clear. But I am open to any recommendations.


#15

I opened an issue over on the skill’s github site to track benchmarking alternative xml logic. I’ll use it to comment on any progress or potential avenues in supporting larger Rhythmbox databases. Please feel free to visit and leave comments as well on any suggestions you might have regarding the efficient processing of the Rhythmbox xml databases. Regards.


#16

the reading at the start of the Skill could accelerate the whole thing

https://mycroft-core.readthedocs.io/en/stable/source/mycroft.util.html#get-cache-directory


#17

I’m now caching the Rhythmbox xml database in skill class list variables. The first time accessing the skill, it will cause the cache to be built. Subsequent calls to the skill will use the cache. Hopefully that will help individuals with large Rhythmbox databases.