FatLab Music logo

Archive for the ‘Software’ Category

Page 3 of 4

Finale 2009 still sucks

Finale 2009, by its own admission, is more paid bug fix than new feature upgrade, and even then it falls short. It is a program full of potential yet completely hampered by bugs. Those skilled in using Finale do not really *use* the program, as much as they have developed a vast palette of workarounds to get the output desired. Using it is feels like building a deck of cards.

I was glad to see that 2009 fixed their incompatibility with MOTU devices using non-default CueMix names (as in “Finale crashes-on-launch, can’t use the program at all” incompatibility). They left this specific fix off the list — but Finale 2007 worked, 2008 didn’t, and now 2009 does again. (Yes, I deleted my preferences.) $90 upgrade for nothing, thanks ’08. It stayed in the box and was never installed.

“Save as PDF…” problems not fixed since 2007
OS X’s built-in “Save as PDF…” feature is one of the best things ever to happen to Finale for sharing music electronically. But just try to “Save as PDF…” a part that has a slash in the name (say “Piano/Vocal” for instance). Finale just decides to leave the part name off. This would barely make sense on WINDOWS (maybe replace the illegal character with an underscore?), nevermind that “/” is a legal character for Mac files. WTF? And hopefully you don’t want to “Save as PDF…” both the score *and* the offending part in the same “Print…” command, because the part will overwrite the score without any warning, and you’ll be left with only the part — but named to look like the score. Nice hack-up of OS-level file operations.

Another example of bad Save box behavior is evident in Auto-Saves. Old Finale files always open as “Untitled” in newer versions. If you have Auto-Save enabled, it will prompt you to “Save As…” upon the first saving. But, if you have any other dialog box open at the time Auto-Save is triggered (which in Finale is extremely likely), the “Save As…” sheet opens behind your dialog box. The save window can be clicked forward in front of the dialog box you’re in, but it never gains the mouse or keyboard focus. Meanwhile, it did manage to steal the focus *away* from the box you were just in, thus leaving you with zero control over the program, no ability to save your work, and your only recourse is to Force Quit, losing all your work. This is exactly the opposite result you should get with an Auto-Save feature. This is not new to 2009. Does *anybody* at MakeMusic actually use Finale on a Mac? They’d find this bug in under 15 minutes. How is this okay in commercially-released software — not to mention, version 2009b.r3!!

Other little things
Staff styles no longer have the final say. My old trick of selectively enabling “Allow optimization” on only certain measures doesn’t work anymore. And when I tried to selectively hide Measure Numbers (staff style with Items To Display > Measure Numbers unchecked), it did nothing.

The new 2009 Expressions categories work beautifully. But the arbitrarily hard-coded six categories is odd, nevermind the fact that it doesn’t merge categories when you import a library file. How else do you push a house style out to other files, then? The whole thing is still clunky and does not foster any confidence. Plus, I heard these categories only came to Finale because Sibelius does them that way.

Lyrics still are tedious in Finale. You already hope and pray they don’t get messed up, and after a certain amount of copy/paste, you give up on keeping anything orderly behind the scenes. I was surprised that now in 2009 Automatic Hyphens and Word Extensions don’t display when you first open the file. Open and close the “Edit Lyrics…” dialog box and they reappear. Why? Why not! (It’s not every file, just don’t forget to always check that the program is doing its job.)

Now that Finale 2009 “runs” sufficiently on Leopard and our score files aren’t stranded forever, it’s finally time to box this line and investigate Sibelius.

A few fixes for Podcasting plugin feed validation errors

I just got a Feedburner warning that my podcast feed was invalid. I was also getting quite a few Feed Validator errors, but nothing I could fix in Podcasting’s settings or trace to bugs in the plugin code. Evidently, some versions ago, Podcasting stored a few odd values in my WP database that had to be manually corrected. Here’s how I fixed them.

Check your feed’s <itunes:name> and <itunes:email> values and make sure they are not reversed. Mine were. So just find your “pod_itunes_ownername” and “pod_itunes_owneremail” values in your “wp_postmeta” table and edit them.

