# Announcing: Harmonium Music Player



## perrce

Harmonium Music Player is an HME application that streams music from your PC to your TiVo, and is now beginning an open beta testing period. Get more information at http://software.dazeend.org

There are other music streaming HME apps out there, so what makes Harmonium special?


Harmonium uses information from ID3 tags in your MP3 files to automatically sort your music collection. (Harmonium honors the Album Artist tag when it is found, so albums that contain songs by different artists or combinations of artists are grouped together.)

Harmonium supports high-definition televisions and displays album art in large format high-definition when possible.

Harmonium has integrated playlist support. Native playlists can be created and edited on-screen. M3U playlists are also supported.

Harmonium is easy to use. Installation is as simple as unzipping a file, editing a few lines of text, and starting the application. Using Harmonium is easy too. Harmonium uses TiVo usage conventions when possible to make its interface familiar to anyone who's used a TiVo.

Harmonium is cross-platform. There are distributions prepared that install Harmonium so that it starts on Windows and Linux on reboots. There's also a distribution that should run on any operating system that has Java installed (including Mac OS X).

Harmonium is free. Licensed under the GNU AGPL, Harmonium has no cost to use and its source code is available to modify and distribute.

Learn more about Harmonium at it's project web page http://software.dazeend.org. Download the software, try it out, and let me know what you think. One word of warning though: this is still beta software and there may be a few kinks to work out. That being said, I and some of my friends use it at home every day. Enjoy!


----------



## gonzotek

That is a very very nice feature-set! I won't have time to really play with this for a few days, but I'll try to make some time to over the weekend. I'm glad to see some fresh HME development from outside TiVo, Inc. .


----------



## bacevedo

This looks like a very nice app. Does it support AAC files (non drm)?

About 90% of my collection is m4a in iTunes. Is there a way for me to use this, even if it requires an additional plugin, etc.?

Bryan


----------



## perrce

bacevedo said:


> Does it support AAC files (non drm)?


Not right now. For the moment it is MP3 only. My goal right now is to have a full-featured MP3 player for version 1.0, with AAC, Ogg, and FLAC targeted for v2.0.


----------



## bacevedo

Sweet! Once you get AAC support in there, I am all over it. That UI looks fantastic. I have to say nice work on it. Any idea when v2.0 is slated? Are we talking weeks, months, years?

What would be nice is if in v2.0 you could get the playlists from iTunes as well. Not sure how hard that is. I am sure you already have your wishlist for v2.0!

Bryan


----------



## perrce

bacevedo said:


> Sweet! Once you get AAC support in there, I am all over it. That UI looks fantastic. I have to say nice work on it. Any idea when v2.0 is slated? Are we talking weeks, months, years?
> 
> What would be nice is if in v2.0 you could get the playlists from iTunes as well. Not sure how hard that is. I am sure you already have your wishlist for v2.0!
> 
> Bryan


We're probably talking months for v2.0. As for feature requests, head over to the Harmonium web site and post something in the feature request forum. That's how I'm planning to track requests for the time being.


----------



## s2kdave

Nice. Looking at the screenshots it looks like you might be using my bananas-plus api? I still haven't made an official release of that. Yeah, I'm lazy. 

At one point I was starting to work on a music player to replace the galleon one. That's actually what prompted me to start the bananas plus, but I got side tracked. 

I'll definitely check it out.


----------



## windracer

/subscribe

I'm a long time JavaHMO -> Galleon music user, but I'll try out something new and shiny.


----------



## perrce

s2kdave said:


> Nice. Looking at the screenshots it looks like you might be using my bananas-plus api? I still haven't made an official release of that. Yeah, I'm lazy.
> 
> At one point I was starting to work on a music player to replace the galleon one. That's actually what prompted me to start the bananas plus, but I got side tracked.
> 
> I'll definitely check it out.


I started out using it, but I ran into a roadblock streaming MP3s using the experimental 1.4.1e TiVo SDK. I ended up having to switch back to non-HD supporting 1.4.0 and use the HME-HD Library which Galleon uses (gotta love Open Source!), and which I thought you also had a hand in. This is probably as good an opportunity as any to thank all the other open source HME apps out there, especially Galleon, that I looked at to for examples of how to use the SDK.

Thanks for checking it out. I'm looking for suggestions and bug reports. If you haven't downloaded it yet, you might want to hold off a couple hours. I'm going to release v0.2 later today which will add a few convenience features and fix a bug that showed up when you played an empty playlist.


----------



## perrce

As promised, version 0.2 Beta is now available for download from the Harmonium web page. Enjoy!


----------



## windracer

When I try to fire up Harmonium in console mode, I can see it scanning all my music and then it ends like this:



Code:


jvm 1    | error: unable to invoke method: null
jvm 1    | error: make sure the class is public and has a public static getAppFactory method
jvm 1    | Failed to instantiate any HME apps
jvm 1    | WrapperSimpleApp: main method completed
jvm 1    | Wrapper Manager: ShutdownHook started
jvm 1    | WrapperManager.stop(0) called by thread: Wrapper-Shutdown-Hook
jvm 1    | Send a packet STOP : 0
wrapperp | read a packet STOP : 0
wrapper  | JVM requested a shutdown. (0)
wrapper  | wrapperStopProcess(0) called.
wrapper  | Sending stop signal to JVM
wrapperp | send a packet STOP : NULL
jvm 1    | Received a packet STOP :
jvm 1    | Thread, Wrapper-Shutdown-Hook, handling the shutdown process.
jvm 1    | calling listener.stop()
jvm 1    | WrapperSimpleApp: stop(0)
jvm 1    | returned from listener.stop() -> 0
jvm 1    | shutdownJVM(0) Thread:Wrapper-Shutdown-Hook
jvm 1    | Send a packet STOPPED : 0
wrapperp | read a packet STOPPED : 0
wrapper  | JVM signalled that it was stopped.
jvm 1    | Closing socket.
wrapperp | socket read no code (closed?).
wrapperp | server listening on port 32001.
wrapper  | JVM exited normally.
wrapper  | Signal trapped.  Details:
wrapper  |   signal number=17 (SIGCHLD), source="unknown"
wrapper  | Received SIGCHLD, checking JVM process status.
wrapper  | JVM process exited with a code of 0, leaving the wrapper exit code set to 0.
jvm 1    | Wrapper Manager: ShutdownHook complete
jvm 1    | Server daemon shut down
wrapper  | <-- Wrapper Stopped

java version "1.6.0_06" on my Ubuntu Hardy box.

Any ideas?


----------



## raianoat

I'm receving the following error when I try and start Harmonium on my Mac (10.5.4). Sorry for the cross post but, I also posted something in Harmonium's forum.

http://harmonium.dazeend.org/forums/viewtopic.php?f=3&t=4

HME SDK 1.4 (TiVo, Inc.)
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at com.tivo.hme.host.sample.Main.createFactory(Main.java:384)
at com.tivo.hme.host.sample.Main.<init>(Main.java:151)
at com.tivo.hme.host.sample.Main.<init>(Main.java:60)
at com.tivo.hme.host.sample.Main.main(Main.java:534)


----------



## windracer

windracer said:


> When I try to fire up Harmonium in console mode, I can see it scanning all my music and then it ends like this:


So actually I noticed that it was always stopping on the same MP3 file. So I loved that MP3 out of my music directory. It got a little farther and then stopped on a different file. So I moved _that_ one out. Then it got through about 1,000 files before it yakked again.

So I'm not sure what's "wrong" with my MP3 files, or what Harmonium is trying to read, that is causing it to crash.


----------



## perrce

(Responded to both *windracer* and *raianoat* on the Harmonium forums.)


----------



## s2kdave

perrce said:


> I started out using it, but I ran into a roadblock streaming MP3s using the experimental 1.4.1e TiVo SDK. I ended up having to switch back to non-HD supporting 1.4.0 and use the HME-HD Library which Galleon uses (gotta love Open Source!), and which I thought you also had a hand in. This is probably as good an opportunity as any to thank all the other open source HME apps out there, especially Galleon, that I looked at to for examples of how to use the SDK.
> 
> Thanks for checking it out. I'm looking for suggestions and bug reports. If you haven't downloaded it yet, you might want to hold off a couple hours. I'm going to release v0.2 later today which will add a few convenience features and fix a bug that showed up when you played an empty playlist.


Yeah, I wrote the hmehd library too. Same graphics and stuff. I just expanded on it when I made bananas-plus.


----------



## pcbrew

Most of my music does not show album art even though it is embedded. What are the requirements for showing Album Art? 
(This is one reason I am interested in this since the TiVo app still does not support album art display.)


----------



## perrce

For album art to show up it has to be in an ID3 tag, and be in GIF, JPEG, or PNG format. If you continue to have problems, send me a track that you think should work and I'll check it out.


----------



## s2kdave

I've noticed a few bugs:

- There are duplicate band names in the Browse Music section. There might be spaces or unprintable characters before or after the names in the ID3 tags. You should probably trim the string before comparing if you aren't doing that.

- I played an album that had 1 song in it and then was browsing through the UI. I went to the preferences section and when the song ended, it seemed to have don't a pop() on the screen I was on and went back to the screen before it automatically.

- Music added after the server is started never shows up. If you add new music you have to restart the server. It should either listen for changes or do a quick update check each time the application is started on the tivo. Restarting the tivo app is reasonable.

- On my windows box, the mdns entry never gets registered so it never shows up on my tivo and it doesn't show up in the list in my simulator. I have to manually type in the url in the simulator to use it. There are no errors in the logs either.

- When you go to the Browse Music section, music only gets put into an Artist folder if it has an Artist AND and Album in the ID3 tag. I would expect it to at least create the Artist folder. Everything else gets stuck at the end of the list. Seems a little messy too. Maybe you should create another folder called <Untitled> if there is no Artist name.


----------



## perrce

s2kdave said:


> I've noticed a few bugs:
> 
> - On my windows box, the mdns entry never gets registered so it never shows up on my tivo and it doesn't show up in the list in my simulator. I have to manually type in the url in the simulator to use it. There are no errors in the logs either.


This one confuses me. It works just fine on my XP box. I've just been relying on the SDK to take care of all that and haven't seen any problems. Any ideas on how I can reproduce what you're seeing, or what might be the issue?

I'll take a look at the other issues you pointed out as well. Thanks for the help!


----------



## s2kdave

perrce said:


> This one confuses me. It works just fine on my XP box. I've just been relying on the SDK to take care of all that and haven't seen any problems. Any ideas on how I can reproduce what you're seeing, or what might be the issue?
> 
> I'll take a look at the other issues you pointed out as well. Thanks for the help!


Yeah, I'm not sure what the problem is. I've been trying to debug it a little. I'm using the jmdns browser tool. And I see the Harmonium mdns packet coming in, but it never ends up in even the browser list.



Code:


java -classpath hme-host-sample.jar com.strangeberry.jmdns.tools.Main -d -browse -bt

Another thing I noticed that I'm not sure if it's just a bug with the simulator is that if I hit forward or reverse to try and fast forward through a song, the whole app chokes and restarts. I think it might be the simulator though, I'd have to test it on my tivo in order to verify.

You're welcome with the help. I figured I'd rather help you make the music app into what I was envisioning when I was going to create mine.

Other minor annoyances are the preferences dialogs how you have to go down the the button at the bottom in order to hit left to go back. Also, I haven't checked, but are the settings persisted between server restarts?


----------



## s2kdave

perrce said:


> This one confuses me. It works just fine on my XP box. I've just been relying on the SDK to take care of all that and haven't seen any problems. Any ideas on how I can reproduce what you're seeing, or what might be the issue?
> 
> I'll take a look at the other issues you pointed out as well. Thanks for the help!


Ok, I figured it out. I have iTunes installed so it setup Bonjour (mDNS). There must have been something broken about it. I re-ran the latest bonjour binary from http://www.apple.com/support/downloads/bonjourforwindows.html and then hit Repair (because it was already installed from iTunes). After doing that, everything started working.


----------



## s2kdave

I tested the forward/reverse issues on my tivo and I was right, it was only a problem in the simulator.

Found another potential bug. What is the Screen Blanking preference supposed to do? I assumed after a certain time, it would black out the screen or dim it like a screen saver. It didn't do that so I'm not sure what it's supposed to do.

I'm curious, what was your troubles with using HME 1.4.1 experimental? Because there are a lot of things in bananas-plus that I can see your app benefiting from. Like the moveable list (for the playlist editor) and the skin stuff. It also has support for custom keyboards. And has support for the black (greyed out) buttons/list. And all the SD graphics look like the HD ones.


----------



## perrce

s2kdave said:


> Other minor annoyances are the preferences dialogs how you have to go down the the button at the bottom in order to hit left to go back. Also, I haven't checked, but are the settings persisted between server restarts?


The preference thing was intentional; I agree it's clumsy though. The problem is that you have to press left/right to select a different option, so I didn't want a left press to sometimes change an option and sometime pop the screen. I'm open to suggestions, though.

Preferences should be persistent between server restarts for any given TiVo. If you find that's not the case, it's a bug.



s2kdave said:


> What is the Screen Blanking preference supposed to do? I assumed after a certain time, it would black out the screen or dim it like a screen saver. It didn't do that so I'm not sure what it's supposed to do.


Just as you suspected, it is supposed to act as a screensaver when the idle event is received. I was pretty sure it was working for me, but I'll check it again.



s2kdave said:


> I'm curious, what was your troubles with using HME 1.4.1 experimental? Because there are a lot of things in bananas-plus that I can see your app benefiting from. Like the moveable list (for the playlist editor) and the skin stuff. It also has support for custom keyboards. And has support for the black (greyed out) buttons/list. And all the SD graphics look like the HD ones.


The problem I had was that I couldn't get it to play music on a TiVo. It created the stream just fine, and music was played on your HD Simulator, but on my Series 3 it would actualy put sound out the speakers. Sort of defeats the purpose of an MP3 player, I think. Anyway, after messing with it for several days, the only change I made was to swap out the version of the SDK and then magically everything worked. Your right, though. Those extra features would have made my life easier. I struggled with the movable list and finally got it working, but I never could figure out an easy way to gray out a button.


----------



## perrce

I've just put out a big update to Harmonium. Version 0.3 Beta is available for download from the Harmonium website. This version fixes lots of bugs (Thanks to all who reported them!), adds some new features, and makes some cosmetic changes.

Highlights include:

 Now runs on Java 5.0 or later
 Add or delete music without restarting the server
 A new look for the Now Playing Screen

For complete details see the Change Log.

Please download, install, and enjoy! If you find any bugs or have any suggestions, please report them in the forums on the Harmonium website. Thanks!


----------



## benh57

Looks good.

A couple requests:

- Show elapsed time on now playing screen
- Automatic fetch of album artwork, like galleon. (none of my tracks have artwork, but the 'image search' galleon displays works most of the time..)


btw any suggestion for a mac/itunes script to automatically get all my album art?

Why does 'next' turn on/off shuffle and repeat? That makes no sense... they should skip forward and back tracks.


----------



## perrce

Elapsed time: I'd like to, but I get my time cues from tivo and they are only updated periodically. I'll look into it, but it might not be possible to do cleanly. It's pretty likely that we would skip seconds (jump from 2:22 to 2:24), and/or the elapsed time might be greater than the reported total time. It's goofy like that. Despite that, I agree it would be nice.

Auto fetch artwork. Maybe, but it would be a low priority item for a while.

Key selection: There's no great reason. I had decided early on that next/prev tracks would be controlled by channel up/down. I needed keys for toggling shuffle/repeat and they had some things going for them: they were symmetrically placed on the remote, and the icons on the keys gave visual cues to their purpose. The one that loops back on itself (instant replay) controls whether the music will loop back to the beginning, and the one that looks like the arrow in being inserted into the middle of a stack (advance, and ok, that one takes a little imagination  ) controls the shuffle.


----------



## s2kdave

perrce said:


> The problem I had was that I couldn't get it to play music on a TiVo.


I found a workaround so you can play music and use bananas plus with HME 1.4.1e if you want to try it out. Just have your factory extend FactoryPlus and pass in true to the superclass and then music should play properly.

http://www.tivocommunity.com/tivo-vb/showthread.php?p=6542286#post6542286


----------



## jhimmel

Percce,

Thank you for providing this.
I have been waiting for something like this. Installed today and working well.
Have a great day.

Jim H.


----------



## perrce

