Projects made in previous versions of Audacity which contain 16-bit or 24-bit tr…acks crash Audacity on opening in 3.3.0
### Steps to reproduce
1. Open Audacity 3.2.5
2. Create a track at 16 bit or 24 bit
3. save the project
4. close Audacity
5. Open Audacity 3.3
6. Open the project
7. crash (with debug window)
<details><summary>show debug window</summary>
```
[Window Title]
wxWidgets Debug Alert
[Main Instruction]
A debugging check in this application has failed.
[Content]
C:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\GetWaveDisplay.cpp(260): assert "pixel == len" failed in GetWaveDisplay().
[^] Hide details [ ] Don't show this dialog again [Stop] [Continue]
[Expanded Information]
[01] wxBackingFile::operator=
[02] wxSizerItemList::size
[03] wxBackingFile::operator=
[04] wxBackingFile::operator=
[05] wxBackingFile::operator=
[06] wxBackingFile::operator=
[07] GetWaveDisplay C:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\GetWaveDisplay.cpp:260
[08] WaveClipWaveformCache::GetWaveDisplay C:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformCache.cpp:256
[09] `anonymous namespace'::DrawClipWaveform C:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:809
[10] WaveformView::DoDraw C:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1023
[11] WaveformView::Draw C:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1066
[12] `CellularPanel::Draw'::`4'::<lambda_1>::operator() C:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1247
[13] std::invoke<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\type_traits:1589
[14] std::_Invoker_ret<void>::_Call<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:674
[15] std::_Func_impl_no_alloc<`CellularPanel::Draw'::`4'::<lambda_1>,void,wxRect const &,TrackPanelNode &>::_Do_call C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:834
[16] std::_Func_class<void,wxRect const &,TrackPanelNode &>::operator() C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:875
[17] `anonymous namespace'::Adaptor::VisitCell C:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1048
[18] CellularPanel::Visit C:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1113
[19] CellularPanel::Visit C:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123
[20] CellularPanel::Visit C:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123
[21] CellularPanel::Visit C:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123
```
</details>
<details><summary>show callstack</summary>
```
Audacity.exe!GetWaveDisplay(const Sequence & sequence, float * min, float * max, float * rms, int * bl, unsigned __int64 len, const sampleCount * where) Line 260 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\GetWaveDisplay.cpp:260)
Audacity.exe!WaveClipWaveformCache::GetWaveDisplay(const WaveClip & clip, WaveDisplay & display, double t0, double pixelsPerSecond) Line 256 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformCache.cpp:256)
Audacity.exe!`anonymous namespace'::DrawClipWaveform(TrackPanelDrawingContext & context, const WaveTrack * track, const WaveClip * clip, const wxRect & rect, bool dB, bool muted, bool selected) Line 809 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:809)
Audacity.exe!WaveformView::DoDraw(TrackPanelDrawingContext & context, const WaveTrack * track, const WaveClip * selectedClip, const wxRect & rect, bool muted) Line 1023 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1023)
Audacity.exe!WaveformView::Draw(TrackPanelDrawingContext & context, const wxRect & rect, unsigned int iPass) Line 1066 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1066)
Audacity.exe!`CellularPanel::Draw'::`4'::<lambda_1>::operator()(const wxRect & rect, TrackPanelNode & node) Line 1247 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1247)
Audacity.exe!std::invoke<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &>(CellularPanel::Draw::__l4::<lambda_1> & _Obj, const wxRect & _Arg1, TrackPanelNode & <_Args2_0>) Line 1589 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\type_traits:1589)
Audacity.exe!std::_Invoker_ret<void>::_Call<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &>(CellularPanel::Draw::__l4::<lambda_1> & _Func, const wxRect & <_Vals_0>, TrackPanelNode & <_Vals_1>) Line 674 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:674)
Audacity.exe!std::_Func_impl_no_alloc<`CellularPanel::Draw'::`4'::<lambda_1>,void,wxRect const &,TrackPanelNode &>::_Do_call(const wxRect & <_Args_0>, TrackPanelNode & <_Args_1>) Line 834 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:834)
Audacity.exe!std::_Func_class<void,wxRect const &,TrackPanelNode &>::operator()(const wxRect & <_Args_0>, TrackPanelNode & <_Args_1>) Line 875 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:875)
Audacity.exe!`anonymous namespace'::Adaptor::VisitCell(const wxRect & rect, TrackPanelCell & cell) Line 1048 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1048)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1113 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1113)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(CellularPanel::Visitor & visitor) Line 1026 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1026)
```
</details>
### catch wind
1. Open Audacity
2. open catch-wind.aup3
3. silent crash
<details><summary>show callstack</summary>
```
ucrtbased.dll!00007ffd1a868ed2() (Unknown Source:0)
ucrtbased.dll!00007ffd1a868740() (Unknown Source:0)
lib-wave-track.dll!std::vector<SeqBlock,std::allocator<SeqBlock>>::operator[](const unsigned __int64 _Pos) Line 1958 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\vector:1958)
lib-wave-track.dll!Sequence::FindBlock(sampleCount pos) Line 1062 (c:\Users\mc\Documents\GitHub\LWdacity\libraries\lib-wave-track\Sequence.cpp:1062)
Audacity.exe!GetWaveDisplay(const Sequence & sequence, float * min, float * max, float * rms, int * bl, unsigned __int64 len, const sampleCount * where) Line 94 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\GetWaveDisplay.cpp:94)
Audacity.exe!WaveClipWaveformCache::GetWaveDisplay(const WaveClip & clip, WaveDisplay & display, double t0, double pixelsPerSecond) Line 256 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformCache.cpp:256)
Audacity.exe!`anonymous namespace'::DrawClipWaveform(TrackPanelDrawingContext & context, const WaveTrack * track, const WaveClip * clip, const wxRect & rect, bool dB, bool muted, bool selected) Line 809 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:809)
Audacity.exe!WaveformView::DoDraw(TrackPanelDrawingContext & context, const WaveTrack * track, const WaveClip * selectedClip, const wxRect & rect, bool muted) Line 1023 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1023)
Audacity.exe!WaveformView::Draw(TrackPanelDrawingContext & context, const wxRect & rect, unsigned int iPass) Line 1066 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1066)
Audacity.exe!`CellularPanel::Draw'::`4'::<lambda_1>::operator()(const wxRect & rect, TrackPanelNode & node) Line 1247 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1247)
Audacity.exe!std::invoke<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &>(CellularPanel::Draw::__l4::<lambda_1> & _Obj, const wxRect & _Arg1, TrackPanelNode & <_Args2_0>) Line 1589 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\type_traits:1589)
Audacity.exe!std::_Invoker_ret<void>::_Call<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &>(CellularPanel::Draw::__l4::<lambda_1> & _Func, const wxRect & <_Vals_0>, TrackPanelNode & <_Vals_1>) Line 674 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:674)
Audacity.exe!std::_Func_impl_no_alloc<`CellularPanel::Draw'::`4'::<lambda_1>,void,wxRect const &,TrackPanelNode &>::_Do_call(const wxRect & <_Args_0>, TrackPanelNode & <_Args_1>) Line 834 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:834)
Audacity.exe!std::_Func_class<void,wxRect const &,TrackPanelNode &>::operator()(const wxRect & <_Args_0>, TrackPanelNode & <_Args_1>) Line 875 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:875)
Audacity.exe!`anonymous namespace'::Adaptor::VisitCell(const wxRect & rect, TrackPanelCell & cell) Line 1048 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1048)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1113 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1113)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
```
</details>
### failswith330beta
1. Open Audacity
2. Open failswith330beta.aup3
3. silent crash
<details><summary>show callstack</summary>
```
lib-wave-track.dll!std::vector<SeqBlock,std::allocator<SeqBlock>>::operator[](const unsigned __int64 _Pos) Line 1958 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\vector:1958)
lib-wave-track.dll!Sequence::FindBlock(sampleCount pos) Line 1062 (c:\Users\mc\Documents\GitHub\LWdacity\libraries\lib-wave-track\Sequence.cpp:1062)
Audacity.exe!GetWaveDisplay(const Sequence & sequence, float * min, float * max, float * rms, int * bl, unsigned __int64 len, const sampleCount * where) Line 94 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\GetWaveDisplay.cpp:94)
Audacity.exe!WaveClipWaveformCache::GetWaveDisplay(const WaveClip & clip, WaveDisplay & display, double t0, double pixelsPerSecond) Line 256 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformCache.cpp:256)
Audacity.exe!`anonymous namespace'::DrawClipWaveform(TrackPanelDrawingContext & context, const WaveTrack * track, const WaveClip * clip, const wxRect & rect, bool dB, bool muted, bool selected) Line 809 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:809)
Audacity.exe!WaveformView::DoDraw(TrackPanelDrawingContext & context, const WaveTrack * track, const WaveClip * selectedClip, const wxRect & rect, bool muted) Line 1023 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1023)
Audacity.exe!WaveformView::Draw(TrackPanelDrawingContext & context, const wxRect & rect, unsigned int iPass) Line 1066 (c:\Users\mc\Documents\GitHub\LWdacity\src\tracks\playabletrack\wavetrack\ui\WaveformView.cpp:1066)
Audacity.exe!`CellularPanel::Draw'::`4'::<lambda_1>::operator()(const wxRect & rect, TrackPanelNode & node) Line 1247 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1247)
Audacity.exe!std::invoke<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &>(CellularPanel::Draw::__l4::<lambda_1> & _Obj, const wxRect & _Arg1, TrackPanelNode & <_Args2_0>) Line 1589 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\type_traits:1589)
Audacity.exe!std::_Invoker_ret<void>::_Call<`CellularPanel::Draw'::`4'::<lambda_1> &,wxRect const &,TrackPanelNode &>(CellularPanel::Draw::__l4::<lambda_1> & _Func, const wxRect & <_Vals_0>, TrackPanelNode & <_Vals_1>) Line 674 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:674)
Audacity.exe!std::_Func_impl_no_alloc<`CellularPanel::Draw'::`4'::<lambda_1>,void,wxRect const &,TrackPanelNode &>::_Do_call(const wxRect & <_Args_0>, TrackPanelNode & <_Args_1>) Line 834 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:834)
Audacity.exe!std::_Func_class<void,wxRect const &,TrackPanelNode &>::operator()(const wxRect & <_Args_0>, TrackPanelNode & <_Args_1>) Line 875 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\functional:875)
Audacity.exe!`anonymous namespace'::Adaptor::VisitCell(const wxRect & rect, TrackPanelCell & cell) Line 1048 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1048)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1113 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1113)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
Audacity.exe!CellularPanel::Visit(const wxRect & rect, const std::shared_ptr<TrackPanelNode> & node, CellularPanel::Visitor & visitor) Line 1123 (c:\Users\mc\Documents\GitHub\LWdacity\src\CellularPanel.cpp:1123)
```