SELECT * 
FROM  `wp_options` 
WHERE  `option_name` LIKE 'pod_itunes_owner%'

Second, a bunch of my posts’ “explicit” values were stored as “default” instead of the correct “” (empty string). iTunes only allows “no”, “yes”, and “clean” for <itunes:explicit>, and Podcasting didn’t translate “default” into anything, so you gotta fixup these posts:

SELECT * FROM `wp_postmeta`
WHERE
     `meta_key` = 'enclosure' and
     `meta_value` like '%s:8:"explicit";s:7:"default";%'

… and after making sure your database is backed up and all that, just run this query to update them:

UPDATE `wp_postmeta`
SET `meta_value` = replace(`meta_value`, 's:8:"explicit";s:7:"default";', 's:8:"explicit";s:0:"";')
WHERE
     `meta_key` = 'enclosure' and
     `meta_value` like '%s:8:"explicit";s:7:"default";%'

“Snow Dude” hits the iPhone App Store

Our pal Ben has coded apps that help Spiderman fly and that help cure cancer. Now he’s tackled the iPhone, coding his first app for the Lycette Brothers.

It’s called “Snow Dude“, and it’s available today from the iTunes App Store for $1.99. Check it out!

'Snow Dude' at the iTunes App Store

Get 'Snow Dude' from the iTunes App Store

How-to modify jQuery Lightbox Plugin to use Image Sets

UPDATE (2/16/09): Another jQuery Lightbox plugin exists that supports imagesets by default. I am using the newer plugin now and recommend everyone do the same.

  • Both releases were at version 0.5, so I thought they were the same. Looking closer at the changelogs, I found this new one by Warren Krewenki to be better maintained and supports imagesets without hacking.
  • NOTE: My modification below only applies to the Leandro Vieira Pinho version.
  • Be aware that Krewenki’s Lightbox function is called lightbox, all lowercase. Pinho’s was camelcased as lightBox. In addition to pointing to the filenames of Krewenki’s new .js and .css files, your initializing function needs to be updated to all lowercase. Most settings don’t carryover either between the two jQuery plugs — although Krewenki’s match to the original Lightbox better — so verify those, too.

Buy Snowferno. $1.99 on the App Store
ORIGINAL POST:
I use the very popular Lightbox 2 script in places on this site, which is built upon the Javascript framework Prototype and script.aculo.us library. But, I also love the Javascript image gallery Galleria which requires jQuery. I don’t want to load both frameworks all the time, so I was happy to find a jQuery port of Lightbox called jQuery lightbox plugin.

The HTML syntax is almost identical between the two lightbox scripts, so I don’t have to recode any IMG tags. However, version 0.5 of the jQuery lightbox plugin does not recognize Lightbox 2 image sets (a group name between square brackets in the rel attribute).

By adding one IF statement to jquery.lightbox-0.5.js, jQuery lightbox plugin can gain this feature. The code below should replace lines 79-82.

jquery.lightbox-0.5-modified.js

79
80
81
82
83
84
// Add an Array (as many as we have that match the objClicked 'rel' attr), with href and title atributes, inside the Array that storage the images references		
for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
	if(jQueryMatchedObj[i].getAttribute('rel')==objClicked.getAttribute('rel')) {
		settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));
	}
}

Line 81 in the above code is the key. The matching elements passed in the jQuery object get added to the image array only if their ‘rel’ attributes match the initial ‘rel’ attribute of objClicked.

Then, your initializing function should read like this:

your-image-page.html

$(function() {
	// Select all links whose attribute rel starts with lightbox
	$('a[rel^=lightbox]').lightBox();
});

Note the caret character after ‘rel’, which matches all elements having the ‘rel’ attribute and values *beginning* with ‘lightbox’. Also, jQuery’s Selector API documentation says that the “@” before the attribute name has been deprecated as of v1.2. See more under the “Selectors > Attribute Filters” section of jQuery documentation.

Maybe there is a more elegant way to compare elements that doesn’t require matching the ‘rel’ attributes. But, to retain the same HTML syntax for those converting from the Prototype/script.aculo.us script to jQuery plugin, this hack will do nicely.