Version 0.4 BETA of Harmonium Music Player is available for download from the Harmonium web page. This version fixes a few minor bugs, and implements one new feature. For details see the Change Log.

Harmonium now caches the contents of your music collection so that start up times can be sped up. For example, my startup time for my music collection went from around 14 minutes to less than one minute. Hopefully this will help all of you guys with massive music collections. Note that you won't see the speed up the first time you run the new version. You should notice a marked improvement on the second and subsequent runs, though. (The first time, it has to re-read the music collection so that it can be cached.)

Please report any bugs or suggestions to the Forums on the Harmonium web page. Enjoy!


----------



## windracer

perrce said:


> Harmonium now caches the contents of your music collection so that start up times can be sped up.


:up::up: Downloading now ...


----------



## s2kdave

looking at the logs I noticed some strangeness. I ran it and it indexed everything the first time. Then I connected with the simulator and played a song, then I exiting the app. Then in the logs, it went through my entire music collection printing a message like this:

INFO | jvm 1 | 2008/08/08 08:03:29 | DEBUG: File out of date. Removing: Metallica/...And Justice For All/08 To Live Is To Die.mp3


Well I haven't modified any of the files so of course something is wrong.

Where does the cache file get saved?

Also, can you turn off the wrapper debugging by default? The easiest way to run out of disk space from the log file is from these logs that happen every second.
DEBUG | wrapperp | 2008/08/08 08:13:10 | send a packet PING : ping
INFO | jvm 1 | 2008/08/08 08:13:10 | Received a packet PING : ping
INFO | jvm 1 | 2008/08/08 08:13:10 | Send a packet PING : ok
DEBUG | wrapperp | 2008/08/08 08:13:10 | read a packet PING : ok
DEBUG | wrapper | 2008/08/08 08:13:10 | Got ping response from JVM


----------



## windracer

s2kdave said:


> Also, can you turn off the wrapper debugging by default?


For Hamonium's debug messages, just comment out the parameter line in wrapper.conf with -debug listed. For the wrapper specifically, set the wrapper.debug line to FALSE and wrapper.console.loglevel to INFO (just like for Galleon ).

I'm having problems getting 0.4b to even start, but I started a separate thread on the Harmonium support forum.


----------



## s2kdave

windracer said:


> For Hamonium's debug messages, just comment out the parameter line in wrapper.conf with -debug listed. For the wrapper specifically, set the wrapper.debug line to FALSE and wrapper.console.loglevel to INFO (just like for Galleon ).
> 
> I'm having problems getting 0.4b to even start, but I started a separate thread on the Harmonium support forum.


Yeah, I saw your post and replied to it. Not too sure why mine works and yours doesn't. The only thing I can think of is permission problems. Like SELinux or regular permissions.


----------



## perrce

s2kdave said:


> Then in the logs, it went through my entire music collection printing a message like this:
> 
> INFO | jvm 1 | 2008/08/08 08:03:29 | DEBUG: File out of date. Removing: Metallica/...And Justice For All/08 To Live Is To Die.mp3
> 
> Well I haven't modified any of the files so of course something is wrong.


I'll take a look.



s2kdave said:


> Where does the cache file get saved?


The file is saved in the music root directory in a file called ".HarmoniumCache".


----------



## windracer

perrce said:


> The file is saved in the music root directory in a file called ".HarmoniumCache".


Hmmm ... I wonder if this is related to my problem? I don't see a .HarmoniumCache folder in my musicRoot. Maybe it's not able to create the directory? My musicRoot is a mounted SMB share, by the way ...


----------



## perrce

