diff --git a/src/AudioIO.h b/src/AudioIO.h index 22c0bb384..c9ee5578d 100644 --- a/src/AudioIO.h +++ b/src/AudioIO.h @@ -85,6 +85,12 @@ class AudioIOListener; #define DEFAULT_LATENCY_DURATION 100.0 #define DEFAULT_LATENCY_CORRECTION -130.0 +#define AUDIO_PRE_ROLL_KEY (wxT("/AudioIO/PreRoll")) +#define DEFAULT_PRE_ROLL_SECONDS 5.0 + +#define AUDIO_ROLL_CROSSFADE_KEY (wxT("/AudioIO/Crossfade")) +#define DEFAULT_ROLL_CROSSFADE_MS 10.0 + #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT #define AILA_DEF_TARGET_PEAK 92 #define AILA_DEF_DELTA_PEAK 2 diff --git a/src/prefs/RecordingPrefs.cpp b/src/prefs/RecordingPrefs.cpp index cee059adb..c2b475a82 100644 --- a/src/prefs/RecordingPrefs.cpp +++ b/src/prefs/RecordingPrefs.cpp @@ -19,6 +19,7 @@ *//********************************************************************/ #include "../Audacity.h" +#include "../Experimental.h" #include "RecordingPrefs.h" #include @@ -222,8 +223,33 @@ void RecordingPrefs::PopulateOrExchange(ShuttleGui & S) } S.EndStatic(); #endif - S.EndScroller(); +#ifdef EXPERIMENTAL_PUNCH_AND_ROLL + S.StartStatic(_("Punch and Roll Recording")); + { + S.StartThreeColumn(); + { + auto w = S.TieNumericTextBox(_("Pre-ro&ll duration:"), + AUDIO_PRE_ROLL_KEY, + DEFAULT_PRE_ROLL_SECONDS, + 9); + S.AddUnits(_("seconds")); + w->SetName(w->GetName() + wxT(" ") + _("seconds")); + } + { + auto w = S.TieNumericTextBox(_("Cross&fade:"), + AUDIO_ROLL_CROSSFADE_KEY, + DEFAULT_ROLL_CROSSFADE_MS, + 9); + S.AddUnits(_("milliseconds")); + w->SetName(w->GetName() + wxT(" ") + _("milliseconds")); + } + S.EndThreeColumn(); + } + S.EndStatic(); +#endif + + S.EndScroller(); } bool RecordingPrefs::Commit()