... If recording one or two channels, use first unbroken subsequence within the
selected wave tracks for which the total of channels matches exactly; failing
that, use such a sequence among all wave tracks; failing that, record to
new tracks.
If recording more than two channels, and there is at least one selected wave
track, then use the topmost selected wave channels, up to the number of
recording channels, and if fewer channels are selected, just drop the extra
input channels.
If recording more than two, and no wave tracks are selected, ignore existing
wave tracks and record to new tracks.
In any case, the tracks chosen for append-record might not be consecutive
among all the tracks, because non-wave or non-selected tracks may come between.
These were the steps to reproduce:
Remember that the Realtek card in my new HP laptop *only* runs at 48000
1) Clear out the entire Audacity config/settings folder for virgin running
2) Launch Audacity audacity-2.3.0-alpha-20-a22be24ae3a224c90688504f8ff323c41f8c9c35
3) set recording for WASAPI/loopback (or WASAPI/mic)
4) press Record
5) Track records properly
6) rate shown in TCP is 44100
7) Project rate at bottom left shows 44100
8) Exit Audacity
9) Relaunch Audacity
10) Project rate at bottom left now shows 48000
11) Press Record
12) Track records OK - but at 48000 obviously
The problem: the default sample rate is read in like this:
gPrefs->Read(wxT("/SamplingRate/DefaultProjectSampleRate"), &mRate, AudioIO::GetOptimalSupportedSampleRate());
- the default is not fixed, it can vary with host/device.
Fix: Ensure that there is always an entry for the default sample rate in audacity.cfg
problem: The commit 1ccd2678b6985759915fe420c74a094361420dc2 swapped the actions of these two commands.
Fix: swap them back to their original actions:
Selection contract left: contracts the selection by moving its left hand end to the right.
Selection contract right: contracts the selection by moving its right hand end to the left.
This was caused by my commit: f9ee3cdc45ab3c5530505daa119ef01ccfdcc262
When void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S) is called for the purposes of GetInfo, the pointers to the radio buttons are null, so need to check for this before calls to SetAccessible.
menu item, tentative shortcut Shift+D ("do-over")
Add to recording preferences for pre-roll and crossfade
Define EXPERIMENTAL flag
Recording options allow crossfade data for start of recording
Stop playback of pre-rolled tracks at the right time
Allow for preRoll in start-stream options
... So that samples of a new track align precisely with the old track, at least
in case the old track has the same rate and starts exactly at 0, which is
the likely usual case.
... Adjust whenever recording, regardless whether there is any overdub
playback too.
May adjust by discarding samples when the Track Shift after Record preference
is negative (as by default); or, by inserting silence into the start of the
recording, when that preference is positive, though that may be less useful.
Perhaps the preference control should no longer be called "Track Shift after
Record."
... a mono channel into the left side of a stereo track; crash was in drawing;
other code now prevents such recording, but that prevention might be revised
again.