iPhone Remote app + Airfoil + Airfoil Speakers = iTunes Heaven (UPDATED with AirPlay details)

(UPDATED 9/1/10: Apple introduced AirPlay today, the next incarnation of AirTunes wireless media streaming. iPhone, iPad, and iPod touch running iOS 4.2+ can wirelessly streaming of audio, video, and photos to Apple TV as well as other AirPlay-compatible hardware receivers.)

My iTunes library lives on our laptop, but I’m often on our other “big” computer and want to listen to those tunes. I could stream between iTuneses, but I want this listening to count — i.e. increment play counts, let me change star ratings, etc. You can’t do that with iTunes streaming.

But now, with 2 computers, a wireless network, an iPhone running OS 2.0+, four cross-platform apps (3 of which are free), and a little scotch tape, my dream is possible.

  1. You’ll need the following apps: iTunes, Rogue Amoeba’s Airfoil ($25), their companion app Airfoil Speakers, and Apple’s Remote for iPhone
  2. Open Airfoil Speakers on the destination computer.
  3. Open Airfoil on the source computer and select “iTunes” from the source list.
  4. In Airfoil, activate the connection to the Airfoil Speakers computer. (iTunes will launch or relaunch, and Airfoil will establish a digital link to the destination.)
  5. Get your iPhone on your Wi-Fi network
  6. Open Remote, select a tune, and press play!

< ?php if (function_exists('dfrads')) { echo dfrads('1327167'); } ?>

My iPhone 2.0 wishlist for MobileMe Family Packs

