implementing cross-fade (automatic and manual)