v0.0.299-alpha
Pre-release
Pre-release
jecassis
released this
09 Sep 03:24
·
40 commits
to master
since this release
Major Features
- Improve audio waveform resolution from 8-bit samples to use binary32 (IEEE 754 single-precision) floating-point -- this is very noticeable in the reaction of MilkDrop to high frequencies
- Enable song tile and custom message sprites and textures (
T
for title,Y
for messages,K
for textures) - Add album art extraction into visualization's textures or sprites; note this requires an entry in
<foobar2000 profile folder>\milkdrop2\milk2_img.ini
forimg100
- Add back all preset menus, including editing of "waitstring"s and preset parameters
- Update all tooltip and help strings
- Implement thread pool timer instead of the window message timer for rendering -- for higher frame rates and consistent frame-to-frame times (from past release) -> source of many annoying bugs
Features
- Allow smaller window size than Mode 13h (320x200); lower limit is now 150x150
- Port dark translucent box into DirectX 11
- Add caption icons to visualization window and fonts dialog
- Update DirectXTK from 2024.6.5.1 to 2024.9.5.1 [developer]
Preferences
- Add album art selection edit box for using foobar2000 script
- Add font selection dialog with proper style, centering and sizing
- Update preferences page with buttons to open
milk2_img.ini
andmilk2_msg.ini
as well as the font dialog - Add tooltips for all options
- Remove gamma correction for 16-bit color options since for Direct3D 11 the visualization runs on 32-bit color exclusively (
DXGI_FORMAT_B8G8R8A8_UNORM
) - Improve hard cut loudness slider range resolution
- Shrink image cache group box
- Enable title group box options
- Disable pixel shader model version selection, uses "Auto" implying Shader Model 4.0
- Disable canvas size selection, uses "Exact"
Context Menu
- Add options to launch preferences page, launch song title and show album art
Bug Fixes
- Fix song title animation launcher
- Fix several hangs and use-after-free issues due to thread pool threads racing with message loop/interactivity thread
- Fix initialization crash due to missing
\
in base path - Fix pixel shader model version resolution for Direct3D 11's feature levels [developer]
- Fix menu text second line bug due to negative
rect
s [developer] - Fix ARM builds missing HLSL options
Breaking Changes
- Move all options to "modern" configuration variables, update settings version to 3 [developer]
Optimizations
- Mirror
LOGFONTW
struct into foobar2000 configuration blob [developer] - Exclude unused dialogs, controls and strings from the resources [developer]
- Update device resources [developer]
- Update text manager class and its cleanup methods [developer]
- Change frame counter type definition to use
uint32_t
[developer] - Change font dialog style (
DS*
/WS*
) [developer] - Tighten playlist box calculation [developer]
Readability
- Update help file spacing
- Use
length()
andsize()
consistently when dealing with strings or arrays of characters [developer] - Rename "original" texture coordinates in vertex definitions [developer]
- Add timer preprocessor selection and checks with preprocessor expressions [developer]
- Move service factory instantiations [developer]
Modernization
- All libraries built with
/std:c++20
[developer] - Add Winamp shaders to project [developer]
- Make minor code cleanup updates [developer]
- Add fade in and fade out methods to text manager [developer]
- Add texture loading from memory methods to texture manager [developer]
- Increase Direct3D input assembler limits [developer]
- Move help text file into the
RCData
resource section from a custom"TEXT"
section [developer] - Make code and comments updates to rendering code from detailed review [developer]
Documentation
- Convert to Markdown and extensively update
milkdrop.html
- Add Doxygen and structure FFT comments for it [developer]
- Add
TESTING.md
[developer] - Add
BUILDING.md
[developer] - Update
README.md
andLICENSING.md
[developer]
Conveniences
- Update
.vsconfig
for Visual Studio 2022 component updates [developer] - Update
.gitignore
[developer]
Compatibility
- Revert
_WIN32_WINNT
to Windows 7 [developer] - Update path resolution functions [developer]
- Add DPI-aware and settings manifests [developer]
Deployment
- Fix PDB saving script issue [developer]
- Fix release script developer shell check [developer]
- Add "Clean" target to release script [developer]
Test
- Add DLL testing infrastructure and basic unit test [developer]
- Add test to query the DUT data [developer]
- Update test by minimizing duplication [developer]
- Enable runtime coverage collection [developer]
Experimental
- Complete functional integration of 3-D text class [unused, developer]
Full Changelog: v0.0.260-alpha...v0.0.299-alpha