[Note: I was away the first week, and with the ongoing heat and reported 4+ hour lines at all three NYC Apple Stores, I still don't have my own yet.]

Updating Mike’s first-gen iPhone to 2.0 was no problem. As everyone warns, give yourself an hour or more to complete the update. The firmware and software updates finish in about 20min. But because the update performs a full wipe, all your media needs to be recopied and that’s what takes most of the time.

So far, iPhone 2.0 is 95% awesome. Of all the advertised improvements, the most noticeable are Calendar (color distinctions and general iCal-iness now), Contacts (search is handy), Calculator (flipping to scientific mode is just cool), and of course the App Store.

And by far, the sleeper hit of the App Store is Apple’s “Remote“. Seriously, this could be the best thing about iPhone 2.0 for me. More on that ridiculousness in a later post, I think.

In the fallout of the botched MobileMe launch, it’s been hard to determine what issues were temporary and which were just limitations of MobileMe on iPhone 2.0. I’ve spent a little time testing things, and here is my wishlist:

Allow data sync between MobileMe Family Pack accounts
This one is major, and central to the slightly misleading impression given by the MobileMe tagline “Exchange for the rest of us”. Some have said “It’s MobileMe, not MobileUs,” and that’s true. It functions great as “Exchange For Me”, but a tiny change (to features that feel more like bugs anyway) could turn a MobileMe Family Pack into “MobileUs”.

Family Packs provide 1 primary and up to 4 sub-accounts — each with their own Contacts, Calendars, iDisk space, and Email address. There is no sharing of data between them as far as I can tell (confirmed here) except possibly some way to transfer files thru shared iDisk folders. Family Packs are simply a quantity-discount over buying 5 individual accounts.

But Apple, why not take the “Family” part seriously and make Family Packs “just work” the way a family works? Our desktop and laptop computers sync to one primary MobileMe account, so that we benefit from all the integration goodness .mac has always had to offer. We have our own @mac.com email addresses, but we share common calendars and contacts. It’s even fairly simple for a sub-account holder’s iPhone to participate in this little makeshift family workgroup. You just enable only their sub-account Mail and then enable Contacts, Calendar, and Bookmarks for the primary account.

That works great, but the main problem is this: Push Email is an option for sub-accounts only up until any data sync option (Mail, Contact, Calendar, or Bookmark) from the primary account is enabled. An iPhone can only actively “sync” to one MobileMe account, so sub-account holders (or grandfathered .mac Email-Only accounts) must choose between push email or over-the-air data sync. Once anything from the primary account is turned on, “Push” becomes “Fetch” for the sub-account. I have confirmed this on Mike’s iPhone, and a lengthy Discussion Thread on Apple’s support site details it further.

My hunch is that Apple chose to limit the persistent push connections to just one per iPhone. Allowing multiple push accounts would enable runaway connection demands on their servers.

However, MobileMe has certain quirks that essentially make this Push Email vs. Sync decision for you. The biggest is that calendar colors from iCal are communicated to your iPhone calendars only after an over-the-air sync (feature or bug?). Your initial iTunes USB-sync gives your calendars a confoundingly random color scheme. I’m not about to retrain myself on new iCal colors, so if the only way is thru MobileMe data sync, the push email takes a backseat.

Settling for Fetch email is a small price — but it’s annoyingly second-class. Another drawback is only the primary account has web access to the data synced from the desktop. MobileMe’s online apps are amazing replicas of their desktop equivalents, and giving out the master password so all users in your “Family” can access the Address Book just isn’t always an option. To the “get your own individual account” crowd, that still wouldn’t allow Mike to share calendars and contacts with our desktop apps. And to the “use someone else’s services then” crowd, we’re extremely pleased with (and heavily dependent on) our @mac.com email addresses and the .mac integration way-of-life. Going without Push email is annoying, but not enough reason to forego data sync (except Contacts…for now, see below).

There are two solutions to this that I can think of:

  1. On an iPhone with multiple MobileMe accounts enabled, allow Push privileges for only one account and force all others to switch to Fetch. (This would retain the one-connection-per-phone limit.)
  2. Enable the MobileMe Family Pack primary account to sync selected data with its sub-accounts.

I really hope Apple goes the Family Pack route. Email-only’s are being phased out, and having inter-Family-Pack-account sync happen on the server would be tremendous. Imagine a Family Calendar that all the kids can view on their computers, and a Family Contacts group that means the kids’ AIM Buddies don’t clutter up Mom and Dad’s Address Book. Family Pack users should have the option of treating their accounts as either 5 distinct users or as a true mini-workgroup environment “for the rest of us”.

Re-enable selecting a subset of contact groups for over-the-air sync
A major drawback to over-the-air MobileMe contact sync is that you lose the ability to choose which groups to sync.

When a MobileMe account’s Contacts sync is enabled on an iPhone, iTunes then defers management of Address Book sync to the phone. I had hoped that meant you could continue to selectively sync only certain Address Book groups (in the same way iTunes allows). Alas, all contacts and all groups now sync to Contacts on the iPhone. (Thankfully, there is search now.)

+1 for Push Sync, -1 for feature removal.

A simple iPhone Settings screen or an additional config page on MobileMe’s account settings web page could easily replicate the disabled preferences formerly set in iTunes.

And, that’s it for now for my wish-and-a-half-list. I’m sure I’ll have more to say when I finally get my own phone. And yes, I’ve written all of this to Apple iPhone Feedback, and I encourage everyone do the same for your own gripes. I do think they listen. And I would like to think I encouraged a few features that appeared in iPhone 1.1.x updates. Let’s hope to see some more in iPhone 2.1 — and beyond!

Fixing the Music Store country settings in Front Row

Front Row had decided to show me Germany’s “Top-Titel” and “Top Musikvideos” under the Music menu. Somehow the Front Row preferences stopped matching the iTunes Music Store country settings. Deleting Front Row’s preferences and caches didn’t do the trick, it only started a roulette game in which Front Row randomly sent me to another country. I got Japan next. Fun, but what if you want to fix it?

The solution is to edit Front Row’s preferences. Open this file in Property List Editor:
~/Library/Preferences/com.apple.frontrow.plist

Expand “Root” and edit the MusicStoreFrontID value to 143441 for US. Save and close, and Front Row will see the change on the next launch.

Naturally, it doesn’t have to be the US. Maybe you’re bored with the domestic Top 40? For other country values, visit the country selector page in iTunes. Ctrl-click on a country, choose “Copy iTunes Store URL”, and paste that into a text editor. Find the “storeFrontId” value at the end of the URL and use that as your MusicStoreFrontID.


Performance Optimization WordPress Plugins by W3 EDGE