DynamicWin v1.3.0b
Note
Ensure you uninstall your current installation of DynamicWin first for this release as I have moved the setup process from the built-in setup wizard again to Inno Setup. Expect future releases to be handled this way, meaning continuous uninstalls and re-installs will not be an issue moving forward.
Your current configurations will not be wiped, the only reason this is needed is to avoid making a duplicate of the program.
What's new in v1.3.0b?
- Audio Visualiser 2.0
Migrations.csMediaandMediaInfoclasses- Quality-of-life and visual improvements
- Dependency updates
Audio Visualiser 2.0
An existing feature in DynamicWin receives a visual upgrade. The newly implemented AudioVisualiser.cs aims to replicate the looks of the Dynamic Island audio visualiser seen on iPhones.
Tip
If you currently have this widget active, this will automatically carry over to the new implementation. No need to re-add.
190525_2.mp4
With this new implementation, extension makers can modify the look of the audio visualiser to their liking with the following values:
// AudioVisualiser.cs
// Defines the average amplitude that each bar frequency displays
private float averageAmplitude = 0f;
public float AverageAmplitude { get => averageAmplitude; }
// Allows the visualiser to change colours dynamically depending on the bar frequency
private bool enableColourTransition = true;
public bool EnableColourTransition { get => enableColourTransition; set => enableColourTransition = value; }
// Displays dots on idle state when no audio is playing
private bool enableDotWhenLow = true;
public bool EnableDotWhenLow { get => enableDotWhenLow; set => enableDotWhenLow = value; }
// Blurs the visualiser, perfect for making audio-reactive backgrounds
public float BlurAmount { get; set; } = 0f;
// Determines how far apart the bars should be from each other
public float BarSpacing { get; set; } = 1f;Migrations.cs
As more widgets are overhauled over time, it is necessary to ensure that user-applied widgets are not affected and should remain intact every update. Migrations.cs streamlines the process for developers, maintainers, and extension makers alike.
Examples
// Migrations.cs
new WidgetMigration
{
OldName = "DynamicWin.UI.Widgets.Small.RegisterSmallVisualizerWidget",
NewName = "DynamicWin.UI.Widgets.Small.RegisterSmallVisualiserWidget"
},// Migrations.cs
// Class method to store both legacy and new naming conventions
public class WidgetMigration
{
public string OldName { get; set; }
public string NewName { get; set; }
}Media and MediaInfo
Whilst the functionalities for these are already implemented, they are currently not in use by any widgets and will be expanded upon further on v1.4.0b. This implementation allows metadata fetching on what is currently playing on the user's system.
// MediaController.cs
public class Media
{
public string? Title { get; set; }
public string? Artist { get; set; }
public BitmapImage? Thumbnail { get; set; }
}Quality-of-life and visual improvements
- To ensure that users using the
Defaultmethod of fetching forecast data can correctly fetch data,await Task.Delay(10000)has been reverted back toawait Task.Delay(120000)to avoidError Code 429requests. - A slight visual adjustment for
IslandMode.Islandhas been included forHomeMenu.csto display the borders around it when hovered. This is done to keep visuals consistent across menus.
Dependency updates
Starting with DynamicWin v1.3.0b, the code-base has been updated to use .NET 9.0 for development. Despite this, developers can build the solution like usual without any difference apart from the target .NET framework.
What's coming in v1.4.0b?
While information about upcoming features for the next versions are vague, one thing to expect is the visual overhaul of MediaWidget.cs in v1.4.0b. Apart from that, expect new and existing features to slowly be included over time.
Continued support:
- Your support truly means a lot to me as I continue to maintain DynamicWin. Keep an eye out on this repository whenever a new release comes out.
- Feel free to contribute to this project as you wish. Open any issues on the issues page if you encounter any bugs.
Read the full changelog here: v1.2.1b...v1.3.0b

