Skip to content

Releases: JoepVanlier/ysfx

v0.0.45

v0.0.45 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 28 Mar 16:40

Changelog

  • IDE: Support changing the font in the IDE with ctrl + scrollwheel.
  • IDE: Allow resizing the variable watch list.

v0.0.44

v0.0.44 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 25 Feb 21:15

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

v0.0.43 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 04 Feb 20:02

Changelog

  • plugin: Fixed behavior of gfx_ext_retina on 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_w and gfx_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 to gfx_ext_retina.

v0.0.42

v0.0.42 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 21 Oct 21:49

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 @gfx after closing the plugin window now reports the visibility flag (from getchar(65536)) as false (analogously to REAPER). All subsequent calls are true.

v0.0.41

v0.0.41 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 18 Oct 19:32

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_state set to 0 signifies that playback is stopped rather than an error (analogously to JSFX). It is also different from play_state set 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 using getchar(65536).

Breaking changes

  • ysfx: ysfx_playback_state enumeration option ysfx_playback_error (0) has been removed and replaced with ysfx_playback_stopped (0) analogously to REAPER.

v0.0.40

v0.0.40 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 13 Sep 13:21

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

v0.0.39 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 30 Aug 23:57

Changelog

  • plugin: Ensured that ysfx now 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 calling slider_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 + N and ALT + P to scroll through the presets. These shortcuts can be enabled/disabled in the preset option menu (next to Presets).
  • 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

v0.0.38 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 16 May 17:26

Changelog

  • Fix crash bug in IDE tokenizer.

v0.0.37

v0.0.37 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 22 Apr 15:39

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

v0.0.36 Pre-release
Pre-release

Choose a tag to compare

@JoepVanlier JoepVanlier released this 19 Apr 20:14

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 gfx sections 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_placement will 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_top and 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).