It's not a directory, it's a file. (Text file actually. Mostly CSV. Don't modify it.) If it can't find the file it should just ignore it. As for the network drive, you might try making a music root on a local (non-network) drive and see if that improves matters.


----------



## windracer

s2kdave said:


> looking at the logs I noticed some strangeness. I ran it and it indexed everything the first time. Then I connected with the simulator and played a song, then I exiting the app. Then in the logs, it went through my entire music collection printing a message like this:
> 
> INFO | jvm 1 | 2008/08/08 08:03:29 | DEBUG: File out of date. Removing: Metallica/...And Justice For All/08 To Live Is To Die.mp3M


I'm seeing this same thing now that I've got it working. After the scan, it went through again "removing" tracks.


----------



## perrce

s2kdave said:


> looking at the logs I noticed some strangeness. I ran it and it indexed everything the first time. Then I connected with the simulator and played a song, then I exiting the app. Then in the logs, it went through my entire music collection printing a message like this:
> 
> INFO | jvm 1 | 2008/08/08 08:03:29 | DEBUG: File out of date. Removing: Metallica/...And Justice For All/08 To Live Is To Die.mp3
> 
> Well I haven't modified any of the files so of course something is wrong.
> 
> Where does the cache file get saved?
> 
> Also, can you turn off the wrapper debugging by default? The easiest way to run out of disk space from the log file is from these logs that happen every second.
> DEBUG | wrapperp | 2008/08/08 08:13:10 | send a packet PING : ping
> INFO | jvm 1 | 2008/08/08 08:13:10 | Received a packet PING : ping
> INFO | jvm 1 | 2008/08/08 08:13:10 | Send a packet PING : ok
> DEBUG | wrapperp | 2008/08/08 08:13:10 | read a packet PING : ok
> DEBUG | wrapper | 2008/08/08 08:13:10 | Got ping response from JVM


Short version: I could not reproduce the problem. I've started a thread on this bug report over on the Harmonium Forums since it is starting to get into the nitty-gritty.

Details and a new testing version of the JAR are in this Harmonium Forums thread.


----------



## jhimmel

For some reason .4 is not working for me. .31 worked fine.
This is my command and error -

D:\Program Files\TiVo\Harmonium>java -jar Harmonium.jar org.dazeend.harmonium.Harmonium -musicRoot "D:/My Music/TuneBite" -playlistRoot "D:/My Music/Playlists"
HME SDK 1.4 (TiVo, Inc.)
Looking for music collection cache...
No cache found. Searching for music. This may take several minutes...
Searching for playlists. This may take several minutes...
Build of music database completed
error: unable to invoke method: null
error: make sure the class is public and has a public static getAppFactory method
Failed to instantiate any HME apps


----------



## windracer

jhimmel said:


> error: unable to invoke method: null


I was having the same problem (on Linux) initially and then for some reason it just started working. Here's my thread on the Harmonium forums:

http://harmonium.dazeend.org/forums/viewtopic.php?f=4&t=15


----------



## jhimmel

How many times did you try before it started working?
Maybe I just haven't run it enough yet?


----------



## windracer

It was quite a few. My music library is on a mounted share from my NAS, so I had tried copying some music files locally and Harmonium worked. Then I reset it to point at the NAS and tried it one more time and it started! I have no idea why ...


----------



## perrce

To clarify, the problem you saw (with the messages about a null method) have only shown up when you use network storage? I haven't been able to reproduce the problem, but that might be because I don't have any networked drives. If you ever find a way to reliably reproduce the problem, please post.


----------



## windracer

Well, it looks like jhimmel got the null problem too and from his command-line it doesn't appear he's using a network drive.

If I can replicate, I'll definitely let you know.


----------



## jhimmel

windracer said:


> Well, it looks like jhimmel got the null problem too and from his command-line it doesn't appear he's using a network drive.
> 
> If I can replicate, I'll definitely let you know.


You are correct - local drive.

Jim H.


----------



## perrce

The next time one of you get the "null method" message, please try to run Harmonium as in the platform independent installation using a command line like this:



Code:


$ java -jar Harmonium.jar org.dazeend.harmonium.Harmonium -musicRoot /home/music -playlistRoot /home/playlists

This will take the Java Service Wrapper out of the equation, and help me see if the problem is in Harmonium, or in the JSW that launches it. Thanks.


----------



## perrce

Version 0.4.2 BETA of Harmonium Music Player is available for download from the Harmonium web page. This version fixes a bug related to caching the music collection, and adds some debugging messages. For details see the Change Log.

Please report any bugs or suggestions to the Forums on the Harmonium web page.

*windracer* and *jhimmel*: The debugging messages I added should help diagnose the "null method" errors you've been seeing. Please install the new version.


----------



## jhimmel

perrce said:


> The next time one of you get the "null method" message, please try to run Harmonium as in the platform independent installation using a command line like this:


That is the way I have always run it.

Tried 0.4.2
Same exact error as I posted above -

D:\Program Files\TiVo\Harmonium>java -jar Harmonium.jar org.dazeend.harmonium.Harmonium -musicRoot "D:/My Music/TuneBite" -playlistRoot "D:/My Music/Playlists"
HME SDK 1.4 (TiVo, Inc.)
Looking for music collection cache...
No cache found. Searching for music. This may take several minutes...
Searching for playlists. This may take several minutes...
Build of music database completed
error: unable to invoke method: null
error: make sure the class is public and has a public static getAppFactory method
Failed to instantiate any HME apps


----------



## windracer

0.4.2 started just fine for me. I even deleted .HarmoniumCache (on the NAS) and let it re-scan/re-create the cache.


----------



## perrce

jhimmel said:


> Tried 0.4.2
> Same exact error as I posted above


That's too bad. s2kdave thought he had identified the area of the code that was generating the error, so I wrapped it in some code that prints better messages when errors are encountered. Apparently that wasn't it.

Do you get this error every time you start up?


----------



## s2kdave

I've recompiled the Main class for the sample host. Download it right next to Harmonium.jar and rename the extension to .jar instead of .zip. (Attachment limitation)

Then run this:


Code:


java -classpath "hme-host-sample-debug.jar;Harmonium.jar;lib/bananas.jar;lib/commons-logging-1.1.1.jar;lib/hme.jar;lib/hme.jar;lib/hme-hd-0.4.1.jar;lib/hme-host-sample.jar;lib/JID3.jar" com.tivo.hme.host.sample.Main org.dazeend.harmonium.Harmonium -musicRoot "D:/My Music/TuneBite" -playlistRoot "D:/My Music/Playlists"

You should then see a stack trace when you get the error.


----------



## jhimmel

Okay s2, here is what resulted -

D:\MyDownloads\TiVo\Harmonium42>java -classpath "hme-host-sample-debug.jar;Harmo
nium.jar;lib/bananas.jar;lib/commons-logging-1.1.1.jar;lib/hme.jar;lib/hme.jar;l
ib/hme-hd-0.4.1.jar;lib/hme-host-sample.jar;lib/JID3.jar" com.tivo.hme.host.samp
le.Main org.dazeend.harmonium.Harmonium -musicRoot "D:/My Music/TuneBite" -playl
istRoot "D:/My Music/Playlists"
HME SDK 1.4 (TiVo, Inc.)
Looking for music collection cache...
No cache found. Searching for music. This may take several minutes...
Searching for playlists. This may take several minutes...
Build of music database completed
java.lang.NoClassDefFoundError: au/com/bytecode/opencsv/CSVWriter
at org.dazeend.harmonium.music.MusicCollection.writeCache(MusicCollection.java:291)
at org.dazeend.harmonium.music.MusicCollection.build(MusicCollection.java:440)
at org.dazeend.harmonium.music.MusicCollection.getMusicCollection(MusicCollection.java:93)
at org.dazeend.harmonium.Harmonium$HarmoniumFactory.init(Harmonium.java:320)
at com.tivo.hme.sdk.Factory.initFactory(Factory.java:628)
at com.tivo.hme.sdk.Application.getAppFactory(Application.java:1495)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.tivo.hme.host.sample.Main.createFactory(Main.java:390)
at com.tivo.hme.host.sample.Main.<init>(Main.java:151)
at com.tivo.hme.host.sample.Main.<init>(Main.java:60)
at com.tivo.hme.host.sample.Main.main(Main.java:534)
Caused by: java.lang.ClassNotFoundException: au.com.bytecode.opencsv.CSVWriter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 14 more
error: unable to invoke method: null
error: make sure the class is public and has a public static getAppFactory method
Failed to instantiate any HME apps


----------



## perrce

Thanks. Now that I have a line number, I can try t figure out what's going on.


----------



## windracer

Obviously something related to writing the cache.


----------



## s2kdave

java.lang.NoClassDefFoundError: au/com/bytecode/opencsv/CSVWriter

This means you're missing the opencsv.jar in the lib directory or it's not on the classpath. Oops, looks like I forgot to include it in the classpath in my example. Add ";lib/opencsv-1.8.jar" to the end of the classpath list and run it again.


----------



## s2kdave

Oh! Duh... I left the lib/opencsv-1.8.jar off the list because I just copied the list in the Manifest.mf file. It's missing there and that's why it doesn't work at all. The opencsv-1.8.jar is not on the classpath when you run using "-jar Harmonium.jar"


BTW, if you run it using the windows version with the Harmonium.bat file that uses the wrapper.exe, it will most likely work for you.


----------



## perrce

Yeah, that would do it. I'll get that fixed.


----------



## jhimmel

Thanks guys.


----------



## perrce

Version 0.4.3 BETA of Harmonium Music Player is available for download from the Harmonium web page. This version corrects the class path (which should fix a bug that has prevented the platform independent version from running), and corrects background images to meet TiVo specifications (which will hopefully prevent the flickering that some users have seen). For details see the Change Log.

Please report any bugs or suggestions to the Forums on the Harmonium web page.


----------



## jhimmel

That seemed to fix it.
I'll run it through its paces later.

Jim H.


----------



## jhimmel

Seems to be working well.
Cover art is working now too.
Good work.

Jim H.


----------



## f0gax

Does this have un-encrypted AAC support?


----------



## perrce

Nope. It is MP3 only at this point. Maybe some day I'll get AAC working, but it's been tougher than I thought it would be up to this point.


----------



## windracer

I can't get to http://harmonium.dazeend.org today. Problems with the site?


----------



## s2kdave

I'm able to get to it as of right now.


----------



## windracer

Yep, seems to working again.


----------



## perrce

Version 0.5 BETA of Harmonium Music Player has been released. Notable features include upgraded styling for standard definition screens, the ability to skip alphabetically through lists (using ADVANCE/REPLAY) while browsing music, behavior more consistent with TiVo when browsing (SELECT and RIGHT now do the same thing), and several bug fixes. (See the Change Log for details.) Version 0.5 BETA can be downloaded from the Harmonium home page.

If you are willing to help me test a suspected bug in this new version, please see this thread on the Harmonium Forums.

Enjoy the new version!


----------



## perrce

Version 0.5.1 BETA of Harmonium Music Player is now available from the Harmonium downloads page. This is a bug fix version that reverts to earlier versions of some libraries in order to avoid some bugs associated with the newer versions. See the Change Log for details.


----------



## s2kdave

Bummer that 1.4.1e didn't work out so well. maybe one day I'll work on getting bananas plus compatible with 1.4. It's hard to make it compatible with both though because of the API differences with inheriting classes.


----------



## perrce

Yeah, I tried to avoid it, but 1.4.1e just isn't ready. I loved the extra features that Bananas-Plus offered, but just couldn't stay with it. I did port the BScrollPanePlus to HME 1.4 and Bananas 1.3, and still use it in the About screen. That alone saved me several hours of work, so thanks.


----------



## perrce

Just a heads up to everyone looking for Harmonium: the website has moved. I've consolidated a couple of my projects under one website: http://software.dazeend.org. Once there, click on Harmonium and everything should be there, including the forums.


----------



## bschuler2007

Thank you perrce.. this is exactly what I have been wishing to be able to do with my Tivo for years, but was stuck with the clunky built in music player. Yours really is a really nice looking and functional music player. You've opened up the music side of my Tivo finally.. thank you!

Any chance for a search ability being added some day? Seems the only thing missing from this otherwise awesome app.


----------



## iolsen

I've done some work on Harmonium over the past year, and finally packaged up the new version, 0.7.

I'd post a link, but this goofy forum won't let me until I have 2 more posts. 

You can find it here: code.google.com/p/harmonium/

The changes since Charles' last release include:


Implemented Tivo resource management. The out of memory errors should no longer occur. Harmonium should also no longer slow down the longer you run it.
Browse music by album artist, track artist, or track name.
Re-arranged items on the main screen a bit. "Now Playing" only appears when music is playing.
On long lists, you can use the number keys to jump by 10% increments in the list. Pressing 5 takes you to the midpoint in the list. Pressing 7 takes you 70% of the way to the bottom. 0 toggles between the top and bottom of the list.
There's a configurable screen blanker. It defaults to 5 minutes.
You can play a list of music starting with the current track. Like an iPod, when you press play on the 5th song of an album, you start playing the whole album, starting with the 5th song.
You can browse playlists. You can start playback at a particular track.
Info button from anywhere takes you to now playing, if music is playing. (Maybe it always did this? I can't remember.)
After 20 seconds of inactivity, if music is playing, the Now Playing screen is displayed.
"Now Playing" playlist:
When there's music playing, there's a "Now Playing" playlist.
Like any other playlist, you can browse it and jump to any track.
Browse it via the "Browse Playlists" screen while music is playing.
Browse it by pressing "Info" while on Now Playing. (So pressing "Info" twice from anywhere will get you there.)
You can add tracks to play next or add them at the end without stopping playback. Cool for parties.

"Back" (channel down button) while playing a track goes to the beginning of the track if more than 2 seconds have elapsed in the song (like an iPod or CD player).
Time in current song updates on now playing screen.
Play button from lots of screens does what you'd expect.
Lists are no longer case sensitive.
If an album has "Disc XX" or "CD XX" at the end of it, it gets removed. (Only for display. The mp3 file isn't altered.) You have to delete Harmonium's cache file and restart to see this.
Fixed some crashes caused by unusual MP3s, bad album art, etc.
Some modest performance improvements when building music cache.
Modest performance improvements fetching album art.
Fixed current playlist consistency when toggling shuffle on/off.
Added button sound effects where they were missing.
Fixed/suppressed a bunch of compiler warnings in the blinkenlights library and included that with source.
Use jmdns 1.0 rather than the jmdns code in hme.jar, which resolves an issue where Harmonium would periodically disappear from the Tivo.
Pressing <ENTER> now adds the selected item to a playlist, not the selected item's parent.
Added most of the source from hme.jar, allowing me to fix the HeadlessException thrown when running on a Linux machine that's not logged in (or lacking X entirely).
Added artist name to browse playlist screen.
Pressing <PLAY> on a disc now plays just that disc.
Updated README with current information.
Updated to the latest version of Java Service Wrapper.
Default wrapper.conf changes:
Passing java.net.preferIPv4Stack=true to java commandline to work on OSes with ipv6 enabled.
Removed -debug from java commandline
Changed min/max java heap to 32/256.
Minor log size/splitting changes.


----------



## perrce

A huge thank you to Ian (iolsen) for all the work he's done on Harmonium over the last year. This release is a huge step forward, and I think everyone will find it's far superior to the last version I put out.

If you find yourself waiting for an "official" release, don't. This is it. My interests have wandered over the last year, and Ian has picked up the ball and run with it. Ian's maintaining Harmonium now. (Ah, the beauty of open source!) That being said, we are going to keep Harmonium's current homepage updated and active. I'll be putting the new package and new documentation up on http://software.dazeend.org/harmonium as soon as I can. (Might be after the Christmas holiday.) And if you have any feedback or questions you can continue to use the Harmonium message boards.

Thanks again Ian. I hope everyone enjoys his hard work!


----------



## jbernardis

This is a great project, but I was sad to see it sit for so long. I am happy it was picked up and someone is moving it forward. I was using it anyway and was very happy with it, but it's good to see the additional browsing capabilities and other new features. I can't wait to get home tonight to try it out tonight.


----------



## spocko

Great work Ian, thanks!


----------



## tlphipps

Wow, I know you said you've been working on it for awhile now, but that's an impressive list of improvements for sure. Thanks!

Downloading now...


----------



## jcthorne

Been looking for a reasonable replacement for audio faucet that has been out of development for years. Downloading this and giving it a try, looks impressive!


----------



## jbernardis

I have been playing with the new Harmonium all evening - great work Ian. The Now Playing playlist alone makes the upgrade worthwhile, but all of the new features are great too.

I assume since you released this as 0.7 that you still have some ideas for improvements, but let me make the following suggestions. These are based on a few hours of use:

1. The ability to browse by Genre. Maybe not a highly useful feature, but there are times when it comes in handy.

2. The ability to add an album to the "Now Playing" playlist. I see how you can do it with a single track, but it would be nice to be able to add an album too. I guess this could be extended to an Album Artist, but at least an album.

3. The ability to save the "Now Playing" playlist as a normal playlist so that it can be replayed later. The other playlist editting features would be nice too, but at least the ability to save it.

One other thing - I noticed after I deleted a normal playlist, that when I returned to the "Browse Playlists" screen, the "Now Playing" playlist was not visible. I had to exit to the main menu and then return to the "Browse Playlists" screen before I saw it.


----------



## iolsen

Thanks for the positive feedback!

Great minds think alike, jbernardis.  As you saw on the dazeend forums, these ideas are all near the top of my personal wishlist, too.

I'm not sure how much time I'll have over the holidays, but I do intend to keep working on Harmonium. The Google Code site's got a list of known issues and pending features, too (code.google.com/p/harmonium/issues/list). People can submit new items or vote on existing issues there.


----------



## reneg

Installed this app yesterday and it works pretty darn good. Thanks. 

Here's a couple feature requests.
1) Would like a default.txt kind of like pytivo uses for metadata, but for referencing cover art on a per directory basis if there is none embedded in the file.
2) Lyric lookup & display.


----------



## iolsen

I'm glad it's working well for you, reneg. Thanks for the feature suggestions.


----------



## jcthorne

Couple of questions, since I am new to your program, not sure if I am using it wrong or if I found a feature request....

Pressing play while on a disc plays that disk. OK works. Browsing to another disk and pressing enter should add to the current 'now playing' list? It does not and instead prompts for the name of a playlist to save to. How to add to the 'now playing' list?

It seems the player only displays cover art contained in the id3 tag, not cover.jpg in the folder with the disc mp3 files. I need to edit all my mp3s to add the cover art to them? If so, any suggestions of software that can automate that task for some 250k files?


While playing music and browsing to other titles to add to playlist, each time a button is pressed the music skips.

Is there a place to edit the name that shows up in the Music, Photos and Showcases list to start the program? The single word Harmonium is non discript to the rest of my family and friends. Can it display some other text? The title screen when the program opens as well would be nice if it could be edited.

It does take quite a while to load. I understood the first time when its building the cache (1.5 hrs) but when loading the cache it still takes over 20 minutes to start. Is this normal and as intended?

Please don't get me wrong, this looks like a long complaint list but the package is so far ahead of what else is out there that I have high hope of at least finding work arounds/instructions to make it usable for now and improve going forward. GREAT WORK so far, very impressive.


----------



## iolsen

jcthorne said:


> Pressing play while on a disc plays that disk. OK works. Browsing to another disk and pressing enter should add to the current 'now playing' list? It does not and instead prompts for the name of a playlist to save to. How to add to the 'now playing' list?


Yeah, you can only add individual tracks to the now playing list in the current release. Fixing this is near the top of the to do list.



jcthorne said:


> It seems the player only displays cover art contained in the id3 tag, not cover.jpg in the folder with the disc mp3 files. I need to edit all my mp3s to add the cover art to them? If so, any suggestions of software that can automate that task for some 250k files?


The embedded art is the only supported art right now. You're the second person to ask for this now, so maybe I'll bump it up. It is on the list.



jcthorne said:


> While playing music and browsing to other titles to add to playlist, each time a button is pressed the music skips.


I don't have this issue, and haven't heard any other reports of it. What kind of Tivo do you have? What are the PC and network specs?



jcthorne said:


> Is there a place to edit the name that shows up in the Music, Photos and Showcases list to start the program? The single word Harmonium is non discript to the rest of my family and friends. Can it display some other text? The title screen when the program opens as well would be nice if it could be edited.


There's currently no way to change this as a user.



jcthorne said:


> It does take quite a while to load. I understood the first time when its building the cache (1.5 hrs) but when loading the cache it still takes over 20 minutes to start. Is this normal and as intended?


For a library of 250k files, I suppose this is normal, but not intended.  My library is only about 5,000 files, so I haven't done any testing at that size. I have noticed that my Harmonium server running Linux is substantially slower starting up (after the cache is built) than the same machine was when running Windows XP, but I haven't spent any time trying to figure out why. I'm thinking about moving the cache from a flat file to something like sqlite, but it probably won't be done anytime soon. The idea is that we would not have to read the whole database into memory at startup, we'd simply query it as needed while Harmonium runs. This would immensely help people with large libraries in terms of both startup speed and memory consumption. That's issue 25.



jcthorne said:


> Please don't get me wrong, this looks like a long complaint list but the package is so far ahead of what else is out there that I have high hope of at least finding work arounds/instructions to make it usable for now and improve going forward. GREAT WORK so far, very impressive.


I'm always happy to get feedback.


----------



## jcthorne

Hey, thanks for the detailed reply. As far as my setup goes, TivoHD with 1TB drive internal, wired Gigabit Ethernet network with netgear switch. Server is only a 1.4Ghz PentiumM with 1.25GB memory and 4TB of storage so I could understand if its limited by server HP and its shared with pyTivo. Is the mp3 actually played on the tivo or streamed from the server?

As far as the large library goes, at least it handles it all and once running seems snappy enough. The load time is not that big a deal for me as I intend it to run most of the time.


----------



## Chew

I thought I'd give this a try today.

Using the latest version, I followed the Windows instructions (Windows7). After a successful test, I installed it as a service.

Everything I try to play now results in: "An error occured while running the application. The application closed during a read (0x50006)"

I stopped the service and opened the harmonium.bat cmd window. Running it this way, everything worked fine.

Restarted the service and got the same error.

The error occurs right after I select an Artist to display the album list. If it matters, I use iTunes with TuneUp (which cleans tags and pulls in album art).


----------



## spocko

jcthorne said:


> It seems the player only displays cover art contained in the id3 tag, not cover.jpg in the folder with the disc mp3 files. I need to edit all my mp3s to add the cover art to them? If so, any suggestions of software that can automate that task for some 250k files?


Mp3tag can easily embed cover art into a collection of MP3 files.
http://www.mp3tag.de/en/

Procedure:
- In Mp3tag, change directory to root of your music files
- Select all files (Ctrl-A)
- Press Shift+Alt+5
- Choose "Import cover from file"
- Enter "cover.jpg" (or whatever name you use) as the input filename


----------



## iolsen

Chew said:


> I thought I'd give this a try today.
> 
> Using the latest version, I followed the Windows instructions (Windows7). After a successful test, I installed it as a service.
> 
> Everything I try to play now results in: "An error occured while running the application. The application closed during a read (0x50006)"
> 
> I stopped the service and opened the harmonium.bat cmd window. Running it this way, everything worked fine.
> 
> Restarted the service and got the same error.
> 
> The error occurs right after I select an Artist to display the album list. If it matters, I use iTunes with TuneUp (which cleans tags and pulls in album art).


My first guess is that this is some kind of security/permissions issue associated with running as a service. In harmonium's logs directory, there should be a file wrapper.log. Do you see errors in here when running as a service?

In your Windows services (Start->Control Panel->Administrative Tools->Services) what's listed under "Log On As" for the Harmonium service?


----------



## Chew

iolsen said:


> My first guess is that this is some kind of security/permissions issue associated with running as a service. In harmonium's logs directory, there should be a file wrapper.log. Do you see errors in here when running as a service?
> 
> In your Windows services (Start->Control Panel->Administrative Tools->Services) what's listed under "Log On As" for the Harmonium service?


I mainly run my system on a User account, so that must be the case.

I'll check when I get home. Thanks


----------



## rjmitche

iolsen said:


> My first guess is that this is some kind of security/permissions issue associated with running as a service


I had this problem as well when attempting to run Harmonium as a service under the Local System Account. I think it has to do with where the Harmonium 'temp' file (example: harmonium1927088746043106050.txt) is written by Java - which appears to be under the Users directory by default. I managed to solve the problem by changing this location to be under the Harmonium directory by adding this to the wrapper.conf:



Code:


wrapper.java.additional.2=-Djava.io.tmpdir=..\temp

and adjusting the security/permissions of that temp folder (which may not have been necessary - I'm still trying to fully understand the Windows 7 security model).

Running the service under my regular User account also solved the problem.

-----

I really like all the enhancements in the current update. Thanks for your work on this.

I see the known issue of the screen blanking setting not working reliably - I normally set it to 'off' but, it still kicks in. But, that's just a minor annoyance at this point.

The biggest problem I'm currently experiencing with Harmonium on Windows 7 (64-bit) is that, after sitting idle (no music playing) for a varying amount of time, I get an error that requires a restart of Harmonium. It seems to happen when running in either Console mode or as a Service. Here are some snippets from the wrapper.log (the numbers after the exception vary - I've seen anywhere from 2 >= 2 to 11 >= 11) :

Console Mode:


Code:


STATUS | wrapper  | 2009/12/30 21:59:32 | --> Wrapper Started as Console
STATUS | wrapper  | 2009/12/30 21:59:32 | Java Service Wrapper Community Edition 32-bit 3.3.9
STATUS | wrapper  | 2009/12/30 21:59:32 |   Copyright (C) 1999-2009 Tanuki Software, Ltd.  All Rights Reserved.
STATUS | wrapper  | 2009/12/30 21:59:32 |     http://wrapper.tanukisoftware.org
STATUS | wrapper  | 2009/12/30 21:59:32 | 
STATUS | wrapper  | 2009/12/30 21:59:32 | Launching a JVM...
INFO   | jvm 1    | 2009/12/30 21:59:34 | WrapperManager: Initializing...
INFO   | jvm 1    | 2009/12/30 21:59:35 | HME SDK 1.4 (TiVo, Inc.)
INFO   | jvm 1    | 2009/12/30 21:59:35 | Looking for music collection cache...
INFO   | jvm 1    | 2009/12/30 21:59:35 | Cache found. Loading cache...
INFO   | jvm 1    | 2009/12/30 22:01:42 | LOG: added factory
INFO   | jvm 1    | 2009/12/30 22:01:42 | MDNS: http://192.168.1.151:7288/harmonium/
INFO   | jvm 1    | 2009/12/30 22:43:47 | LOG: 192.168.1.140 icon.png HTTP GET - to factory /harmonium/
INFO   | jvm 1    | 2009/12/31 04:50:27 | Exception in thread "JmDNS.SocketListener" java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
INFO   | jvm 1    | 2009/12/31 04:50:27 | 	at java.util.Vector.elementAt(Unknown Source)
INFO   | jvm 1    | 2009/12/31 04:50:27 | 	at javax.jmdns.DNSRecord.suppressedBy(Unknown Source)
INFO   | jvm 1    | 2009/12/31 04:50:27 | 	at javax.jmdns.DNSOutgoing.addAnswer(Unknown Source)
INFO   | jvm 1    | 2009/12/31 04:50:27 | 	at javax.jmdns.JmDNS.handleQuery(Unknown Source)
INFO   | jvm 1    | 2009/12/31 04:50:27 | 	at javax.jmdns.JmDNS$SocketListener.run(Unknown Source)
INFO   | jvm 1    | 2009/12/31 04:50:27 | 	at java.lang.Thread.run(Unknown Source)

Service:


Code:


STATUS | wrapper  | 2009/12/31 06:52:03 | --> Wrapper Started as Service
STATUS | wrapper  | 2009/12/31 06:52:03 | Java Service Wrapper Community Edition 32-bit 3.3.9
STATUS | wrapper  | 2009/12/31 06:52:03 |   Copyright (C) 1999-2009 Tanuki Software, Ltd.  All Rights Reserved.
STATUS | wrapper  | 2009/12/31 06:52:03 |     http://wrapper.tanukisoftware.org
STATUS | wrapper  | 2009/12/31 06:52:03 | 
STATUS | wrapper  | 2009/12/31 06:52:05 | Launching a JVM...
INFO   | jvm 1    | 2009/12/31 06:52:11 | WrapperManager: Initializing...
INFO   | jvm 1    | 2009/12/31 06:52:11 | HME SDK 1.4 (TiVo, Inc.)
INFO   | jvm 1    | 2009/12/31 06:52:12 | Looking for music collection cache...
INFO   | jvm 1    | 2009/12/31 06:52:12 | Cache found. Loading cache...
INFO   | jvm 1    | 2009/12/31 06:54:45 | LOG: added factory
INFO   | jvm 1    | 2009/12/31 06:54:45 | MDNS: http://192.168.1.151:7288/harmonium/
INFO   | jvm 1    | 2009/12/31 09:34:02 | Exception in thread "JmDNS.SocketListener" java.lang.ArrayIndexOutOfBoundsException: 7 >= 7
INFO   | jvm 1    | 2009/12/31 09:34:02 | 	at java.util.Vector.elementAt(Unknown Source)
INFO   | jvm 1    | 2009/12/31 09:34:02 | 	at javax.jmdns.DNSRecord.suppressedBy(Unknown Source)
INFO   | jvm 1    | 2009/12/31 09:34:02 | 	at javax.jmdns.DNSOutgoing.addAnswer(Unknown Source)
INFO   | jvm 1    | 2009/12/31 09:34:02 | 	at javax.jmdns.JmDNS.handleQuery(Unknown Source)
INFO   | jvm 1    | 2009/12/31 09:34:02 | 	at javax.jmdns.JmDNS$SocketListener.run(Unknown Source)
INFO   | jvm 1    | 2009/12/31 09:34:02 | 	at java.lang.Thread.run(Unknown Source)
STATUS | wrapper  | 2009/12/31 11:54:20 | <-- Wrapper Stopped


----------



## iolsen

rjmitche said:


> I had this problem as well when attempting to run Harmonium as a service under the Local System Account. I think it has to do with where the Harmonium 'temp' file (example: harmonium1927088746043106050.txt) is written by Java - which appears to be under the Users directory by default. I managed to solve the problem by changing this location to be under the Harmonium directory by adding this to the wrapper.conf:
> 
> 
> 
> Code:
> 
> 
> wrapper.java.additional.2=-Djava.io.tmpdir=..\temp
> 
> and adjusting the security/permissions of that temp folder (which may not have been necessary - I'm still trying to fully understand the Windows 7 security model).
> 
> Running the service under my regular User account also solved the problem.


Thanks, that makes sense. I'll log an issue to handle this better in a future release.



rjmitche said:


> The biggest problem I'm currently experiencing with Harmonium on Windows 7 (64-bit) is that, after sitting idle (no music playing) for a varying amount of time, I get an error that requires a restart of Harmonium. It seems to happen when running in either Console mode or as a Service. Here are some snippets from the wrapper.log (the numbers after the exception vary - I've seen anywhere from 2 >= 2 to 11 >= 11)


This is an issue I specifically tried to fix in this release. I used to have this problem too. Did you upgrade from a previous version of Harmonium? If so, it's important to clean out your lib directory and replace it with only the contents of the 0.7 release's lib directory. Specifically, I suspect you still have hme.jar in your lib folder, which contains the buggy jmdns code that I replaced with jmdns-1.0.jar.


----------



## rjmitche

iolsen said:


> Did you upgrade from a previous version of Harmonium? If so, it's important to clean out your lib directory and replace it with only the contents of the 0.7 release's lib directory. Specifically, I suspect you still have hme.jar in your lib folder, which contains the buggy jmdns code that I replaced with jmdns-1.0.jar.


Thanks for the quick reply.

I did upgrade from a pervious version and there was an hme.jar file in the lib directory. I cleaned it out and replaced with the contents of the 0.7 lib directory.

I assume that's it but, I'll let you know if it continues to happen.


----------



## iolsen

rjmitche said:


> I did upgrade from a pervious version and there was an hme.jar file in the lib directory. I cleaned it out and replaced with the contents of the 0.7 lib directory.
> 
> I assume that's it but, I'll let you know if it continues to happen.


Great. Let me know if you continue to see the screen blanker issue, too. I wonder if it's related. (That would explain why I've never been able to reproduce it.)


