Tape#duration can accept an argument for changing the duration of the fragment
some refactoring, and fade in/out support