Releases: JoepVanlier/ysfx
Release list
v0.0.45
Changelog
- IDE: Support changing the font in the IDE with ctrl + scrollwheel.
- IDE: Allow resizing the variable watch list.
v0.0.44
Changelog
- PresetManager: Fixed bug that would result in a crash when loading a non-RPL file in the preset manager.
- PresetManager: Added ability to manage presets for JSFX that don't come with a stock RPL file
- PresetManager: Added support for doubleclick loading of presets for presets loaded in the import column
- PresetManager: Ensure order is preserved when importing multiple presets.
- PresetManager: Added protection of the import column by adding an explicit checkbox to allow modification.
- PresetManager: Add option to move presets around.
- PresetManager: Add option to preview preset with enter key.
- PresetManager: Support closing the RPL file in the import pane.
- PresetManager: Store last position and size.
- PresetManager: Fix background color selection in listboxes.
- PresetManager: Allow deselecting all rows by clicking the background of the list box.
- ysfx: add API endpoint for swapping presets in-place (
ysfx_swap_preset_in_bank)
v0.0.43
Changelog
- plugin: Fixed behavior of
gfx_ext_retinaon high dpi screens. Prior to this change, this variable would always stay at the value the user set. This prevented some JSFX from scaling appropriately for high dpi screens. - plugin/ysfx: Also load preset banks if they end only with .rpl (thank you for the contribution jcelerier!).
- plugin: Added option to use non-native file browser. On some versions of Linux (reported for Debian Trixie at least), the native file file chooser may fail to open. If this happens, you can set an option in the preferences file to use a built-in file browsing dialog instead, see the FAQ in the readme file for more information on this.
Breaking changes (relevant mostly for developers, not users of the plugin)
- ysfx: Prevent the scaling factor from changing
gfx_wandgfx_h. Prior to this change, these variables were multiplied internally with the scaling factor resulting in a canvas that is too small. Now the host is responsible for setting an appropriate canvas style, and the scaling factor is merely propagated togfx_ext_retina.
v0.0.42
Changelog
- Fixed issue where the parameter panel did not scale appropriately in situations where the panel never got resized after construction.
- The first call to
@gfxafter closing the plugin window now reports the visibility flag (fromgetchar(65536)) as false (analogously to REAPER). All subsequent calls are true.
v0.0.41
Changelog
-
plugin: added support for
getchar(65536)for polling the window status (bitmask with 1=supported, 2=window has focus, 4=window is visible, 8=mouse is over window). -
plugin: fixed bug in
play_state.play_stateset to0signifies that playback is stopped rather than an error (analogously to JSFX). It is also different fromplay_stateset to 2 which indicates that transport is paused. -
plugin: added version information (visible in the label before any plugin is loaded)
-
plugin: added version information to tooltip for loaded plugins
-
plugin: added tooltips for all the top level controls that did not yet have any
-
plugin: improved splitting of plugin path name in plugin name tooltip
-
ysfx: added api for telling gfx what the graphics window status is (i.e.
ysfx_gfx_set_window_state(ysfx_t *fx, bool hasFocus, bool windowVisible, bool mouseOver)) such that it can be polled by JSFX usinggetchar(65536).
Breaking changes
- ysfx:
ysfx_playback_stateenumeration optionysfx_playback_error(0) has been removed and replaced withysfx_playback_stopped(0) analogously to REAPER.
v0.0.40
Changelog
- Fixed issue with mislabeling of negative values within one increment distance from zero. Note that this bug should not have affected the audio, just the label display in the UI.
- Added portable versions for Windows. When using the portable version, it is not required to install MSVCRT manually, as it is statically linked in the plugin.
Happy music making!
v0.0.39
Changelog
- plugin: Ensured that
ysfxnow syncs ui sliders whenever they go out of sync with the backend. This is required for jsfx that change slider values from the jsfx itself without callingslider_automate. - plugin: Resolved some of the edge flickering caused by incorrect gfx size.
- plugin: Resolved failing to round to desired increment in text boxes.
- plugin: Added keyboard controls for sliders. Up/Down/Left/Right arrow for changing the value. Ctrl, Cmd and Shift modifiers to make larger adjustments. Page up and down for even larger adjustments and home and end to skip to the start and end.
- ide: Added more flexibility of the text encoding. The document viewer will now use juce to try and infer the text encoding of the file that has been read.
- plugin/accessibility: Added functionality such that when the filter is engaged and the user scrolls through the list of presets, the OS is notified of the selected item's name. This allows screen readers to pick up on the preset names.
- plugin/accessibility: Added the option to use
ALT + NandALT + Pto scroll through the presets. These shortcuts can be enabled/disabled in the preset option menu (next toPresets). - plugin/accessibility: Added functionality to report to the OS when a preset is selected. Now the preset name is presented to any screen narrator active.
- plugin/accessibility: Added that the slider label can be selected such that it can be heard when screen narration is active.
- all: dropped support for compiling with
mingw32/mingw64.
Windows users: Please note that I updated the version of Microsoft Visual C++ that is used for building the Windows version of the plugin. If you suspect that your MSVC redistributable may be outdated, please install a newer one. You can download the installer from Microsoft here:
32-bit: https://aka.ms/vs/17/release/vc_redist.x86.exe
64-bit: https://aka.ms/vs/17/release/vc_redist.x64.exe
Note that if you have an outdated MSVC redistributable, you may get a crash on startup. For more information see: https://stackoverflow.com/questions/78598141/first-stdmutexlock-crashes-in-application-built-with-latest-visual-studio
v0.0.38
Changelog
- Fix crash bug in IDE tokenizer.
v0.0.37
Changelog
- Hotfix for issue running preprocessor on header (prevented loading jsfx with preprocessor-defined sliders). This bug was introduced in
v0.0.36.
v0.0.36
Changelog
- ysfx/plugin: Fix crash on calling gfx functions on different thread when no framebuffer exists. This bug could be triggered by invoking gfx-based functions which write to the framebuffer of the plugin from non
gfxsections and then closing the UI. - ysfx/plugin: Add stubs for unsupported some unsupported API such that JSFX which do not critically depend on these still work. Use of the host interaction functions
export_buffer_to_project,get_host_numchan,set_host_numchan,get_pin_mapping,set_pin_mapping,get_pinmapper_flags,set_pinmapper_flags,get_host_placementwill no longer make a JSFX fail to compile, but will just result in no operation being performed. Syntax highlighting will mark these functions as red to indicate that they are currently not supported. - ysfx/plugin: Parse preprocessor configuration and set them to the defaults on init. Ensures preprocessor config variables are parsed and present. Note that there is no way to set these from the UI yet however.
- ysfx/plugin: Ensure that gfx calls outside of gfx do not lead to undefined behavior by silencing them (note that gfx calls should only be called from the gfx section).
- plugin: expose a config flag for customizing the stay on top behaviour of edit and preset windows. The field is called
ysfx_sub_window_stay_on_topand the integer values for different options are: 0=alwaysOnTop, 1=no always on top, 2=dynamic always on top (hide when application focus is lost).