----------



## Chew

iolsen said:


> In your Windows services (Start->Control Panel->Administrative Tools->Services) what's listed under "Log On As" for the Harmonium service?


I switched the Log On As to the Admin account and it's working on Service mode now. :up:


----------



## RobAtSGH

I think we've a worthy successor to AudioFaucet here, with the added bonus that it seems more stable overall and is lighter weight to boot. Thanks for your work on this, Ian - it addresses a primary complaint I have about the Tivo software, that the standard Music app is just so awful I can't contemplate making the Tivo my all-in-one media device. I was actually getting ready to buy a separate network music player for the AV center until I grabbed Harmonium.

It looks good, it performs well, and no weird kludgy screen draws on my HD unit.

A couple of things:
* Browsing by album artist not only lists all the artists, but _every_ track in the library as well (artist names first, then every track filename), which makes the 0-9 keys not very functional. This doesn't happen when browsing by track artist.
* The routine that builds the cache file seems to have serious problems with track #s and disc #s as stored in the metadata by iTunes (9.0.2 installed). If I change the track or disk ID3v2 metadata in iTunes, Harmonium stores a "0" for those values in the cache fields. Winamp reads the info correctly from the iTunes modified files, and if I open the file info and save back the same exact data with Winamp, the Harmonium cache file updates with correct values in the disk & track fields.
* I also have the problem with the screen blanker that, no matter what value I set, it always blanks after 5:00. Installed current version fresh - no prior versions installed.

One request: Would you consider using/supporting standard PLS or M3U playlist formats? It would be fantastic not to have to build playlists for multiple apps.

(Windows XP 32-bit, SP3, JRE 6U11, TivoHD w/software 11.0d)


----------



## jcthorne

spocko said:


> Mp3tag can easily embed cover art into a collection of MP3 files.
> http://www.mp3tag.de/en/
> 
> Procedure:
> - In Mp3tag, change directory to root of your music files
> - Select all files (Ctrl-A)
> - Press Shift+Alt+5
> - Choose "Import cover from file"
> - Enter "cover.jpg" (or whatever name you use) as the input filename


THANKS! that worked very well. Still working on my files but for the 20k or so files I have done it worked a champ. Letting it run overnight on the rest. Now all will have imbeded cover art along with the cover.jpg so it will work either way. One problem down.....


----------



## iolsen

RobAtSGH said:


> Browsing by album artist not only lists all the artists, but _every_ track in the library as well (artist names first, then every track filename), which makes the 0-9 keys not very functional. This doesn't happen when browsing by track artist.


What it's doing here is listing all the tracks that have no album artist set at the bottom of the album artist list. Maybe it would make more sense to have a single "Unknown" album artist that all these fall under.



RobAtSGH said:


> The routine that builds the cache file seems to have serious problems with track #s and disc #s as stored in the metadata by iTunes (9.0.2 installed). If I change the track or disk ID3v2 metadata in iTunes, Harmonium stores a "0" for those values in the cache fields. Winamp reads the info correctly from the iTunes modified files, and if I open the file info and save back the same exact data with Winamp, the Harmonium cache file updates with correct values in the disk & track fields.


This is the first I've heard of this one. If you'd be willing to send me a file that has the problem (ian dot olsen at gmail dot com) I'll look into it.



RobAtSGH said:


> I also have the problem with the screen blanker that, no matter what value I set, it always blanks after 5:00. Installed current version fresh - no prior versions installed.


Bummer! I've still never seen this myself, but enough other people are reporting it, it has to be a real bug. When you go back into the options screen, does it show the new value you set (something other than 5 minutes)? You have to press SELECT on "Set Options" for the new setting to be saved, which is certainly non-intuitive.



RobAtSGH said:


> One request: Would you consider using/supporting standard PLS or M3U playlist formats? It would be fantastic not to have to build playlists for multiple apps.


m3u playlists are supported, read-only. You can play them, you just can't edit them.


----------



## jayfest

I'm considering this program as an alternative to TiVo Desktop or AudioFaucet. It sounds good, but one thing in the Install document concerned me:_

When Harmonium first starts, it reads and catalogs the music files
that it finds under your music root. This process may take several
minutes. (A sample collection of 3500 music files takes 20 minutes to
complete.) Until this process has completed, Harmonium will not
appear on your TiVo. 
_
I'm in the process of moving my entire CD collection to my computer. Right now I have almost 9000 files on there. So does this mean that I won't be able to use Harmonium until 50 minutes after I turn my computer on EVERY DAY? Or have I misunderstood?


----------



## iolsen

jayfest said:


> I'm in the process of moving my entire CD collection to my computer. Right now I have almost 9000 files on there. So does this mean that I won't be able to use Harmonium until 50 minutes after I turn my computer on EVERY DAY? Or have I misunderstood?


You've misunderstood. Building the cache happens just once, and is a bit time-consuming. Thereafter, Harmonium uses the cache it already built each time it starts up.


----------



## jayfest

Good. I was hoping you'd say that. And then I suppose it has to run a little to include any new additions you've made to the iTunes library since the last time you ran it.


----------



## iolsen

jayfest said:


> Good. I was hoping you'd say that. And then I suppose it has to run a little to include any new additions you've made to the iTunes library since the last time you ran it.


Yep. Every time you access Harmonium from a Tivo it scans the library for changes. You can use Harmonium while this scan is happening.


----------



## beagledave

Is anyone running this on a Mac?

If so, I'd appreciate a short description of how you got it going. Thanks!


----------



## jayfest

I installed Harmonium on my computer and it seems to be running. I can play many of my albums with it through my TiVo, but I am noticing however that a very large portion of my music library is not sorted in Harmonium by Album Artist. Instead, there is a very large number of songs at the bottom of my list which are unidentified by Artist or Album. 
TiVo Desktop recognizes files by Directory and File Name, which on my computer is kept in an organized manner by iTunes. I thought maybe Harmonium was using the ID3 tags on the MP3 files instead, but I have looked at some of the files Harmonium is not sorting properly and the ID3 tags appear to be there, so I'm at a loss as to what is going on. What am I missing?

EDIT: Upon further review, I have discovered that the songs which are not sortede have the info in ID3v2 but not ID3v1. I'm using that MP3Tag program mentioned above to copy the tags from ID3v2 to ID3v1. Let's see if that helps. I think it will.


----------



## jcthorne

Make sure the ID3v2 tag ALBUM ARTIST not just TRACK ARTIST or ARTIST or COMPOSER is filled in for ALL your files. I had this same problem and when the Album Artist fields were all filled in correctly, they all display correct in harmonium now. All 250k of them. I am VERY impressed with this software. Its good enought now to replace Audio faucet and hopeful it will continue development going forward.

Hope I can help in some small way, even if its just helping other users here get it running.


----------



## jayfest

