Comments
-
Greg Hurrell
Ok, I've just uploaded a preview build which will hopefully allow us to diagnose and fix this problem.
As I've commented elsewhere (on the forums, for example) I can't reproduce this issue here locally. Cover art works fine for me using iTunes 7.6.2. But other users report that it works perfectly under 7.6 but is broken under 7.6.1 and 7.6.2. Some other third-party software that talks to iTunes is broken with 7.6.1/7.6.2, and some third-party software works with 7.6.1/7.6.2. As far as Synergy goes, both the 3.2 stable series and the experimental 3.5 alpha series behave identically.
Given that I can't reproduce the problem here I can only deduce from the available information that this is a timing issue. It appears that iTunes is emitting a "track changed" notification, Synergy asks iTunes for the art, and iTunes gives an error. According to users who are seeing the problem, if they force the Floater to reappear later (for example, by pausing and then resuming playback) then iTunes does supply the artwork.
So I can only guess that this is a timing bug in iTunes. If you ask for art "too soon" then it will give you an error. This might explain why some users see the issue and others don't, and also why some third-party software sees the issue and other third-party software doesn't: it looks like it depends on how fast you ask for he art.
So, the new build is up.
As you can see, this is based on the 3.5 series, which means you can only help me test this out if you're running Leopard. If we can get a fix worked out I will also backport it to the 3.2 series.
The new build is not a full package. It is just the Synergy faceless background application responsible for displaying the menu bar controls, the floater etc. To test it, do the following:
- Unzip the archive
- Stop any running versions of Synergy
- Double-click the Synergy.app that you extracted from the zip
- Try skipping tracks and see if art shows up: it would be useful if you can try various things like skipping from within iTunes, skipping within Synergy (using hot keys or the menu bar controls, for instance), and doing things like pausing, waiting, and resuming playback
The key difference in the new build is that it has a new advanced preference setting that you can use to explore the effect of delaying the querying for album art. By default there is a 0 second delay (no delay), but you can try different values between 0 and 3 seconds using the following commandline:
defaults write org.wincent.Synergy CoverArtDelay -float 2.5
That would set the delay to 2.5 seconds. So the idea would be to try different values:
- Quit Synergy
- Set a new delay
- Start Synergy again
- Test behaviour with the new setting
Hopefully in this way we can determine if my theory is correct, and if it is correct, we can identify what the minimum delay is necessary to workaround the bug in iTunes. Obviously, I am hoping that the value won't be too large as we don't want the delay to be perceptible to the user. In any case I'll make sure that the delay is only imposed when running with a buggy version of iTunes. People running 7.6 or any other version which isn't affected won't suffer the delay.
So thanks for your help in working through this. Once it's all sorted out I'll be putting together an official release that includes the fix.
-
Fuga
No good here. Besides no art I have crashes within a few minutes (also had before, with other versions of the standalone app). I went to the trouble of uninstalling all my unsanity haxies. Booted in Safe Mode and then logged in with no startup items loading. Also dis all this with a fresh user. No art. Crashes. Will try another Leopard Intel machine tomorrow.
2.16 GHz Core 2 Duo MacBook 2 GB RAM OS X 10.5.2
Want the crash logs?
-
anonymous
doesn't work that way. i've bought this software for the cover art display, where can i send my demand for refund ? thanks.
-
Liz
Just tried the new build just posted, and does not seem to grab the artwork at all including at the 3.0 second mark.
-
pbryanw
Hi, I have tried with settings of 1.0, 2.0, 5.0 and 10.0 (closing and restarting Synergy each time I changed the value) all with no luck. This is with the new build.
-
Greg Hurrell
Darn, so it's not a timing issue like I was hoping after all.
Fuga, Liz, and pbryanw, can I get you to send me copies of your Synergy preferences files and also System Profiler reports? We have to find out why this works for me but not for you.
The preference file is found at:
~/Library/Preferences/org.wincent.Synergy.plist
And to get a System Profiler report you can go to the Apple menu, click "About this Mac", and then click the "More information" button in the About window that appears. The saved report will be probably be quite large, so you might want to zip it before mailing it over.
To the anonymous commenter about requesting a refund, you can contact me at the same email address. I hope you'll take into consideration that this is an Apple bug in iTunes, that it is in your power to get full cover art functionality by installing the last non-buggy version of iTunes (7.6), and that I am actively working on solving the problem.
Fuga, about the crash logs. I believe they're not related to this issue at all and you're probably seeing the NSAppleScript crashes that are being tracked in bug #640. Also an Apple bug, incidentally, as detailed in that ticket. Believe me, I am pretty annoyed about these two high-profile issues both being Apple's fault, and having a high impact on my users.
-
Fuga
Yes, after writing I remembered the other issue re: crashing.
I will send two pref files, one for the older preference pane version and one for the latest standalone build. I do so because I can't get art from either version.
And as for my saying elsewhere that GimmeSomeTune was fine, well, that is only partly so. There is something about iTunes 7.6.x that causes a split second delay/audio gap. It's gotten better with the latest iTunes but still rears up. The fix noted in the link makes it a bit better but there is something amiss. Could be similar? Could it be all the way down to the ACLs which has caused so much trouble in the cloning community?
GimmeSomeTune "timing" issue http://tinyurl.com/6qpgzl
Somewhat of a fix on Remote Buddy's site http://tinyurl.com/4j5drc
SuperDuper! ACLs fixed http://shirtpocket.com/blog/
-
Greg Hurrell
Ok, here's a new test build. This one drops the "delay" trick and instead prints a bunch of diagnostic information to the console, which you can observe using
Applications/Utilities/Console.app
.This is some sample output on my machine for a track which does have cover art in iTunes:
2008-04-28 22:12:18.788 Synergy[71327:10b] preparing to request cover art 2008-04-28 22:12:18.790 Synergy[71327:10b] did prepare (script id is 20727360) 2008-04-28 22:12:18.867 Synergy[71327:10b] did request art (descriptor is 21551360) 2008-04-28 22:12:18.868 Synergy[71327:10b] error info: (null) 2008-04-28 22:12:18.869 Synergy[71327:10b] got cover art data 21548240 2008-04-28 22:12:18.973 Synergy[71327:10b] got TIFF representation (21525280) 2008-04-28 22:12:19.004 Synergy[71327:10b] got rep (21513936) 2008-04-28 22:12:19.028 Synergy[71327:10b] got JPEG data (23523600) 2008-04-28 22:12:19.030 Synergy[71327:10b] notifying floater
And for comparison, this is a track which doesn't have art:
2008-04-28 22:12:41.220 Synergy[71327:10b] preparing to request cover art 2008-04-28 22:12:41.224 Synergy[71327:10b] did prepare (script id is 23447520) 2008-04-28 22:12:41.256 Synergy[71327:10b] did request art (descriptor is 21976576) 2008-04-28 22:12:41.257 Synergy[71327:10b] error info: (null) 2008-04-28 22:12:41.257 Synergy[71327:10b] didn't get desired cover descriptor (21976576)
As you can see in both cases the "error info" is listed as being "null". In the case where iTunes actually does have art, you can see Synergy getting the TIFF representation, the JPEG representation, and notifying the Floater. In the case where iTunes doesn't have art that process gets short-circuited.
I'm very interested to see the output on a machine which is seeing the problem, and any other interesting console output that might be being emitted (by Synergy or iTunes itself). I am hoping there'll be some kind of clue as to what's going wrong, perhaps in the error info output.
-
Greg Hurrell
Thanks for the links, Fuga.
I don't know whether the other products you link to are suffering from the exact same problem or whether those are different bugs which just add more evidence that iTunes 7.6.1 and 7.6.2 have quite a few bugs in them. I personally doubt that the underlying cause is anything to do with ACLs, but you never know. I'm hoping the new build I just posted will help to shed some light.
As for the thing about the pref files for the two versions: yes, it is fully expected that this issue will show up in 3.2 and 3.5 because the cause is iTunes, not Synergy. I think you could go back all the way to Synergy 0.9.9 (from 6 May 2003, the first version to query iTunes for artwork) and you'd still see the problem.
I'm just hoping that: (a) we can find a workaround, and (b) Apple fixes the bugs in the next iTunes release.
-
Fuga
no pref files other than ~/Library/Preferences/org.wincent.install.plist
not in my user directory nor the test user's
-
Fuga
Below is what I get for every tune. BTW, all my files have art embedded. Other than the NSAppleScript stuff, it's similare to what you get. In yours there is more info for descriptor.
4/28/08 3:42:10 PM Synergy[1991] preparing to request cover art 4/28/08 3:42:10 PM Synergy[1991] did prepare (script id is 17591536) 4/28/08 3:42:10 PM Synergy[1991] did request art (descriptor is 0) 4/28/08 3:42:10 PM Synergy[1991] error info: { NSAppleScriptErrorBriefMessage = "Can\U2019t make \"7.6.2\" into type integer."; NSAppleScriptErrorMessage = "Can\U2019t make \"7.6.2\" into type integer."; NSAppleScriptErrorNumber = -1700; NSAppleScriptErrorRange = NSRange: {0, 0}; } 4/28/08 3:42:10 PM Synergy[1991] didn't get desired cover descriptor (0)
-
Fuga
Whoa, that pasted weirdly. Everything from 4/28/08 to the end was actually one paste from the Console.
-
Greg Hurrell
Fixed up the formatting for you (any line starting with a space is treated as a "pre" block).
Ok, well that's good to see that there actually is some kind of error information in there. Not sure what to make of it but at least it's something.
Can you try something else for me? In
/Applications/AppleScript/Script Editor.app
, try pasting in this sample script and running it:tell application "iTunes" if version as integer is greater than or equal to 4 then if data of the artworks of the current track exists then return data of artwork 1 of current track as picture else return "no artwork" end if end if end tell
Looks like it is choking on the "version" thing. If that's the case then even this little script should be enough to make it choke:
tell application "iTunes" to get version as integer
Now try this different version:
tell application "iTunes" if data of the artworks of the current track exists then return data of artwork 1 of current track as picture else return "no artwork" end if end tell
My wild guess is that this is working for me because I'm running Mac OS X in Spanish, and there must be something different about its
Info.plist
file. -
Fuga
For the first two I get AppleScript Error Can’t make "7.6.2" into type integer.
For third it runs but doesn't really do anything except formatting gets pretty and "no artwork" does indeed appear in the bottom pane.
-
pbryanw
28/04/2008 22:29:08 Synergy[312] preparing to request cover art 28/04/2008 22:29:08 Synergy[312] did prepare (script id is 17276176) 28/04/2008 22:29:08 Synergy[312] did request art (descriptor is 0) 28/04/2008 22:29:08 Synergy[312] error info: { NSAppleScriptErrorBriefMessage = "Can\U2019t make \"7.6.2\" into type integer."; NSAppleScriptErrorMessage = "Can\U2019t make \"7.6.2\" into type integer."; NSAppleScriptErrorNumber = -1700; NSAppleScriptErrorRange = NSRange: {0, 0}; } 28/04/2008 22:29:08 Synergy[312] didn't get desired cover descriptor (0)
With the new test build I get the same as Fuga.
-
pbryanw
After trying the Applescript in script editor, I get the same results as Fuga, for the first two tests but for the third one, I got a load of data. Here are the first few lines:
«data PICTBC9E0000000002580253001102FF0C00FFFE000000480000004800 00000000000258025300000000001F800080008000001E0001000A000000000258025 382000004BBD600000001000000000000000000000000000000010000000000000000 000000000000400000000000000000000000
-
Fuga
So what's the differences in our setups. I am now sending my SystemProfile to Wincent.
-
Greg Hurrell
Ok, just uploaded a new build. No delay or logging this time, just removing the iTunes version check. We'll see if this fixes it.
-
pbryanw
Yes, it's working - artwork from iTunes is showing!!! Big thanks. No preferences though but I can still use 3.2 for that.
-
Fuga
HOT DAMN!
Yep, so far so good. More, No crashing.
-
Fuga
Are you saying settings from the older preference pane version will be sucked up by this standalone one?
-
pbryanw
It does for me. When I use preferences from the (just posted) beta, I get a finder window. But, if I set prefs in 3.2 from the preference pane, the settings work in synergy.app
-
Greg Hurrell
Ok, good to hear.
About the crashing (or not crashing), I can assure you that it's really a completely separate issue. It's a known bug in Leopard's NSAppleScript running under Garbage Collection. It's effectively random, and sooner or later it will crash... until Apple fixes the bug. I've been pretty lucky with this and I only see a crash every few days, but I know others see them all the time: luck of the draw, it would seem.
I'm going to put together a couple of new releases which incorporate this fix for the artwork issue:
- 3.5a7: a new build of the alpha series, which will still unfortunately suffer from Apple's NSAppleScript bug.
- 3.2.1: a new build of the stable 3.2 series, which won't be affected by the NSAppleScript issue (never has been, never will be) because it doesn't use Leopard's Garbage Collection.
I'll try to get those out tomorrow.
Thanks to you both for your patient collaboration. Without your help I wouldn't have been able to identify the cause of the problem nor the workaround.
-
Greg Hurrell
That's correct. You can set the preferences using another version of the app, and they'll be picked up by the new one. That's because we're talking about the same preferences file (
~/Library/Preferences/org.wincent.Synergy.plist
), so if you write to the prefs with 3.2 (or one of the other 3.5 releases), the preview build that I just posted will read the file and pick them up. -
pbryanw
Also, a big thanks to you Wincent - you've offered great support. I look forward to the new versions. Time for bed :)
-
Fuga
Yes, thank you, Wincent. Synergy has always been the class of the these types apps I have already pitched GimmeSomeTune.
As for the crashes, so weird. Before, I could make it crash within 30-45 seconds. Still, not a worry as I'll have the Preference Pane.
Take care.
-
Greg Hurrell
Marking this as CLOSED. The new releases are now out:
http://wincent.dev/blog/synergy-3.2.1b-and-3.5a7-now-available
-
anonymous
im trying to download 7.6.2 and it keeps saying theres an error
-
Greg Hurrell
What is the error? And what is it that's saying it? Safari? Mac OS X? Have you tried using a different browser?
In any case, iTunes 7.6.2 should come through the normal software update mechanism, so that's another way of getting it.
-
anonymous
It does not work. Too much problems to start with it.
Add a comment
Comments are now closed for this issue.