I'm pretty good with these things, but this took me much longer than I expected.
Copy your (cropped to 30 seconds, with audacity or something) song clip to your phone's "Internal Storage > Ringtones" folder. You can use a file manger (not included -- I like ES File Manager -- and copy from your downloads or a network share or something) or do it by connecting your phone to your computer using a USB cable.
Open Contacts App > select contact > select pencil  icon > select overflow menu (three vertical dots) > select "Set ringtone" > find your song clip!
In my defense
In all previous versions (up to 4.4.4, anyway, that I've experienced), it wasn't necessary to select 'edit' once viewing a contact to be shown the 'set ringtone' option. And, since ringtone wasn't one of the listed fields showing information about the contact, I didn't imagine that selecting 'edit' would show a 'set ringtone' option. It does. Now I know.