Yes, my problem with the loose songs at the bottom of the list is now gone. I do notice that when my computer first starts up though, it seems as if the Harmonium item comes up in my TiVo "Music, Photos and Showcases" list before the cache has been totally read. When I first tried Harmonium today, the long list of single songs was still at the bottom, but when I tried it again 5 minutes later, it was not (presumably reflecting the modifications I made yesterday with that MP3Tag tool, which hadn't been read in by the time I made my first try). 

Now I'm focusing on the 20 or so artists or albums I've found so far that actually crash the Harmonium app altogether. I went through my lists of artists yesterday, selecting those where I noticed irregularities in the ID3 entries while using MP3TAG and many of them were the ones that caused a crash. I'm not quite sure what's going on, but I still have some cleanup to do. 

So far, I believe Harmonium appears to have more features than AudioFaucet or TiVo Desktop, but the fact that it uses the ID3 info, rather than the iTunes info, can make for more work for the user, depending on the source of his MP3 files. I've found that even commercial CDs are not always consistent in using these tags, where Disc 1 and Disc 2 of the same album might have differences.


----------



## jayfest

By looking inside the *.HarmoniumCache* file, I could see that the places where the app crashed corresponded to albums where the YEAR field was neither _empty for all songs on the album_ nor _filled for all songs_.

Normally, ripping an entire album from a CD onto a computer would not cause this to occur, but as I replace my vinyl and cassette with CDs, often a Greatest Hits CD will be missing a few songs I wanted to keep from the multiple albums I had in older formats, so I'd go out and, shall we say, acquire them in some other manner. Sometimes these extra songs would be a little spotty in some of their ID3 fields. That MP3Tag program was a BIG help spotting the missing items and filling in all the fields (Album Artist as well). I think I've fixed all the problem spots and I now know what I have to do when I add more music to my computer (I have a very long way to go before I'm finished). I also had to delete the cache file and recreate it from scratch.

I like Harmonium. I do have one more question and one feature I wish were there:

Do the settings get lost every time I exit the app or are they remembered from day to day?

and

I wish there were those little up and down arrows along the edge of the screen when some list extends beyond the top or bottom of the page, like there are on the other TiVo screens. It's not too important on the list of artists, but it'd be more useful for a list of albums by an artist or a list of songs on an album, where I might forget there's more than I can just see on the screen at one time.


----------



## iolsen

jayfest said:


> Yes, my problem with the loose songs at the bottom of the list is now gone. I do notice that when my computer first starts up though, it seems as if the Harmonium item comes up in my TiVo "Music, Photos and Showcases" list before the cache has been totally read. When I first tried Harmonium today, the long list of single songs was still at the bottom, but when I tried it again 5 minutes later, it was not (presumably reflecting the modifications I made yesterday with that MP3Tag tool, which hadn't been read in by the time I made my first try).


This sounds like the expected behavior. When building the cache for the very first time, you can't access Harmonium until it's done. While Harmonium is running on the server, each time you access it from a Tivo receiver it kicks off a scan of your library and updates the cache with any changes it finds. It does this while you're using Harmonium, so you can expect to see some changes in your library while it's working.



jayfest said:


> Now I'm focusing on the 20 or so artists or albums I've found so far that actually crash the Harmonium app altogether. I went through my lists of artists yesterday, selecting those where I noticed irregularities in the ID3 entries while using MP3TAG and many of them were the ones that caused a crash. I'm not quite sure what's going on, but I still have some cleanup to do.


I'd really like to fix these issues. If you figure out the cause, let me know. If you can't figure it out, it would be helpful if you could send me an mp3 that causes the crash so I can troubleshoot and fix it directly.


----------



## iolsen

jayfest said:


> By looking inside the *.HarmoniumCache* file, I could see that the places where the app crashed corresponded to albums where the YEAR field was neither _empty for all songs on the album_ nor _filled for all songs_.


Interesting. I'll make a note to try this. If this is truly the culprit, it should be an easy fix.



jayfest said:


> Do the settings get lost every time I exit the app or are they remembered from day to day?


They're saved. But you have to press SELECT on "Set Options" for any changes to take effect.



jayfest said:


> I wish there were those little up and down arrows along the edge of the screen when some list extends beyond the top or bottom of the page, like there are on the other TiVo screens. It's not too important on the list of artists, but it'd be more useful for a list of albums by an artist or a list of songs on an album, where I might forget there's more than I can just see on the screen at one time.


I've noticed the absence of those arrows, too. I've logged an issue.


----------



## RobAtSGH

iolsen said:


> What it's doing here is listing all the tracks that have no album artist set at the bottom of the album artist list. Maybe it would make more sense to have a single "Unknown" album artist that all these fall under.


Ah - that's very interesting. All of my files have an Artist tag for each track, but not all have an Album Artist. Not every ripper fills that in by default.



iolsen said:


> This is the first I've heard of this one. If you'd be willing to send me a file that has the problem (ian dot olsen at gmail dot com) I'll look into it.


I'll see what I can do here.



iolsen said:


> Bummer! I've still never seen this myself, but enough other people are reporting it, it has to be a real bug. When you go back into the options screen, does it show the new value you set (something other than 5 minutes)? You have to press SELECT on "Set Options" for the new setting to be saved, which is certainly non-intuitive.


The setting is saved, and the value I've chosen appears in the Application Options screen. It just doesn't seem to have any affect on the screen saver's behavior.

And I realized that the .hpl playlists are essentially m3u format after I posted that.  Any chance of supporting http URLs? If Harmonium played my internet radio station playlists as well, that'd be just spiffy!

Thanks for the work you've put into this app - it's great to finally have a decent music player.


----------



## iolsen

I've released Harmonium 0.7.1 with the following changes:

You can now add artists/albums/etc. to the "Now Playing" playlist.
You can now save the "Now Playing" playlist to a permanent playlist.
Fixed cross-fading of album art and info on HAlbumInfoScreen.
On the Add to Playlist screen, playlists are now sorted by last modification date. So the playlist you've most recently modified appears on top.
Fixed an issue where "Now Playing" didn't always appear on the Browse Playlists screen, even when music was playing.
Fixed a couple places where the default shuffle/repeat mode was used for HPL playlists, rather than the mode stored with the playlist itself.
Changed the default album art graphic.

There's also a (very slight) chance I fixed the issue with the screen blanker option not working reliably. I can't be sure, because I haven't witnessed the problem myself. If anybody notices that it's been fixed, I'd appreciate the feedback. 

--
Ian


----------



## jcthorne

Edited

I got it. Playlists and music cannot be the same directory. Its building cache now will take a while.


----------



## jcthorne

I have tried this twice now and Harmonium is locking up and restarting. I can browse to an album, press play andthe album starts playing. start browsing for another album and within a few steps the music playing locks in a loop and the harmonioum window on the server shows JVM appears hung.

It then restarts the JVM and harmonium reloads, including reloading the cache which takes a good ten minutes before it will respond to tivo commands again.

Please let me know if there are specific sequences or error messages you could use to diagnose this. Thanks!

Follow up...tried again a few times. If I go more slowly in navigating it does not seem to lock up as easily. Seems there is something tripping up between key presses and response, display etc. also the reindex function seems to take off as soon as the first track starts playing. Perhaps it should wait until key presses have stopped for a while so as not to have so much going on at once? Then again it may be my old computer that is working as a server. Its only a 1.8ghz single core laptop with 1.2GB memory running WinXP.

The harmonium window also reports a warning resource 2957 not found repeatedly and some related 2957 event complaints.

On the screen blanker, setting for most times seems to work now. However setting for never does not and blanks anyway.


----------



## jayfest

Well, I thought I had the Harmonium crashing figured out, as I mentioned above. I had fixed the ID tags for all my albums to make sure the songs were either all filled in the YEAR field or all empty in that field. Then I deleted the HarmoniumCache file and restarted my machine to recreate a new file. Harmonium worked properly for a few days, but now it's crashing on some (not sure if it's all) of the same albums and artists it was crashing on last week, even though I have fixed those albums' ID tags. Is there some other location besides the directory specified in the wrapper.conf file that Harmonium could be finding a HarmoniumCache file that maybe is older and defective? 

I'm going to delete the one Cache file I see and try Harmonium again after I reboot and the file gets rebuilt, but I must admit I don't know why this should have happened.


----------



## iolsen

jcthorne said:


> I have tried this twice now and Harmonium is locking up and restarting. I can browse to an album, press play andthe album starts playing. start browsing for another album and within a few steps the music playing locks in a loop and the harmonioum window on the server shows JVM appears hung.
> 
> It then restarts the JVM and harmonium reloads, including reloading the cache which takes a good ten minutes before it will respond to tivo commands again.


Is this a new problem with 0.7.1, or did you also have it with 0.7? Does it happen only navigating screens that include album art, or on any screen?



jcthorne said:


> Follow up...tried again a few times. If I go more slowly in navigating it does not seem to lock up as easily. Seems there is something tripping up between key presses and response, display etc. also the reindex function seems to take off as soon as the first track starts playing. Perhaps it should wait until key presses have stopped for a while so as not to have so much going on at once? Then again it may be my old computer that is working as a server. Its only a 1.8ghz single core laptop with 1.2GB memory running WinXP.


The re-index is actually kicked off when you access Harmonium, not when a song is first played. I have little doubt that some of the trouble you're having is because you have a very large library and a somewhat underpowered machine. I'm actually a little bit surprised Harmonium's working at all with a library that large, on that machine. Have you changed the max heap size in wrapper.conf? When Harmonium is up and running, if you open Windows' Task Manager, go to the Processes tab, and find java.exe. What does the memory/private working set column say?

I do have some ideas for making Harmonium perform much better with large libraries, but it will likely be some time before they're implemented.

I'd be curious to know if you temporarily reduced your music library to something like 5k or 10k files, does Harmonium start behaving better?



jcthorne said:


> The harmonium window also reports a warning resource 2957 not found repeatedly and some related 2957 event complaints.


These aren't cause for concern.



jcthorne said:


> On the screen blanker, setting for most times seems to work now. However setting for never does not and blanks anyway.


Bummer. I'm still trying to figure this one out.

--
Ian


----------



## iolsen

jayfest said:


> Well, I thought I had the Harmonium crashing figured out, as I mentioned above. I had fixed the ID tags for all my albums to make sure the songs were either all filled in the YEAR field or all empty in that field. Then I deleted the HarmoniumCache file and restarted my machine to recreate a new file. Harmonium worked properly for a few days, but now it's crashing on some (not sure if it's all) of the same albums and artists it was crashing on last week, even though I have fixed those albums' ID tags. Is there some other location besides the directory specified in the wrapper.conf file that Harmonium could be finding a HarmoniumCache file that maybe is older and defective?
> 
> I'm going to delete the one Cache file I see and try Harmonium again after I reboot and the file gets rebuilt, but I must admit I don't know why this should have happened.


It's unlikely that deleting the cache is going to help. The library Harmonium uses to parse ID3 tags has some issues, and I suspect that's what's going on here. I'd like to eventually move to JAudioTagger, which I think will help with both some crashing issues and people who have trouble with libraries built/tagged with iTunes.

But in the short term, if you send me a track or two that causes a crash, I can probably fix the specific issue that's causing it in the existing crummy library. 

--
Ian


----------



## jcthorne

Is this a new problem with 0.7.1, or did you also have it with 0.7? Does it happen only navigating screens that include album art, or on any screen?

I never saw this in 0.7 but could not add additional albums to the playlist while playing so did not navigate much after selecting an album. Now that it adds to playlist, I do. The two times it happend so far the albums being displayed did have album art.


Have you changed the max heap size in wrapper.conf? 

Don't recall doing that. Should I? To what?

When Harmonium is up and running, if you open Windows' Task Manager, go to the Processes tab, and find java.exe. What does the memory/private working set column say?

26868K


I do have some ideas for making Harmonium perform much better with large libraries, but it will likely be some time before they're implemented.

I'd be curious to know if you temporarily reduced your music library to something like 5k or 10k files, does Harmonium start behaving better?

This I would have to set up a temp drive of files for and test. Will try this weekend.

Thanks,


----------



## jayfest

iolsen said:


> It's unlikely that deleting the cache is going to help. The library Harmonium uses to parse ID3 tags has some issues, and I suspect that's what's going on here. I'd like to eventually move to JAudioTagger, which I think will help with both some crashing issues and people who have trouble with libraries built/tagged with iTunes.
> 
> But in the short term, if you send me a track or two that causes a crash, I can probably fix the specific issue that's causing it in the existing crummy library.
> 
> --
> Ian


Well, you are right. Deleting the cache and having it rebuilt did not fix the problem. But my Harmonium is not crashing on tracks, it's crashing on albums. When I initially made a partial list of albums it crashed on, I noticed that they all had the inconsistency in the ID Year field that I have been mentioning. But even after fixing that field for all of the albums where I noticed a crash, I've tried those albums and I'm still getting crashes on several of them. I'm not sure if I even have the complete list of all the albums that will crash (I have more than 500 albums in my library). Oh, and did I mention that for a few days last week, even those few albums played correctly without crashing? I suppose it's possible that I got them to work for 0.7 and then when I downloaded version they 0.71 broke again, but I have no idea whether or not that is really the case.


----------



## iolsen

jcthorne said:


> When Harmonium is up and running, if you open Windows' Task Manager, go to the Processes tab, and find java.exe. What does the memory/private working set column say?
> 
> 26868K
> 
> Have you changed the max heap size in wrapper.conf?
> 
> Don't recall doing that. Should I? To what?


Sounds like you're well within the default limit, so I don't think you need to change anything.



jcthorne said:


> I'd be curious to know if you temporarily reduced your music library to something like 5k or 10k files, does Harmonium start behaving better?
> 
> This I would have to set up a temp drive of files for and test. Will try this weekend.


Did this yield results?


----------



## iolsen

jayfest said:


> But even after fixing that field for all of the albums where I noticed a crash, I've tried those albums and I'm still getting crashes on several of them. I'm not sure if I even have the complete list of all the albums that will crash (I have more than 500 albums in my library). Oh, and did I mention that for a few days last week, even those few albums played correctly without crashing? I suppose it's possible that I got them to work for 0.7 and then when I downloaded version they 0.71 broke again, but I have no idea whether or not that is really the case.


If I missed this earlier, I apologize, but let me ask: what are you actually doing when Harmonium crashes? Just listening? Is the Now Playing screen up? Does it crash right when starting to play a new song?

Or are you crashing when navigating a menu somewhere?


----------



## jayfest

I go to Browse Music, then it gives me the list of artists. When I select an artist where I have only one ("bad") album, it crashes right there, but I think if I have more than one album by the artist, but only one is "bad", it shows me the list of their albums and crashes when I try to navigate to that album on the list. 

I never get to actually play any song on these "bad" albums. Everything else plays properly.


----------



## iolsen

Thanks for the quick reply. Sounds like it's probably album art that's causing the crash. We grab the album art from the first mp3 file corresponding to that album that we happen to encounter when scanning your library. So if there's only one track in an album that's got album art that Harmonium doesn't like, there isn't really a good way to tell which one it is. That would also explain why the crashes seem kind of random.

All of which is to say: if you send me all the tracks for an album that causes a crash, I can probably fix it.

I should add that if you're concerned about copyright/piracy issues, you have my word I won't keep the files after I've figured out the issue. Plus I apparently have finicky music tastes. I am yet to get a track from somebody for troubleshooting that I even _wanted_ to keep.


----------



## jayfest

Actually, I have been able to go into Winamp and see that there are in fact, songs in the "bad" albums that have embedded album art inconsistent with others in that same album. I believe I'd just as soon go in and fix them myself in Winamp. But my question is, after I have fixed them, what do I have to do to get Harmonium working properly? Do I have to delete the Cache file and have it recreated?


----------



## iolsen

Sorry, I wasn't clear. I wasn't going to alter the album art and send the files back to you. I was going to see what it is in your files that causes Harmonium to crash, and fix Harmonium to stop crashing. 

Even if the album art in a file is fubar for some reason, obviously it would be better if Harmonium just failed to display it, rather than crashing. That was the idea. My own library led me to fix one or two crash issues related to album art, but it's clear I haven't found them all. If people have files that cause Harmonium to crash in new and exotic ways, it's great if I can borrow those files in order to squash more bugs. 

In terms of updating the album art to make the problem go away, you don't have to do anything other than update the files in Harmonium's library. You don't have to delete the cache.


----------



## jayfest

I'm sorry. I thought that might have been what you meant, but I wasn't sure. I suppose I could send you an album, but it's probably going to be 40-50MB. I'm going to send you an e-mail through the forum to discuss the manner of transmission.


----------



## jcthorne

iolsen said:


> Sounds like you're well within the default limit, so I don't think you need to change anything.
> 
> Did this yield results?


Yes, 250 or so files in a directory structure and point harmonium there. cache builds in about 30 seconds and seems to work normally on the tivo end as far as delays/lockups due to keypresses.

I went back to the full collection and things strangly enough are a bit better, likely less load on the server at the time as harmonium is not the only thing running/serving. Suppose I need to think about upgrading the server hardware....


----------



## iolsen

jayfest said:


> I suppose I could send you an album, but it's probably going to be 40-50MB. I'm going to send you an e-mail through the forum to discuss the manner of transmission.


Thanks for sending this.

The good news is, I had some time to look into it this morning. The bad news is, I couldn't reproduce a crash.

I did observe that some tracks in this album had embedded art and others didn't, but Harmonium was basically acting the way I'd expect: displaying art on the album page, but not on the track screens for those tracks with no art. I haven't gotten it to crash yet.

What version of Java are you running? If you're not sure, open a command prompt window and type "java -version" and let me know what it says.

Another idea I should have mentioned before: send me your log file(s). They're in the log directory. I might be able to track down the cause of the crash from there.


----------



## jayfest

iolsen said:


> What version of Java are you running? If you're not sure, open a command prompt window and type "java -version" and let me know what it says.
> 
> Another idea I should have mentioned before: send me your log file(s). They're in the log directory. I might be able to track down the cause of the crash from there.


Here's what I got:

java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode)

And here's today's portion of the log when I tried to access that Artist:
INFO | jvm 1 | 2010/01/24 01:32:22 | LOG: HME receiver connected
INFO | jvm 1 | 2010/01/24 01:32:23 | Jan 24, 2010 1:32:22 AM com.almilli.tivo.bananas.hd.HDApplication initApp
INFO | jvm 1 | 2010/01/24 01:32:23 | INFO: Current resolution is: Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]
INFO | jvm 1 | 2010/01/24 01:32:23 | Jan 24, 2010 1:32:22 AM com.almilli.tivo.bananas.hd.HDApplication initApp
INFO | jvm 1 | 2010/01/24 01:32:23 | INFO: Changing resolution to: Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]
INFO | jvm 1 | 2010/01/24 01:32:23 | Jan 24, 2010 1:32:22 AM com.almilli.tivo.bananas.hd.HDApplication handleEvent
INFO | jvm 1 | 2010/01/24 01:32:23 | INFO: Received resolution event: ResolutionInfo[current=Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1],supported=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]Resolution[width=704,height=480,aspectNumerator=40,aspectDenominator=33]Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]]
INFO | jvm 1 | 2010/01/24 01:32:23 | LOG: unknown event opcode : 10
INFO | jvm 1 | 2010/01/24 01:32:23 | Jan 24, 2010 1:32:23 AM com.almilli.tivo.bananas.hd.HDApplication handleEvent
INFO | jvm 1 | 2010/01/24 01:32:23 | INFO: Received resolution event: ResolutionInfo[current=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1],supported=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]Resolution[width=704,height=480,aspectNumerator=40,aspectDenominator=33]Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]]
INFO | jvm 1 | 2010/01/24 01:32:51 | LOG: HME receiver disconnected
INFO | jvm 1 | 2010/01/24 01:32:51 | LOG: connection to receiver closed
INFO | jvm 1 | 2010/01/24 01:32:51 | Exception in thread "Thread-15" com.tivo.hme.sdk.HmeException: Can't create output stream!
INFO | jvm 1 | 2010/01/24 01:32:51 | at com.tivo.hme.sdk.Application.fatalError(Application.java:938)
INFO | jvm 1 | 2010/01/24 01:32:51 | at com.tivo.hme.sdk.Application.cmdRsrcAddImage(Application.java:1171)
INFO | jvm 1 | 2010/01/24 01:32:51 | at com.tivo.hme.sdk.ImageResource$ImageResourceImage.<init>(ImageResource.java:137)
INFO | jvm 1 | 2010/01/24 01:32:51 | at com.tivo.hme.sdk.HmeObject.createImage(HmeObject.java:266)
INFO | jvm 1 | 2010/01/24 01:32:51 | at org.dazeend.harmonium.Harmonium$AlbumArtCache.Add(Harmonium.java:970)
INFO | jvm 1 | 2010/01/24 01:32:51 | at org.dazeend.harmonium.screens.HManagedResourceScreen.createManagedImage(HManagedResourceScreen.java:90)
INFO | jvm 1 | 2010/01/24 01:32:51 | at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.getAlbumImage(HAlbumInfoListScreen.java:442)
INFO | jvm 1 | 2010/01/24 01:32:51 | at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.updateInfo(HAlbumInfoListScreen.java:387)
INFO | jvm 1 | 2010/01/24 01:32:51 | at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.access$100(HAlbumInfoListScreen.java:290)
INFO | jvm 1 | 2010/01/24 01:32:51 | at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList$1.run(HAlbumInfoListScreen.java:355)
INFO | jvm 1 | 2010/01/24 01:32:58 | LOG: 192.168.10.106 icon.png HTTP GET - to factory /harmonium/

Let me know if you need more.


----------



## iolsen

jayfest said:


> Let me know if you need more.


You're running exactly the same version of Java as me, so that's not it.

I'm still not sure why you're getting crashes and I'm not, but with the info from your log I can at least stop the crashing and just load the default art when there's an issue.

I emailed you a new build with that change. It will be included in the next public release--probably 0.7.2.


----------



## iolsen

I've released Harmonium 0.7.2 with the following changes:

You can now edit the "Now Playing" playlist.
Added basic support for displaying cover art in *.jpg files.
The "Now Playing" playlist browser now shows the shuffled playlist when shuffle is turned on.
Fix for screen saver always coming on after roughly 5 minutes even if it was turned off, or set for a longer delay.
Added support for navigating the Edit Playlist screen with the number keys.
Fixed a crash related to album art.

I'm obviously not putting much thought into these version numbers.  It is what it is.

A couple notes about the album art changes:

