Skip to content

Releases: jecassis/foo_vis_milk2

v0.1.9-beta

24 Sep 03:09
Compare
Choose a tag to compare
v0.1.9-beta Pre-release
Pre-release

Bug Fixes

  • Fix reinitialization crashes due to improper stack-allocated state/texture memory management

Documentation

  • Make minor comment updates

Full Changelog: v0.1.8-beta...v0.1.9-beta

v0.1.8-beta

23 Sep 00:32
Compare
Choose a tag to compare
v0.1.8-beta Pre-release
Pre-release

Bug Fixes

  • Plug codehandle leaks on window resize
  • Fix all heap-use-after-free and stack-use-after-scope errors from AddressSanitizer
  • Fix PFC assertion firing due to accessing invalid list position

Modernization

  • Add "Sanitize" build configuration for AddressSanitizer [developer]
  • Add AddressSanitizer patches for DirectXTK [developer]
  • Add C runtime (CRT) library heap debugging support [developer]

Documentation

  • Make minor documentation updates

Full Changelog: v0.1.0-beta...v0.1.8-beta

v0.1.0-beta

15 Sep 04:38
Compare
Choose a tag to compare
v0.1.0-beta Pre-release
Pre-release

Bug Fixes

  • Fix device lost scenario crash while using a flip model swap chain associated with a window handle and Direct2D
  • Fix DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL and rendering of title text
  • Fix lingering Direct2D brushes on exit when song title, length and/or position are "displayed" when there is nothing to display
  • Prevent crash on right click when no presets are available
  • Fix crash due to an empty song name not differentiated from a message timeout
  • Fix multiple instances of incorrect code page conversion of szPresetDir before saving
  • Check active playlist size before accessing to avoid exception
  • Fix hang on error message display blocked by another message
  • Correct minor oversights in component release

Features

  • Update component icon
  • Keep function key settings between sessions

Preferences

  • Reset to defaults on "Reset page" plus "OK" or "Apply", not revert current changes
  • Limit loading and saving preferences to opening and closing the visualization (i.e., not fullscreen/windowed toggle)

Optimizations

  • Only write to settings on initial window creation [developer]

Readability

  • Add error retrieve and display function [developer]
  • Fix some comments [developer]
  • Use D3D11_BLEND enumeration fields instead of integers [developer]
  • Remove unused text manager methods [developer]

Modernization

  • Move DLL build to level 4 warnings (/W4) [developer]
  • Update HLSL build recipes and inclusion [developer]
  • Implement various Code Analysis recommended changes [developer]
  • Review the fixed-function pipeline migration to shaders [developer]

Documentation

  • Add original MilkDrop documentation

Conveniences

  • Use _WIN32_WINNT as Windows 10 for DXGI debugging [developer]

Deployment

  • Add DLL signing and timestamping to release script [developer]
  • Call executables explicitly in Windows [developer]
  • Turn off checks when creating partial packages [developer]

Test

  • Add FFT unit test [developer]
  • Rename DLL test file [developer]

Full Changelog: v0.0.299-alpha...v0.1.0-beta

v0.0.299-alpha

09 Sep 03:24
Compare
Choose a tag to compare
v0.0.299-alpha Pre-release
Pre-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 for img100
  • 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 and milk2_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 rects [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() and size() 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 and LICENSING.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