diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h index 8d929827c5..3ee7962bde 100644 --- a/libs/ardour/ardour/audioregion.h +++ b/libs/ardour/ardour/audioregion.h @@ -140,6 +140,8 @@ class AudioRegion : public Region void set_fade_out (FadeShape, framecnt_t); void set_fade_out (boost::shared_ptr); + void set_default_fades (); + void set_envelope_active (bool yn); void set_default_envelope (); @@ -201,7 +203,6 @@ class AudioRegion : public Region void post_set (const PBD::PropertyChange&); void init (); - void set_default_fades (); void set_default_fade_in (); void set_default_fade_out (); diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc index c3d4bfc8de..bb4bc9c0e3 100644 --- a/libs/ardour/audio_playlist.cc +++ b/libs/ardour/audio_playlist.cc @@ -168,6 +168,17 @@ AudioPlaylist::AudioPlaylist (boost::shared_ptr other, fram , _crossfades (*this) { add_property (_crossfades); + + /* Audio regions that have been created by the Playlist constructor + will currently have the same fade in/out as the regions that they + were created from. This is wrong, so reset the fades here. + */ + + for (RegionList::iterator i = regions.begin(); i != regions.end(); ++i) { + boost::shared_ptr ar = boost::dynamic_pointer_cast (*i); + assert (ar); + ar->set_default_fades (); + } /* this constructor does NOT notify others (session) */ }