By default, if no embedded art is found, Harmonium will look for files in the mp3 file's folder in this order:

cover.jpg
folder.jpg
*.jpg
The last one means that any JPG file in the folder could potentially be treated like album art, if nothing else is found. If you've set up cover art for your library using Winamp, that art should now appear in Harmonium.

If you've got a decent sized library with very little embedded album art, this change will noticably increase the server's startup time. If that bothers you (especially if you don't have any jpg art, either), you can tweak your wrapper.conf to disable the change. There are directions in the file itself, but the quick version is this. Three new optional wrapper.conf parameters have been added:

ignoreEmbeddedArt
ignoreJpgFileArt
preferJpgFileArt
They can be combined in all the ways that make sense. For example, if you've got no album art anywhere, and you just want Harmonium to start up as fast as possible, you could add both the ignoreEmbeddedArt and ignoreJpgFileArt parameters to disable album art altogether. This is also a useful troubleshooting configuration for people experiencing occasional crashes, because 9 times out of 10, album art is to blame.

If you've got mostly file-based cover art, adding the preferJpgFileArt parameter will look for files first.

If you're happy with the way Harmonium is handling your cover art now, you don't need to change anything.


----------



## jcthorne

Hey, thanks for the update. Trying it today!


----------



## cburbs

I tried this on a win7 64 bit and it was running as a service and then I had to restart the service and now it no longer will start up. I even uninstalled the service and reinstalled it.

Any ideas?


----------



## iolsen

Do these suggestions help?


----------



## EvilMidniteBombr

I've tried to install Harmonium but keep getting this error:


> wrapper | OpenSCManager failed - Access is denied. (0x5)
> Press any key to continue . . .


The batch file works wonderfully. I can access the entire library (including playlists) and play any song. I am running windows 7 home premium 64bit. I copied all the harmonium files to the program files (x86) directory.


----------



## iolsen

So you've installed the service, and you see this error when trying to run it as a service?

What account is the service configured to run as?


----------



## EvilMidniteBombr

I can't install it. That is the error I get whenever I try to run the install program.


----------



## iolsen

The Windows install directions include this:



> NOTE: On Windows Vista or Windows 7, you'll need to right-click InstallHarmonium.bat and select "Run as adminstrator."


Did you do that?


----------



## jcthorne

Is it possible for harmonium to play streaming audio from online sources?


----------



## EvilMidniteBombr

Well, I thought I had done that. I guess that's why I don't get paid to think. But... Now I get an error on the tivo when I try to play a song. I can see all the artists but when I try to browse songs it gives me the following error.



> An error occured while running the application. The application closed during a read (0x50006).


Do I need to turn on some sort of file sharing permissions? It wasn't necessary when using the batch file.


----------



## jim _h

Please excuse my jumping in on this thread... but I've been googling for some place where some people are using Harmonium.

Having just digitized a large CD collection and started using ITunes, I searched for an application to tie ITunes to Tivo - mainly because I wanted album art on screen. I wandered through the usual forest of "dead web", finding things that didn't work, or were never completed. Harmonium sounded interesting but when I looked at the site, the most recent version for dowload is a beta from '08.

Then I went to this forum and I find people apparently using a more current version. How can I get in on this? I'm a software developer so I could probably offer some good feedback and bug reports.


----------



## jcthorne

Look 10 posts or so up. iolsen has posed the link to his latest version.


----------



## iolsen

EvilMidniteBombr said:


> Well, I thought I had done that. I guess that's why I don't get paid to think. But... Now I get an error on the tivo when I try to play a song. I can see all the artists but when I try to browse songs it gives me the following error.
> 
> ...
> 
> Do I need to turn on some sort of file sharing permissions? It wasn't necessary when using the batch file.


It's likely a permissions issue. What's in your log file when you get that error on the Tivo? Does changing the Harmonium service to run as your user account help?


----------



## iolsen

jcthorne said:


> Is it possible for harmonium to play streaming audio from online sources?


Not today, but it wouldn't be terribly difficult to do something basic. Like if an m3u playlist points to an mp3 stream, play it. Maybe I'll do that for the next release.


----------



## iolsen

jim _h said:


> Then I went to this forum and I find people apparently using a more current version. How can I get in on this?


You can always find the latest version at http://code.google.com/p/harmonium/.


----------



## jim _h

Thanks. It looks like at present, Harmonium doesn't use iTunes cover art, because it isn't stored as .JPGs along with the music files. Is that right?


----------



## iolsen

jim _h said:


> Thanks. It looks like at present, Harmonium doesn't use iTunes cover art, because it isn't stored as .JPGs along with the music files. Is that right?


Harmonium supports art in jpg files (e.g. cover.jpg or folder.jpg, more details here) and mp3-embedded. I'm not sure where iTunes puts its art. Can anybody enlighten me?


----------



## jim _h

The current system is apparently fairly wicked. The images are stored under the user's 'music' folder, with obfuscated folder/file names like this:

C:\Users\jim\Music\iTunes\Album Artwork\Download\2F5E4C16CBA802DC\00\00\08\2F5E4C16CBA802DC-5BE20EFA5586D800.itc2

I've read that an itc2 is an encrypted jpg. The artwork is linked to the tracks through the iTunes database.


----------



## EvilMidniteBombr

iolsen said:


> It's likely a permissions issue. What's in your log file when you get that error on the Tivo? Does changing the Harmonium service to run as your user account help?


If it were a permission thing, why will it work if I just run the harmonium.bat file?



Code:


STATUS | wrapper  | 2010/03/12 10:09:32 | --> Wrapper Started as Service
STATUS | wrapper  | 2010/03/12 10:09:32 | Java Service Wrapper Community Edition 32-bit 3.3.9
STATUS | wrapper  | 2010/03/12 10:09:32 |   Copyright (C) 1999-2009 Tanuki Software, Ltd.  All Rights Reserved.
STATUS | wrapper  | 2010/03/12 10:09:32 |     [url]http://wrapper.tanukisoftware.org[/url]
STATUS | wrapper  | 2010/03/12 10:09:32 | 
STATUS | wrapper  | 2010/03/12 10:09:33 | Launching a JVM...
INFO   | jvm 1    | 2010/03/12 10:09:39 | WrapperManager: Initializing...
INFO   | jvm 1    | 2010/03/12 10:09:40 | null null (null)
INFO   | jvm 1    | 2010/03/12 10:09:41 | Looking for music collection cache...
INFO   | jvm 1    | 2010/03/12 10:09:41 | Cache found. Loading cache...
INFO   | jvm 1    | 2010/03/12 10:10:16 | LOG: added factory
INFO   | jvm 1    | 2010/03/12 10:10:16 | MDNS: [url]http://192.168.123.155:7288/harmonium/[/url]
INFO   | jvm 1    | 2010/03/12 17:01:47 | LOG: 192.168.123.111 icon.png HTTP GET - to factory /harmonium/
INFO   | jvm 1    | 2010/03/12 17:01:52 | LOG: HME receiver connected
INFO   | jvm 1    | 2010/03/12 17:01:52 | Mar 12, 2010 5:01:52 PM com.almilli.tivo.bananas.hd.HDApplication initApp
INFO   | jvm 1    | 2010/03/12 17:01:52 | INFO: Current resolution is: Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]
INFO   | jvm 1    | 2010/03/12 17:01:52 | Mar 12, 2010 5:01:52 PM com.almilli.tivo.bananas.hd.HDApplication initApp
INFO   | jvm 1    | 2010/03/12 17:01:52 | INFO: Changing resolution to: Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]
INFO   | jvm 1    | 2010/03/12 17:01:52 | Mar 12, 2010 5:01:52 PM com.almilli.tivo.bananas.hd.HDApplication handleEvent
INFO   | jvm 1    | 2010/03/12 17:01:52 | INFO: Received resolution event: ResolutionInfo[current=Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1],supported=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]Resolution[width=704,height=480,aspectNumerator=40,aspectDenominator=33]Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]]
INFO   | jvm 1    | 2010/03/12 17:01:52 | LOG: unknown event opcode : 10
INFO   | jvm 1    | 2010/03/12 17:01:52 | Mar 12, 2010 5:01:52 PM com.almilli.tivo.bananas.hd.HDApplication handleEvent
INFO   | jvm 1    | 2010/03/12 17:01:52 | INFO: Received resolution event: ResolutionInfo[current=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1],supported=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]Resolution[width=704,height=480,aspectNumerator=40,aspectDenominator=33]Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]]
INFO   | jvm 1    | 2010/03/12 17:02:08 | LOG: HME receiver disconnected
INFO   | jvm 1    | 2010/03/12 17:02:08 | Exception in thread "Thread-9" LOG: connection to receiver closed
INFO   | jvm 1    | 2010/03/12 17:02:08 | com.tivo.hme.sdk.HmeException: Can't create output stream!
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at com.tivo.hme.sdk.Application.fatalError(Application.java:938)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at com.tivo.hme.sdk.Application.cmdRsrcAddImage(Application.java:1171)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at com.tivo.hme.sdk.ImageResource$ImageResourceImage.<init>(ImageResource.java:137)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at com.tivo.hme.sdk.HmeObject.createImage(HmeObject.java:266)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at org.dazeend.harmonium.Harmonium$AlbumArtCache.Add(Harmonium.java:1023)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at org.dazeend.harmonium.screens.HManagedResourceScreen.createManagedImage(HManagedResourceScreen.java:90)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.getAlbumImage(HAlbumInfoListScreen.java:416)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.updateInfo(HAlbumInfoListScreen.java:361)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.access$100(HAlbumInfoListScreen.java:264)
INFO   | jvm 1    | 2010/03/12 17:02:08 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList$1.run(HAlbumInfoListScreen.java:329)
INFO   | jvm 1    | 2010/03/12 17:02:14 | LOG: 192.168.123.111 icon.png HTTP GET - to factory /harmonium/


----------



## iolsen

EvilMidniteBombr said:


> If it were a permission thing, why will it work if I just run the harmonium.bat file?


Because when you run the batch file yourself, Harmonium runs with your account's credentials. When it runs as a Windows service, it can run as any account on your machine, and it doesn't have access to your library and/or a proper user temp path.

I gave some instructions here on how to get to the Harmonium Service and configure its account. Changing it to your user should fix this.


----------



## iolsen

jim _h said:


> The current system is apparently fairly wicked. The images are stored under the user's 'music' folder, with obfuscated folder/file names like this:
> 
> C:\Users\jim\Music\iTunes\Album Artwork\Download\2F5E4C16CBA802DC\00\00\08\2F5E4C16CBA802DC-5BE20EFA5586D800.itc2
> 
> I've read that an itc2 is an encrypted jpg. The artwork is linked to the tracks through the iTunes database.


Wow this is worse than I would have guessed. I don't see supporting native iTunes art in my near future.  If it's worth the trouble to you, I'd recommend using another tool (e.g. mp3tag, MediaMonkey, or Winamp) to add cover art to your library that will work with Harmonium.


----------



## jim _h

iolsen said:


> Wow this is worse than I would have guessed. I don't see supporting native iTunes art in my near future.  If it's worth the trouble to you, I'd recommend using another tool (e.g. mp3tag, MediaMonkey, or Winamp) to add cover art to your library that will work with Harmonium.


That's my plan. I don't want to be tied to iTunes forever, I don't like closed systems, and they don't come any more "closed" than Apple's.

I've started writing my own app, using Amazon Web Services to find the art and put a JPG in each album folder. I don't think I need the embedded images in the track files because I never move tracks individually. I've written code to use AWS before so I know the basics.


----------



## jcthorne

iolsen said:


> Not today, but it wouldn't be terribly difficult to do something basic. Like if an m3u playlist points to an mp3 stream, play it. Maybe I'll do that for the next release.


That would be pretty cool. Then I could put a number of m3u files in a folder labled 'Internet Radio' and select the station we wanted to listen to.


----------



## jim _h

I have hundreds of albums ripped to MP3, about half without album art. iTunes fills in some of the gaps, but omits a large number, and the art is stored in their own proprietary way, unuseable by Tivo applications like Harmonium. 

I've been searching on and off for a couple of days for a solution. I found tons of stuff that doesn't work, was never finished, or costs way too much. And there seem to be about 5 or 6 different, incompatible ways of storing the images. I looked into writing my own application do to this but Amazon was the main source and it's no longer open to anything but approved applications that display "buy from Amazon" links.

This forum seems to be used by some knowledgeable media geeks. If anyone knows of a working, usable tool to automatically find and embed album art for a large number of albums, I'm all ears.


----------



## jcthorne

I use a program called 'Tag&Rename'

Its not free but I have used it for years, it is regularly updated and works for this and other mp3 tagging and editing issues.


----------



## jim _h

I'll check out Tag&Rename - but maybe we can cut to the chase. I did find some programs that will find album art, but for just one album at a time, and it's too tedious when you're looking a hundreds. I need something that will search through all my albums, find the ones that don't have art, find and embed the best match and move on. I can clean up the errors later, case-by-case.

Will Tag&Rename do this?

Even better would be a something that pops up each match as its found and lets me accept it, or skip and go on.


----------



## EvilMidniteBombr

iolsen said:


> Because when you run the batch file yourself, Harmonium runs with your account's credentials. When it runs as a Windows service, it can run as any account on your machine, and it doesn't have access to your library and/or a proper user temp path.
> 
> I gave some instructions here on how to get to the Harmonium Service and configure its account. Changing it to your user should fix this.


Of course that fixed it. I should have searched this thread for the error code first. Sorry about that. Thanks for the help.


----------



## iolsen

jim _h said:


> I did find some programs that will find album art, but form just one album at a time, and way too tedious. I need something that will search through all my albums, find the ones that don't have art, find and embed the best match and move on. I can clean up the errors later, case-by-case.


Unfortunately I don't know of an existing program like this. I've primarily used Media Monkey to get my library's art in order, but it was a manual, one-at-a-time process. Despite being manual, Media Monkey's got a pretty nice "tag from web" feature for retrieving info (including cover art) from Amazon.


----------



## iolsen

EvilMidniteBombr said:


> Of course that fixed it. I should have searched this thread for the error code first. Sorry about that. Thanks for the help.


No worries. I'm glad to hear you got it working. I really ought to make this easier somehow, as it's a common stumbling block.


----------



## jim _h

iolsen said:


> Unfortunately I don't know of an existing program like this. I've primarily used Media Monkey to get my library's art in order, but it was a manual, one-at-a-time process. Despite being manual, Media Monkey's got a pretty nice "tag from web" feature retrieving info (including cover art) from Amazon.


I'm looking into Amazon's "Product Advertising" web service API which is what you use to get album art from them. There's a developer forum at Amazon, and I'm trying to find out what I can do under their license terms. If I can use that API I should be able to walk my entire music tree, search Amazon's db for a match, and drop a folder.jpg in each album that's lacking one.


----------



## EvilMidniteBombr

jim _h said:


> I have hundreds of albums ripped to MP3, about half without album art. iTunes fills in some of the gaps, but omits a large number, and the art is stored in their own proprietary way, unuseable by Tivo applications like Harmonium.
> 
> I've been searching on and off for a couple of days for a solution. I found tons of stuff that doesn't work, was never finished, or costs way too much. And there seem to be about 5 or 6 different, incompatible ways of storing the images. I looked into writing my own application do to this but Amazon was the main source and it's no longer open to anything but approved applications that display "buy from Amazon" links.
> 
> This forum seems to be used by some knowledgeable media geeks. If anyone knows of a working, usable tool to automatically find and embed album art for a large number of albums, I'm all ears.


I've never used this program (or even itunes for that matter) but maybe this will do what you want. http://www.tuneupmedia.com/ I have no idea if it's automated or not.


----------



## jim _h

EvilMidniteBombr said:


> I've never used this program (or even itunes for that matter) but maybe this will do what you want. http://www.tuneupmedia.com/ I have no idea if it's automated or not.


I tried TuneUp, and it works but it's integrated with iTunes so any cover art you get with it won't be usable by something like Harmonium. After yet more searching I found something with the catchy name of "Album Art Downloader" which may be the winner:

http://sourceforge.net/projects/album-art/

This program will at least go through all your music and show you, in one list, which albums are missing art. You can then fix them one-by-one and work down the list. It will offer you the images from several sites, you pick one, and it will store it as the standard folder.jpg.

The big list of "haves" and "have-nots" is very helpful. It will take a while but I think I can straighten out all my problems (including mis-labelled tracks and albums) with this tool.


