# TiVo Music Server for Android



## sinanju (Jan 3, 2005)

I've written a music server for Android. The app is free and in the market. You can find it here: https://market.android.com/details?id=earlmagnus.androidhme

I don't have a lot of options for testing a variety of environments, so if you have trouble with it, please let me know by posting here. I know, for example, there may be a Bonjour/Rendezvous issue with the app and S2s... it's not clear yet if that's my code, the environment the S2 is in, or an imperfect of understanding of the required service description on my part.

Here is the description in the market:

Have an Android device with lots of MP3s? Have a TiVo connected to your home sound system? Now you can stream MP3s from your phone or tablet to your TiVo over WiFi.

*How it works:*

Start the application to start the music server. Shortly after starting, the application will tell you its service has been published and, at that point, "Music on Android Device" should appear in the "Music and Photos" menu of your TiVo, near the bottom. Select that menu item to begin browsing your music.

The top-level directory will show two or three entries. You can browse by Album or by Playlist. On versions of Android that provide Album Artist information -- Gingerbread/2.3.3 and higher -- you can also browse by Artist. You can start playback from the Artist, Album, Playlist, or individual track level. Because the top three entries are "virtual" rather than physical directories, you cannot start playback from there.

The back button will exit the application an shut down the server. If you want to do other things on your device while the server is running, hit the home button. You can return the application to the fore by tapping its icon or its line in the notification area.

The Application interface will display the Album, Artist, Track and Album art for the track being sent to the TiVo. If no album art is available, the "TiVo Guy" will be shown.

The menu button will enable you to set the name of the device that should appear in the TiVo's menu. It will let you chose the behavior of the server when the TiVo tell it you have left the music interface -- exit or remain running. You have the option of using beacon or mDNS for discovery. Beacon will be more reliable on Android and is the default. If you change preferences, the server will restart.

Clicking ads (and supporting the developer) will not interfere with playback.

*Known Issues:*

Although Android supports a number of audio formats, the TiVo supports only MP3. Only MP3s will be played.

The MP3s must be on an SD card. Unfortunately, Android makes one choose to fetch music information from internal or external storage. Since internal storage tends to be limited, I use external. If there is demand, I will provide a preference in a later version.

Shuffle is not well supported. The TiVo protocol expects the server to be able to support a repeatable random sequence of tracks and provides a "seed" to facilitate that repeatability. The database used by Android cannot use the seed, so it cannot provide a repeatable random sequence of tracks. As a result, the current implementation is a bit of a hack. I'm working on a solution.

The TiVo sometimes will not properly advance tracks, especially if you have used the channel up/down buttons to advance tracks. This problem exists even when using the official TiVo Desktop. If you have that problem, use the "skip to tick" button (->|)to advance or left-arrow out to the track listing and play from the desired point instead.

Seek has not yet been implemented. Fast forward and rewind are disabled.

Some home networks with multiple routers or range extenders may have "accidental" subnets. If the Android device and the TiVo are on different subnets, they will not find each other.

*Be aware*:

The server will prevent the device from sleeping as long as it is running. You can shut off the screen, but WiFi and an awake CPU will consume power. If you do shut the screen off, performance of switching between tracks or browsing may be somewhat degraded. You will probably want the device to be docked or otherwise plugged in while running the server.


----------



## wmcbrine (Aug 2, 2003)

You can use the old-style beacon system even if multicast is unavailable, since it depends on broadcast packets instead. See here:

http://pytivo.sourceforge.net/forum/hmo-specifications-t122.html

I assume from the description that this is an HMO server, not HME.


----------



## sinanju (Jan 3, 2005)

wmcbrine said:


> You can use the old-style beacon system even if multicast is unavailable, since it depends on broadcast packets instead. See here:
> 
> http://pytivo.sourceforge.net/forum/hmo-specifications-t122.html
> 
> I assume from the description that this is an HMO server, not HME.


Yes... I misnamed the package and never refactored it.

Thanks for the pointer. If multicast becomes an issue, I'll be implementing the beacon.


----------



## sinanju (Jan 3, 2005)

The beacon was relatively straightforward to implement. I pushed an update.


----------



## CuriousMark (Jan 13, 2005)

The Beacon works with my S2. I have it running and playing well. This is very nice!


----------



## sinanju (Jan 3, 2005)

V 1.3: Corrected a wifi lock issue and a lifecycle issue when exiting from the TiVo.


----------



## evp (Nov 11, 2011)

Great app!

Could you please add the Screen Off button/option? My Sprint Motorola Photon stops streaming as soon as I push the hardware Power Button to turn off the screen. A built in software solution would be a huge battery saver.

Thanks,
Ed


----------



## sinanju (Jan 3, 2005)

evp said:


> Great app!
> 
> Could you please add the Screen Off button/option? My Sprint Motorola Photon stops streaming as soon as I push the hardware Power Button to turn off the screen. A built in software solution would be a huge battery saver.
> 
> ...


That's not a problem I have with Gingerbread on a Google Nexus One. In fact, I acquire CPU and WiFi locks in a way to specifically enable automatic screen dimming and the user optionally turning the display off while still streaming.

Either Moto did something funky to save power, defeating my code, or your using an old version of the code that had a lifecycle issue. Visit Market>My Apps on your device and make sure you don't have a update for the app waiting to be installed. If you have the latest, it's a device issue.


----------



## mmf01 (Jan 31, 2011)

This is a great app!! Any chance of adding an option to scan folders and sub-folders with the .nomedia flag (i.e. Google Music Cache Folder)


----------



## sinanju (Jan 3, 2005)

mmf01 said:


> This is a great app!! Any chance of adding an option to scan folders and sub-folders with the .nomedia flag (i.e. Google Music Cache Folder)


I don't actually scan the media... Android does and it provides the database. Unfortunately, it's not as easy as renaming the .nomedia flag. The cached mp3s are not tagged... even the ones that were uploaded with tags.


----------



## mmf01 (Jan 31, 2011)

sinanju said:


> I don't actually scan the media... Android does and it provides the database. Unfortunately, it's not as easy as renaming the .nomedia flag. The cached mp3s are not tagged... even the ones that were uploaded with tags.


Didn't realize tags aren't embedded. Thanks anyways.


----------



## doyling (Aug 11, 2006)

I have been playing with it a bit and it's fun. In the past I would run a 1/8 connector into the headphone jack and into my home theater. Now with this I am wireless, until it comes time to charge. Plugging into my computer then disables the SD card. Even when choosing charge only on the phone. Will have to just use the wall charger.


----------



## pics4u (Apr 5, 2012)

sinanju said:


> V 1.3: Corrected a wifi lock issue and a lifecycle issue when exiting from the TiVo.


I'm new to this app so I'm not sure what part of the lifecycle was fixed...However, I still experience the app stopping whenever I make a change on tivo....this requires a restart before being able to stream music again....

Any ideas?

thanks


----------



## deek102 (May 4, 2008)

Hi Sinanju,

Love the idea, love the app, but I'm having a problem with many tracks skipping. I'm running a TiVo Premiere and I have Android 2.2.1 on a Samsung Galaxy S 4g.

It's not all tracks and I've yet to identify a pattern. I'm going back and re-playing the track I had issue with and it doesn't seem like it's having the problem this time... 

I'm not using my phone while this occurs. My phone is plugged into a power source and sitting on my coffee table.

I guess a background app could be spiking the CPU and taking away from your app but I'm not sure. 

Any advice?


----------

