... in WaveClip and WaveTrack, to save as much recording as we can,
assuming the strong guarantees that Sequence will give.
Also comment that some other WaveTrack methods can give strong guarantee,
incidentally to making HandleClear give strong.
This commit adds note tracks into the mixerboard. It's done as a separate
slider this time instead of via subclasses (as PRL requested), so which
should be easier to use.
This also changes some of the gaurds to EXPERIMENTAL_MIDI_OUT from
USE_MIDI, as it's meaningless to have the note track code in mixerboard
when it cannot do anything (depends on methods that exist behind
EXPERIMENTAL_MIDI_OUT).
This gets rid of the offset rectangle hack that was needed to re-use gain
sliders for note track velocities. It also removes the need for changing
the style of a single slider. Perhaps most importantly, it fixes link
errors regarding GainSlider(int).
See https://sourceforge.net/p/audacity/mailman/message/35752524/ for
details on why this change is needed and what caused it.
... The return codes were mostly ignored anyway, and exceptions will be thrown
instead.
It seems there was also confusion whether the return values of Track::Paste
and Track::SyncLockAdjust were to indicate success or indicate whether there
was any change. No matter now.
"Velocity" is the technical term, and it's the term that's used everywhere.
"Gain" was probably only used because "gain" is used on wave tracks; since
note tracks aren't wave tracks (and shouldn't be treated as them) the
corresponding variables should be named velocity.
The compilation was broken in 67cec5a but fixed in ed8c7fd. However, the warnings weren't fixed. The same general sign-related changes from 67cec5a were applied, fixing several warnings.
This also changes the arguments for NoteTrack's label click handler, to match the ones found in TrackPanel. That's needed to handle some other const-related changes.
Additionally, EXPERIMENTAL_MIDI_PLAYBACK was changed to EXPERIMENTAL_MIDI_OUT in the documentation, as that is the correct name.