----------



## jim _h

I gave Harmonium a try. It started ok, scanned all my music and built its cache. I went to the Tivo, browsed to an album and started playing it. But I could never play anything else after that first track. I'd browse to the track, select it, select "play just this track now" - I'd get the playback screen and see the album art, but playback never started.

Back at the console window where I started Harmonium I see a lot of "resource not found" errors.

jvm 1 | Harmonium[#1,uri=null] warning: resource 2852 not found.
jvm 1 | Harmonium[#1,uri=null] warning: resource 2852 not found.
jvm 1 | LOG: Received event for unknown resource id. Id = 2852, event = 2852.
RESOURCE_INFO(complete, {})
jvm 1 | LOG: 192.168.30.218 CD/The Beatles/Sgt. Pepper's Lonely Hearts Club B
and/01 Sgt. Pepper's Lonely Hearts Club Band.mp3 HTTP GET - to factory /harmoniu
m/
jvm 1 | Harmonium[#1,uri=null] warning: resource 2873 not found.
jvm 1 | Harmonium[#1,uri=null] warning: resource 2873 not found.
jvm 1 | LOG: Received event for unknown resource id. Id = 2873, event = 2873.
RESOURCE_INFO(closed, {position=122041, duration=180000, start=0, speed=1, bitra
te=192000000, pos=122041/180000})
jvm 1 | LOG: 192.168.30.218 CD/The Beatles/Sgt. Pepper's Lonely Hearts Club B
and/01 Sgt. Pepper's Lonely Hearts Club Band.mp3 HTTP GET - to factory /harmoniu
m/
jvm 1 | Harmonium[#1,uri=null] warning: resource 3066 not found.
jvm 1 | Harmonium[#1,uri=null] warning: resource 3066 not found.
jvm 1 | LOG: Received event for unknown resource id. Id = 3066, event = 3066.
RESOURCE_INFO(closed, {position=84082, duration=180000, start=0, speed=3, bitrat
e=192000000, pos=84082/180000})
jvm 1 | LOG: 192.168.30.218 CD/The Beatles/Sgt. Pepper's Lonely Hearts Club B
and/01 Sgt. Pepper's Lonely Hearts Club Band.mp3?Seek=51942 HTTP GET - to factor
y /harmonium/
jvm 1 | LOG: 192.168.30.218 I/O Exception handling HTTP GET CD/The Beatles/S
gt. Pepper's Lonely Hearts Club Band/01 Sgt. Pepper's Lonely Hearts Club Band.mp
3: Connection reset by peer: socket write error
jvm 1 | Harmonium[#1,uri=null] warning: resource 3828 not found.
jvm 1 | Harmonium[#1,uri=null] warning: resource 3828 not found.
jvm 1 | LOG: Received event for unknown resource id. Id = 3828, event = 3828.
RESOURCE_INFO(closed, {position=0, duration=180000, start=0, speed=1, bitrate=0,
pos=0/180000})
jvm 1 | Harmonium[#1,uri=null] warning: resource 3835 not found.
jvm 1 | Harmonium[#1,uri=null] warning: resource 3835 not found.
jvm 1 | LOG: Received event for unknown resource id. Id = 3835, event = 3835.
RESOURCE_INFO(closed, {position=0, duration=180000, start=0, speed=1, bitrate=0,
pos=0/180000})

... and etc.


----------



## EvilMidniteBombr

jim _h said:


> I tried TuneUp, and it works but it's integrated with iTunes so any cover art you get with it won't be usable by something like Harmonium. After yet more searching I found something with the catchy name of "Album Art Downloader" which may be the winner:
> 
> http://sourceforge.net/projects/album-art/
> 
> This program will at least go through all your music and show you, in one list, which albums are missing art. You can then fix them one-by-one and work down the list. It will offer you the images from several sites, you pick one, and it will store it as the standard folder.jpg.
> 
> The big list of "haves" and "have-nots" is very helpful. It will take a while but I think I can straighten out all my problems (including mis-labelled tracks and albums) with this tool.


Media Monkey has an option that does something similar. It's the music manager that I use. You can see a list of all the tracks that do not have album art or inconsistent album art and fix the entire album at once. It's also a really good podcatcher.


----------



## iolsen

jim _h said:


> I gave Harmonium a try. It started ok, scanned all my music and built its cache. I went to the Tivo, browsed to an album and started playing it. But I could never play anything else after that first track. I'd browse to the track, select it, select "play just this track now" - I'd get the playback screen and see the album art, but playback never started.
> 
> Back at the console window where I started Harmonium I see a lot of "resource not found" errors.


The resource not found messages aren't cause for concern.

This is the first I've heard of the playback problem you're reporting. If you restart the Tivo itself, does playback work again? Does it die again after one song?


----------



## jim _h

iolsen said:


> If you restart the Tivo itself, does playback work again? Does it die again after one song?


I verified that rebooting the PC and restarting Harmonium didn't help. Then I rebooted the Tivo, and things worked normally. I played several tracks, and tested pause/forward/back.


----------



## Airhead315

iolsen,

aaron.riesbeck here (the guy who complained about the shuffle after adding items to now playing list). 

I got really interested in this project and decided to contribute. I have been working on this for a while today and yesterday and have successfully added an album art failover feature. The current version you have checks the embedded meta data and the folder the mp3's reside in for album art. 

I looked into it and found that Last.fm has a free open source API for retreiving artist, song, and album meta data. Including links to album art. So I added the last.fm api and made a few changes to the getAlbumArt function by adding a getAlbumArtFromHTTP function which uses the API to retrieve the album art URL and then downloads the image into the cache. It only calls this function if no other method worked to retrieve an image.

I want to do a bit more testing on this to ensure my additions are safe for primetime. Please contact me and let me know if you are open to my modifications and we can talk about how I might get the changes to you, or if you want to give me access to the repository.

Before my modifications I had 24 albums without album art. After modifications 20 of the albums have correct album art and 4 of them remain without album art. The 4 that did not match all had some obvious issue with the album name. One of them had been concatenated, one had CD1 and CD2 on the end...etc...


----------



## iolsen

Airhead315 said:


> aaron.riesbeck here (the guy who complained about the shuffle after adding items to now playing list).
> 
> I got really interested in this project and decided to contribute. I have been working on this for a while today and yesterday and have successfully added an album art failover feature. The current version you have checks the embedded meta data and the folder the mp3's reside in for album art.
> 
> I looked into it and found that Last.fm has a free open source API for retreiving artist, song, and album meta data. Including links to album art. So I added the last.fm api and made a few changes to the getAlbumArt function by adding a getAlbumArtFromHTTP function which uses the API to retrieve the album art URL and then downloads the image into the cache. It only calls this function if no other method worked to retrieve an image.
> 
> I want to do a bit more testing on this to ensure my additions are safe for primetime. Please contact me and let me know if you are open to my modifications and we can talk about how I might get the changes to you, or if you want to give me access to the repository.
> 
> Before my modifications I had 24 albums without album art. After modifications 20 of the albums have correct album art and 4 of them remain without album art. The 4 that did not match all had some obvious issue with the album name. One of them had been concatenated, one had CD1 and CD2 on the end...etc...


Hey Aaron.

That sounds really cool! Coincidentally I too discovered Last.fm several weeks ago and had been contemplating some integration features someday. After reading your bug report last night I saw that you're owner of ourmine and poked around there a little bit. Beyond stealing the occasional emacs macro, I haven't looked at Lisp code since school over ten years ago. 

Anyway I felt comfortable just giving you commit access, which makes things easy. Push your changes up and I'll take a look. I'll put together a beta download that includes it in short order, and when it seems solid and stable, I'll roll it into an "official" release.

I should warn you that the tip of the repository includes some unreleased changes to support mp3 streams. I think it mostly works, I'm running it at home, but nobody but me has used it yet. If you notice anything totally broken, that's likely the culprit. Let me know.

Thanks for the contribution, I'm anxious to give it a whirl myself!


----------



## Airhead315

iolsen said:


> Hey Aaron.
> 
> That sounds really cool! Coincidentally I too discovered Last.fm several weeks ago and had been contemplating some integration features someday. After reading your bug report last night I saw that you're owner of ourmine and poked around there a little bit. Beyond stealing the occasional emacs macro, I haven't looked at Lisp code since school over ten years ago.
> 
> Anyway I felt comfortable just giving you commit access, which makes things easy. Push your changes up and I'll take a look. I'll put together a beta download that includes it in short order, and when it seems solid and stable, I'll roll it into an "official" release.
> 
> I should warn you that the tip of the repository includes some unreleased changes to support mp3 streams. I think it mostly works, I'm running it at home, but nobody but me has used it yet. If you notice anything totally broken, that's likely the culprit. Let me know.
> 
> Thanks for the contribution, I'm anxious to give it a whirl myself!


Haha, sounds good. I will commit the changes up tonight. I should say I am labeled as an owner of ourmine but its my professors baby. I have to admit...I love lisp...but I was very happy to walk away from it at the end of last semester 

I just spent a good couple of minutes wondering why the Stream status 5 was coming up...thought I broke something lol...turns out it just means the stream is playing. Aparently this is one of the MP3 things you were talking about. It appears to be working just fine for me though!

thanks,
aaron


----------



## iolsen

Airhead315 said:


> I just spent a good couple of minutes wondering why the Stream status 5 was coming up...thought I broke something lol...turns out it just means the stream is playing. Aparently this is one of the MP3 things you were talking about. It appears to be working just fine for me though


Ah, sorry about that. It's just extra logging I added temporarily to figure stuff out. Feel free to yank that out if it's making things difficult. It does tend to add a lot of noise to the log.


----------



## iolsen

I've put up a BETA version of 0.8 that includes Aaron's work and the mp3 stream stuff I've been working on. Briefly:


Rudimentary mp3 stream support. You can put URLs to mp3 streams (they have to be vanilla mp3) in an m3u playlist, and Harmonium will play them.
Album art retrieval from Last.fm (thanks Aaron!)
Some bug fixes, including properly shuffling the Now Playing List (thanks Aaron!)
There are still some rough edges, hence the beta label. Some mp3 streams don't work, like Shoutcast. The new album art fetching can slow down Harmonium's initial startup, particularly if you have a big library. But I thought it was worth putting up.

You can find it here: http://code.google.com/p/harmonium/downloads/list

Feedback is welcome, as always.


----------



## RobAtSGH

Ian - I think the screen blanker bug's finally squashed with 0.7.2. All settings seem to work as they should, even disabling it entirely.

Thanks for your hard work, mate.

-R


----------



## iolsen

Thanks Rob, glad to hear it.


----------



## jim _h

The album art search is something I don't want and wish I could turn off. I'm very sensitive to my PCs boot time and don't want anything adding to it. And, I'm in the process of systematically searching for album art myself and would rather not have Harmonium getting involved and confusing the issue.


----------



## iolsen

You'll be able to turn it off. And keeping startup time as low as possible is a priority. The current implementation is very much a beta. Some of that's being discussed here: http://code.google.com/p/harmonium/issues/detail?id=22


----------



## orangeboy

I just updated my mp3s tags. How do I clear the cache in harmonium-windows-0.8 (beta)? Do I need to clear the cache?


----------



## Airhead315

Yes you will need to.

The cache file is located in the directory you specified as your music directory in wrapper.conf


----------



## orangeboy

Airhead315 said:


> Yes you will need to.
> 
> The cache file is located in the directory you specified as your music directory in wrapper.conf


Thanks! I was in and out of that folder for half the day. I just never looked in the root I guess!


----------



## jim _h

iolsen said:


> You'll be able to turn it off. And keeping startup time as low as possible is a priority. The current implementation is very much a beta. Some of that's being discussed here: http://code.google.com/p/harmonium/issues/detail?id=22


I have hundreds of albums, probably at least 100 without art, and it now several full minutes for Harmonium to get started.

Can I still get the previous build?


----------



## Airhead315

jim _h said:


> I have hundreds of albums, probably at least 100 without art, and it now several full minutes for Harmonium to get started.
> 
> Can I still get the previous build?


Hey Jim,

The previous build is still available in the downloads section:
http://code.google.com/p/harmonium/downloads/list The one whose version is listed as 0.7.2 is the one you want.

I have uploaded changes to the repository that allow the http album art feature to be disabled but they still need to be tested and compiled into a new BETA


----------



## iolsen

jim _h said:


> I have hundreds of albums, probably at least 100 without art, and it now several full minutes for Harmonium to get started.
> Can I still get the previous build?


I liked this post better when it said it took a _geological age_ for Harmonium to start. 

I knew it would be slow for folks with big, largely art-less libraries. That's one of the reasons I called it a beta. Aaron's already done some nice work in speeding things up, and it will be spiffy before it's released without a beta label.

You can still get any version of Harmonium I've released, and that will be true for the foreseeable future. They're all on the google code site. For older versions, you have to change the drop-down from _Current Downloads_ to _All Downloads_.

One more note for Jim: I think when this album art fetching feature is done, you're actually going to like it. You'll have the option to let it update your mp3's with art. So it will do exactly what you were looking for a week or two ago: add art only to albums that are lacking it. Then it will get out of your way. Once an album is updated with art, no future web look ups will be necessary, so future startups will be faster. We're also probably going to keep track of albums that we couldn't find album art for, so we don't keep trying and slowing things down.

So when we're done, the very first startup with the new features enabled will still take a geological age. But you'll get saved album art for albums lacking it. After that first time, startup will be as fast as it was before.

We will have at least these options:
- Enable/disable album art fetching altogether.
- Save fetched mp3 art by embedding in mp3 files, by saving a cover.jpg file, or not at all.

The wrapper.conf defaults will enable fetching and saving embedded art.


----------



## jim _h

What is is actually doing now? Is actualy it downloading .jpgs for folders with no art, or just finding references to them on a web site/service somewhere and downloading them if/when the user browses to that album?

If Harmonium could automatically fill in all the missing artwork for me, that would be great. But it's not possible. I've been chipping away at this myself using a tool called Album Art Downloader (catchy name). It searches quite a few online sources, attempting to match the artist and album names in my folders, and shows me all the possiblities. In many cases, most of them are wrong, In almost all cases, one is clearly a better choice due to size - I don't want the little ones unless there's nothing else.

A while back I researched this problem and concluded there's no way an automated tool can simply fill in all the missing art, unless- maybe - your track/artist information was perfectly clean, in some sort of canonical form - and I don't know what that is.


----------



## Airhead315

jim _h said:


> What is is actually doing now? Is actualy it downloading .jpgs for folders with no art, or just finding references to them on a web site/service somewhere and downloading them if/when the user browses to that album?
> 
> If Harmonium could automatically fill in all the missing artwork for me, that would be great. But it's not possible. I've been chipping away at this myself using a tool called Album Art Downloader (catchy name). It searches quite a few online sources, attempting to match the artist and album names in my folders, and shows me all the possiblities. In many cases, most of them are wrong, In almost all cases, one is clearly a better choice due to size - I don't want the little ones unless there's nothing else.
> 
> A while back I researched this problem and concluded there's no way an automated tool can simply fill in all the missing art, unless- maybe - your track/artist information was perfectly clean, in some sort of canonical form - and I don't know what that is.


I set it up to use the last.fm API. This API is very very good. It doesnt do a blatant search for album art. You specify the artist and the album name and it comes back with the result. If the album name isnt the full name, or the artist name isnt the full name it doesnt return anything. This means there is hardly any chance of receiving bad album art. To see how the API works you can goto:

http://ws.audioscrobbler.com/2.0/?m...6de&artist=Weird Al Yankovic&album=Poodle Hat

Change the last two parameters and it will show you what we are able to retrieve. The api_key supplied is not harmoniums api_key but this page was given as an example in the last.fm API documentation.

Right now, the code has not been compiled into a build but the current source code does update the ID3 tag album art for the album. Barring the ID3 album name/artist name being blatantly wrong in the ID3 tag of the album I dont see how this could retrieve the wrong album art. BUT, I am working on a solution that doesnt update the MP3 files...I guess part of me is just saying that harmonium shouldnt modify the files its hosting in any way...I think I have a better solution (a file cache seperate from the MP3Files) but the ID3 auto update will still be an option but most likely be an option you have to specify rather than defaulting to On.


----------



## jim _h

I looked at that returned XML - so the last.fm API just searches Amazon? That puzzles me, because Amazon has their own web service API that can return album art - although I think there's some legalese about a requirement to display an Amazon link with the results. But if you call into a last.fm service, and it just turns around and uses the Amazon service... I'm confused.

Obviously I've already installed the latest Harmonium beta, which in retrospect was a dumb thing to do, because it's a beta, and it's touching the tags of hundreds of albums. I suppose it's too late to back up now, it's done whatever it's going to do to the tags in my files.


----------



## Airhead315

jim _h said:


> I looked at that returned XML - so the last.fm API just searches Amazon? That puzzles me, because Amazon has their own web service API that can return album art - although I think there's some legalese about a requirement to display an Amazon link with the results. But if you call into a last.fm service, and it just turns around and uses the Amazon service... I'm confused.
> 
> Obviously I've already installed the latest Harmonium beta, which in retrospect was a dumb thing to do, because it's a beta, and it's touching the tags of hundreds of albums. I suppose it's too late to back up now, it's done whatever it's going to do to the tags in my files.


No no no. *The beta that was released DOES NOT modify ID3 tags*. This functionality was added to the source code after the BETA release and has yet to be compiled into a BETA version. It has not done anything to your ID3 tags. In addition, I think I will eliminate ID3 update before we release a BETA since I have completed implementation of a different caching system.

The last.fm API will on occasion return amazon image links. However, that is not always the source. I believe the album art is compiled by either a user community or by last.fm so the links are from various locations.


----------



## hawkinsb

I've just started using Harmonium, and so far, it seems much nicer than the standard TiVo music interface.

One feature request I would have is the ability to jump to the end of my list of artists, perhaps using the "30 second skip" key on the remote. If there is already a way to do this, my apologies, but I haven't found it. With several hundred artists, it takes forever to get to the end...

Thanks!!


----------



## jayfest

Much - better - you can use the number key pad from 0 to 9 to jump you to different spots on the list.


----------



## jbernardis

You can also jump with the "skip to tick" button. It moves you ahead in the list to the next letter. I believe instant replay does the same thing in reverse.


----------



## hawkinsb

jbernardis said:


> You can also jump with the "skip to tick" button. It moves you ahead in the list to the next letter. I believe instant replay does the same thing in reverse.


Thanks for the info (both of you!)


----------



## jbernardis

I recently installed harmonium on a new windows 7 64 bit system. It works fine when I start it interactively, but does not work right as a service. I installed it as administrator, so I know that is not the issue. I can access the menu structure from my tivos, but when I pick a song to play, I get the following error:

An error occured while running the application. The application closed during a read (0x50006).

I also noticed the following in the log file:



Code:


INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager: Initializing...
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager: 
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager: WARNING - Unable to load the Wrapper's native library 'wrapper.dll'.
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           The file is located on the path at the following location but
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           could not be loaded:
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:             C:\Program Files (x86)\harmonium\bin\..\lib\wrapper.dll
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           Please verify that the file is readable by the current user
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           and that the file has not been corrupted in any way.
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           One common cause of this problem is running a 32-bit version
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           of the Wrapper with a 64-bit version of Java, or vica versa.
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           This is a 64-bit JVM.
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           Reported cause:
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:             C:\Program Files (x86)\harmonium\lib\wrapper.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:           System signals will not be handled correctly.
INFO   | jvm 1    | 2010/11/18 20:02:29 | WrapperManager:

apparently the version of wrapper.exe supplied with harmonium does not work with a 64 bit JVM, and the author of the program is not distributing a 64 bit version for free - it costs $98 to buy a license!!!!!!!

The only solution I can think of is to install a 32 bit JVM on the machine too and use that with harmonium.

I will let you know how it goes.


----------



## jbernardis

Well, the 32 bit JVM got rid of the error in the log, but I still get the same error on the TV screen. Also, I see the following in the log:



Code:


INFO   | jvm 1    | 2010/11/18 21:28:20 | LOG: 192.168.1.102 icon.png HTTP GET - to factory /harmonium/
INFO   | jvm 1    | 2010/11/18 21:28:27 | LOG: HME receiver connected
INFO   | jvm 1    | 2010/11/18 21:28:27 | Nov 18, 2010 9:28:27 PM com.almilli.tivo.bananas.hd.HDApplication initApp
INFO   | jvm 1    | 2010/11/18 21:28:27 | INFO: Current resolution is: Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]
INFO   | jvm 1    | 2010/11/18 21:28:27 | Nov 18, 2010 9:28:27 PM com.almilli.tivo.bananas.hd.HDApplication initApp
INFO   | jvm 1    | 2010/11/18 21:28:27 | INFO: Changing resolution to: Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]
INFO   | jvm 1    | 2010/11/18 21:28:27 | Nov 18, 2010 9:28:27 PM com.almilli.tivo.bananas.hd.HDApplication handleEvent
INFO   | jvm 1    | 2010/11/18 21:28:27 | INFO: Received resolution event: ResolutionInfo[current=Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1],supported=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]Resolution[width=704,height=480,aspectNumerator=40,aspectDenominator=33]Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]]
INFO   | jvm 1    | 2010/11/18 21:28:27 | LOG: unknown event opcode : 10
INFO   | jvm 1    | 2010/11/18 21:28:27 | Nov 18, 2010 9:28:27 PM com.almilli.tivo.bananas.hd.HDApplication handleEvent
INFO   | jvm 1    | 2010/11/18 21:28:27 | INFO: Received resolution event: ResolutionInfo[current=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1],supported=Resolution[width=1280,height=720,aspectNumerator=1,aspectDenominator=1]Resolution[width=704,height=480,aspectNumerator=40,aspectDenominator=33]Resolution[width=640,height=480,aspectNumerator=1,aspectDenominator=1]]
INFO   | jvm 1    | 2010/11/18 21:28:32 | LOG: HME receiver disconnected
INFO   | jvm 1    | 2010/11/18 21:28:32 | Exception in thread "Thread-10" com.tivo.hme.sdk.HmeException: Can't create output stream!
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at com.tivo.hme.sdk.Application.fatalError(Application.java:938)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at com.tivo.hme.sdk.Application.cmdRsrcAddImage(Application.java:1171)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at com.tivo.hme.sdk.ImageResource$ImageResourceImage.<init>(ImageResource.java:137)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at com.tivo.hme.sdk.HmeObject.createImage(HmeObject.java:266)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at org.dazeend.harmonium.Harmonium$AlbumArtCache.Add(Harmonium.java:1023)LOG: connection to receiver closed
INFO   | jvm 1    | 2010/11/18 21:28:32 | 
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at org.dazeend.harmonium.screens.HManagedResourceScreen.createManagedImage(HManagedResourceScreen.java:90)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.getAlbumImage(HAlbumInfoListScreen.java:416)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.updateInfo(HAlbumInfoListScreen.java:361)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList.access$100(HAlbumInfoListScreen.java:264)
INFO   | jvm 1    | 2010/11/18 21:28:32 | 	at org.dazeend.harmonium.screens.HAlbumInfoListScreen$HAlbumArtList$1.run(HAlbumInfoListScreen.java:329)

Not sure what's going on here. Anybody have an idea what I should try next?


----------



## jbernardis

Alright - I found the temp directory fix described by rjmitche, and this seemed to have solved my problem. Now the only issue is that harmonium is only show up on one of my tivos. I'm rebooting the tivo now to see if that fixes it.


----------



## jcthorne

Anyone can help me get this up and running on my Synology DS1511+ NAS box?


----------



## jbernardis

jcthorne said:


> Anyone can help me get this up and running on my Synology DS1511+ NAS box?


If you get it running, I'd be interested in any instructions you can pull together. I currently run pytivo on my NAS (netgear readyNAS) but it does not have a Java environment which is necessary for harmonium.

I was wondering the difficulty of porting to python, but it seems to me that it would be high.


----------



## species8472jj

I just started using Harmonium (ver 0.8), and overall, I think it is a great piece of software. 

The problem I am running into is I am having trouble getting my playlists to appear under the playlist menu item on Harmonium.

I'm not doing anything elaborate - just creating them in Media Monkey and outputting the playlist (m3u) files. 

Note: I did make sure the playlist files are not within the music directory. I know that causes problems. 

Any suggestions?

Thank you.


----------



## xekester

Sorry if you have already done this, but did you update the wrapper.config file e.g. "wrapper.app.parameter.6="Playlist-Dir-Path".

xekester


----------



## species8472jj

Yes, I did make sure I had the path in the wrapper.conf file. I did get them to appear. This is what I found.

1) All my music is on an NAS to which I have a drive mapped. When I was generating playlists from my media player, it was using the drive I had mapped. So the first thing I changed it to a UNC path.

2) This may or may not seem relevant, but it seemed to work for me. If I put the server name in all CAPS it did not work. All small letters seemed to work.

3) When Harmonium first starts and it appears on the TiVo menu, all the music is ready to go, however there seems to be a small delay before the playlists appear.

Others may or may not be experiencing this, but this is what I noticed as I was troubleshooting this.


----------



## jim _h

I see at least one person had problems getting Harmonium to run on x64 windows. Any update on that?


----------



## jcthorne

Yes, we all gave up and went to a new program developed by jbernardis called jukebox that runs under python HME. It along with vidmgr and pytivo provides a very complete package for audio, video and photos on the tivo.

Give a read here: http://www.tivocommunity.com/tivo-vb/showthread.php?t=480745


----------



## jim _h

Thanks jcthorne.


----------



## DawgStar

So I installed Harmonium on my QNAP NAS (Atom Processor, Ubuntu, Java SE Runtime Env 1.6.0_22-b04).

Running it in console mode looks good.
In fact, running it as a daemon looks good as well. The end of the log shows:



Code:


INFO   | jvm 1    | 2012/04/03 21:36:06 | Looking for music collection cache...
INFO   | jvm 1    | 2012/04/03 21:36:06 | No cache found. Searching for music. This may take several minutes...
INFO   | jvm 1    | 2012/04/03 21:36:08 | Searching for playlists. This may take several minutes...
INFO   | jvm 1    | 2012/04/03 21:36:08 | Build of music database completed
INFO   | jvm 1    | 2012/04/03 21:36:08 | LOG: added factory
INFO   | jvm 1    | 2012/04/03 21:36:08 | MDNS: ...

(I'm currently testing with a music root directory that only has a dozen .mp3 files in it, for now... hence the 2 second build time, I believe)

and Harmonium shows up in the Apps menu on the TiVo (which, by the way, is a Premiere box, which might be part of the problem?).

But when I go to the Harmonium "App" and push SELECT, it looks like it tries to load (sometimes I see the "Please wait..." clock, sometimes not), but then it just falls back out to the TiVo Central menu.

Nothing more shows up in the log.

Anything I should check or anything more I can do to troubleshoot?
Thanks!
-DS


----------



## windracer

It's been a long time since I used Harmonium (like the posts above, I switched to jbernadis' jukebox program) but if I recall, it uses the wrapper, which should have a line in the config file to enable debugging. If you set that to true, you might get more messages in your log that will point you in the proper direction.


----------



## DawgStar

I installed Python, pytivo, pyhme and jukebox, and seeing the exact same behavior. App starts to launch, TiVo shows a Please Wait icon, then it falls back out to the main menu.

In fact, same behavior on ALL of the pyhme example apps, too. They all show up in my apps menu, but none will successfully launch.

I'm looking into the debug settings.


----------



## wmcbrine

Sounds like a TiVo-side problem. Did you try rebooting it?

Are you able to use other HME apps (i.e., the other apps in the same menu)?


----------



## DawgStar

wmcbrine said:


> Sounds like a TiVo-side problem. Did you try rebooting it?
> 
> Are you able to use other HME apps (i.e., the other apps in the same menu)?


I've rebooted since I set up my Plex server, yes, but not recently. I will try that.

Other apps, yes. All the other non-pyhme apps work fine. Skull&Bones. Stupid game, but it works ;-)


