[mythtv] Myth music enhancements

Daborg linuxborg at insightbb.com
Sat Jan 17 13:15:06 EST 2004


First,

Excuse the long email.  Just want to make sure that I do not waste mine or
anyone else's time before going forward with the following.  This is not a
wish list, but rather a scope definition that I have already begun work on.

I have been a long user of MythTv and quite happy with most aspects of it.
However, the music plugin is not quite the home theater app I would like to
see it turn into.  I have been looking into this and would like to see it
have the following features:
	1)  Be able to continue to play music when out of the plug in.  I.e.  Could
be selecting programs to record, could be looking at the weather, at an
extreme even being able to watch tv, but listen to music.  At present music
play stops as soon as one exits the plugin.
	2)  Be able to send music to alternate or multiple sound cards at same
time.  For example in my setup I would like to be able to watch tv, but also
send music to my second amp feeding whole house audio via a second sound
card.  (Can Linux do this - do'nt know yet - will be adding 2nd sound card
to my test box this week sometime).
	3)  Be able to remotely (From other computers) control the music (Play,
pause, rewind, change playlist, etc).  Most likely via very thin music
clients

	4)  Ultimately be able to play music playlists for the myth gallery plugin,
even different sound tracks for different directories (i.e., wedding
pictures play wedding music, kid pictures play kid stuff, etc).
	5)  Better categorization and smart list features.  Tie-in with Mood logic
would be cool.  Tivo supposedly has this feature now.  Ratings on music
would also be a neat feature.  Right now I have a lot of comedy tracks that
are funny as heck, but just not appropriate for kids.
	6)  Better, easier navigation of library and playlists.  Current setup to
me is just cumbersome.  Really would like to see creating playlists easier.
Add a feature like smart lists that automatically add new songs that meet
the smartlist criteria.  Mythweb might be the right way to do this...
	7)  AAC, mp4 mpa (pick your favorite) decoders so I can play AAC and in the
future - itunes files (that I own) with Myth.

	Those are the major features I would like to see.  Before proceeding any
further with this just wanted to get some ideas about whether these are
features others see a benefit to and whether my general approach will work.

	My general thought at this time is to break the music plugin into two
separate processes.  One would be the playlist selection and gui aspect of
the music process.  The other would be a completely separate spawned process
that sits in the background and plays music.  It takes commands from the
sockets that tell it to play, pause, skip, etc.  Also what soundcard to use,
etc.  It then returns information such as current track information, where
in the track it is at, etc.

	Thus, a user can come into myth music select a playlist, start playback and
then exit and go do other things all the while music still plays.  Or I
could be in my study, select a playlist and start playback for the whole
house audio, all the while someone might be in the basement / media room
watching live tv on the myth box.

	Obviously on single sound card setups there has to be checking by MythTv
and Music to make sure the sound card is not being used and obviously
provide a prompt to override or not.

	I have taken current CVS from a few days ago and already broken the gui
process from the music playing piece.  I already have the skeleton of the
player piece working.  Have a custom frontend right now that I test with.
Still a lot of work to go, but the basic piece is there.  One thing I had a
bit of debate about was whether to pass the playlist to the player directly
or let it get it from the database.  I am leaning towards the database
approach for the following reason.
	- Much faster.  I often just select all my music and let it randomize it.
Passing 10,000 tracks of information to the player could take a while and in
actuallity be a waste of time and bandwidth as I never listen to 4 weeks of
music straight.  Thus, creating the playlist in the database with pointers
and just passing the right playlist ID into the player would be a much
faster and better use of resources.

	The one thing I have questions or concerns about are the visuaalizers.
Personally I could care less about them as I do not sit in front of my tv
and watch the visualizations.   But others may have different opinions.  My
concern is that all of the music data will be in the non-gui player.  Thus
for a visualizer to work it would need to get data from the player.  In all
honesty I do not know how much data these require.  Is it 20 points of data
every 500 ms or is 1000 points of data every 100ms.  Also, since this is a
low priority to me It is not a piece I would initially concentrate on.
However, there are probably other opinions on this...

Do any of the Myth developers have thoughts or questions about this
approach?  Are there any active changes going on with mythmusic right now?
I know that there is the DAAP project going on and see that it has stolen a
lot of the code from myth music.  Not sure if the plan is to integrate the
two together or if they will remain separate entities.

Not promising anything in regards to time as I am in the process of a major
remodel of my kitchen, but I am anxious to get this audio piece working.

Since this is a major revamp to the program and it may take some time to get
it implemented how is that handled in the source code trees.  Is it
mythmusic2 and then someday the original just goes away?


Appreciate the feedback.


Scott



More information about the mythtv-dev mailing list