----------



## wmcbrine

What TiVo software version are you running?

Do you have Reversi on your TiVo, and does it work? If you don't have it, set up apps.tv, add Reversi, and see if it works.


----------



## DawgStar

wmcbrine said:


> What TiVo software version are you running?


System information says: 20.2-01-2-746



wmcbrine said:


> Do you have Reversi on your TiVo, and does it work? If you don't have it, set up apps.tv, add Reversi, and see if it works.


I'm pretty sure I had Reversi working at one time. I will try again to confirm. I still have the apps.tv app manager, and it does work, that I'm sure. Isn't Skull&Bones HME, as well? Or is it "local" on the box?

But here's a new interesting tidbit, regardless: so rebooting the TiVo did work... after rebooting, I selected Harmonium (and Jukebox) and it worked very nicely. The interface appeared, I could browse my test collection, and play tunes.
Then I went back to my NAS, took Harmonium down, updated wrapper.conf to point to my full music collection, and started Harmonium back up. Once the library scan completed and Harmonium appeared again in my apps menu, selecting it caused the same symptoms as before... wouldn't complete the launch and would fall back out to the TiVo Central menu.

I had to reboot the TiVo _again_ to get everything back to working.

If it's the act of bouncing Harmonium that kills the connection, that's not good because I certainly don't want to have to remember to reboot my TiVo everytime I might take my NAS offline.

If it's the act of rescanning my library that kills the connection, that's worse because I definitely see me constantly adding and updating my library. And I don't want to have to reboot my TiVo every time I add a tune.

But, in my mind, this proves it's not a permissions issue or a network issue or a "your setup won't work" issue, since rebooting the TiVo does get everything back up and running.


----------



## wmcbrine

DawgStar said:


> Isn't Skull&Bones HME, as well?


Yes it is. However, it's written in Java, using TiVo's original SDK. I was trying to determine if you might have an issue specific to HME for Python.


----------



## DawgStar

wmcbrine said:


> Yes it is. However, it's written in Java, using TiVo's original SDK. I was trying to determine if you might have an issue specific to HME for Python.


Hmmmmm... either you're onto something, or I have no idea what I'm doing (either is a distinct possibility ;-) )

The apps.tv subscription manager works, and I'm able to subscribe to Reversi, but it never shows up. I can't find Reversi in the downloadable apps section, so I'm just assuming you mean the one in subscription manager. Let me know if I'm reading you wrong.

So... how do I debug an issue with Python/pyhme?


----------



## wmcbrine

No, we were already off that idea once you brought Harmonium into it.


----------



## DawgStar

wmcbrine said:


> No, we were already off that idea once you brought Harmonium into it.


Now I'm confused. We were talking about Harmonium all along. But, okay.

Discounting that Reversi doesn't work (obviously a whole 'nother issue), where do I go from here?

UPDATE: Weird... Reversi finally showed up over 3 hours after I subscribed to it. Is that normal?? I did nothing at the TiVo except watch a few (live) shows. I subscribed to the app around 6:30, checked the app list just before 10:00 and it still wasn't there. Then when I checked after 11:00, it was. Played a few games, and it works fine.


----------



## tarheelz

Well, it looks like Harmonium development has come to an end. For a novice like me this is stressful. I'm still working on getting jukebox running. Far more complicated if you're not someone already familiar with python, github, etc.

Harmonium has worked great for us for nearly a year. Thanks to y'all for developing it. Jukebox, here we come [shudder].


----------



## lrhorer

If you need help, I suggest you post in the Jukebox thread, or at least in the HME developer's forum. It's really not that difficult to get working. 'Lots of options once it is, but that is a different matter.


----------



## tarheelz

lrhorer said:


> If you need help, I suggest you post in the Jukebox thread, or at least in the HME developer's forum. It's really not that difficult to get working. 'Lots of options once it is, but that is a different matter.


Thanks, Irhorer. I will. I'm not yet ready to throw in the towel. It's a good DIY project for me. I learn things. (Python has always been out there but never anything I focused on.) Just wanted to post here to let anyone still around on Harmonium know how great a solution it was for us for streaming a music collection.


----------



## lrhorer

tarheelz said:


> Thanks, Irhorer. I will. I'm not yet ready to throw in the towel. It's a good DIY project for me. I learn things. (Python has always been out there but never anything I focused on.) Just wanted to post here to let anyone still around on Harmonium know how great a solution it was for us for streaming a music collection.


That's Lrhorer, if you please, not Irhorer.

Note in my case I once tried Harmonium, but never got it to work, while Jukebox fired up the moment I loaded it and creating the base playlists for Jukebox was a breeze. (In fairness, I did not play around with the Harmonium configuration for very long because I had other pressing matters.)


----------

