Skip to content

Releases: MaddyGuthridge/Universal-Controller-Script

v1.2.2 - Fixes for FL Studio 2024.1

23 Jun 07:03
Compare
Choose a tag to compare

✏️ Changed✏️

  • Update all try-except blocks associated with calls to the FL Studio Python API to also catch RuntimeError exceptions, so that the script remains stable for FL Studio 2024.1

v1.2.1 - Bug Fixes and Documentation Improvements

27 Feb 00:49
Compare
Choose a tag to compare

🔧 Fixed 🔧

  • Fixed an issue where Akai MPK Mini Mk3 devices sometimes weren't recognised

📔 Documentation 📔

🎉 New Contributors 🎉

v1.2.0 - More Device Support and Other Improvements

09 Feb 06:06
Compare
Choose a tag to compare

✨ New ✨

Device support

  • Akai MPK Mini Mk3
  • Novation SL Mk3 (many more features since 1.1.2)

Plugin Support

  • Klevgrand DAW Cassette

Other features

  • Activity Switcher: quickly jump between recent windows and plugins within FL Studio

    • Novation SL Mk3: press the "Grid" button
    • Novation Launchkey Mk3: Press the "Device select" button
    • Novation Launchkey Mini Mk3: Double-press the play button
  • Support for forwarding MIDI CC events to allow MIDI learn in plugins such as Kontakt

  • Improved playlist navigation and pattern selection

✏️ Changed ✏️

  • The mixer track mappings now respect the docking side, so it's now possible to automatically link with mixer tracks that were docked to the left or right
  • When endless encoders are assigned to mixer track volumes, they are given access to the full range of volumes (0-125%)
  • Pressing the control switch button on the mixer now shows the selection highlight, so it's less annoying when you forget where it is
  • Manual control assignments now work for the master fader
  • You can now jump through playlist markers by quickly tapping fast-forward/rewind
  • A more detailed error message is given if a device cannot be recognised
  • The upper clip launch button on the M-Audio Hammer 88 Pro now works as a ControlSwitch button
  • The scroll multiplier in the step sequencer is now 8 instead of 4

🔧 Fixed 🔧

  • Fixed a crash when updating the active plugin is paused
  • Fixed pause active button on Launchkey Mk3 49/61/88 devices
  • Fix a bug where misleading error messages were given when a device fails to initialise
  • Fixed a crash when mixer volumes were over 100%
  • Novation Launchkey Mk3 25 and 37 models had non-functional click, quantise and undo buttons

⚙️ Technical changes ⚙️

  • Refactored the ShiftMatcher code to support multiple pages, which should make toggling between different views on smaller controllers more reliable
  • Add color preset definitions to ensure that colors are more consistent between plugins
  • Use __slots__ for Color objects to improve efficiency
  • Update fl_param_checker to have better instructions
  • Add support for a TruePattern event pattern which matches everything
  • Add support for short presses and long presses with buttons
  • Increased strictness of Mypy to help keep things more bug-free
  • Update various project dependencies

v1.1.2 - Minor Bug Fixes

01 Dec 14:19
Compare
Choose a tag to compare

🔧 Fixed 🔧

  • Fix an issue where incorrect values for manual control assignments were sometimes used, leading to crashes and other nasty things

v1.1.1 - Bug Fix

06 Oct 16:14
Compare
Choose a tag to compare

🔧 Fixed 🔧

  • Fixed an issue where Launchkey Mk3 and Mk3 Mini devices weren't initialized correctly

v1.1 - Enahnced Plugin Support and Major Improvements

02 Oct 11:44
Compare
Choose a tag to compare

✨ New ✨

🌶️ Features 🌶️

  • Added support for manual mapping to controls - the script now allows you to link fader, knob, encoder and modulation controls to FL Studio, and can give devices detailed info on these links.
  • Added support for preset navigation on most FL Studio plugins.

🔌 Plugins 🔌

Mappings have been added for:

  • FL Studio Playlist and Piano Roll - support for tool selection.
  • Fruity Slicer and Slicex.
  • Spitfire Audio Originals - Epic Choir.
  • XFER OTT.
  • XFER Serum (apparently the mappings for this are illogical, but I haven't tested it myself).

If you want to see a plugin supported, let me know and we can get it added to the script!

✏️ Changed ✏️

  • Refactored FPC and Spitfire Audio plugins to support more arrangements of drum pads.
  • Changed the color representation in the Channel Rack step sequencer to make it more readable on most devices.

🔧 Fixed 🔧

  • Fixed a bug where devices wouldn't always get the most logical bindings for parameters - fallback control types are now checked in order.
  • Fixed some instances of inaccurate colors in Launchkey devices.

⚙️ Technical Changes ⚙️

  • Added a DrumPadStrategy mapping which allows plugins to bind to drum pad matrices, abstracting away differences in layout.
  • Added a basicPluginBuilder which allows for the creation of extremely simple plugins which can map parameters.
  • Added support for fl_param_checker which can be used to determine indexes for plugin parameters with relative ease.
  • Plugins can now modify the underlying MIDI event if required.
  • Added a ToolSelector control surface which is used to choose tools within FL Studio windows.
  • Added support for different representations of control surface values including value_midi and value_rec.
  • Added a new connected property for ControlShadow objects, which controls whether they will update or not.
  • Removed support for transparent plugins, as they were confusing to work with, and their functionality can be entirely accomplished using the connected property.
  • Added debugger support to DeviceShadow objects, which makes it easy to see how events are being mapped and handled.
  • Renamed final_special_plugins to super_special_plugins as "final" wasn't a clear description for how they behave.
  • Updated all project dependencies.

v1.0.2 - Minor Fixes

02 Sep 04:17
Compare
Choose a tag to compare

🔧 Fixes 🔧

  • Sustain pedal events weren't recognized on Novation Launchkey and SL devices

v1.0.1 - Bug Fixes

27 Jun 06:39
Compare
Choose a tag to compare

✏️ Changes ✏️

  • The undo/redo button can be configured to only undo (rather than acting as a toggle) #46

🔧 Fixes 🔧

  • The script logo was printed twice
  • Using the channel rack when groups were active led to a crash #47

v1.0 - First Major Release

26 Jun 09:02
Compare
Choose a tag to compare

This is the first major release of the script, providing a multitude of new features, as well as a massive tidy-up of existing features. The script is now in a stable state.

To install, refer to the setup instructions.

✨ New ✨

Devices

Added support for the following devices

  • Novation Launchkey Mk3

  • Novation Launchkey Mk3 Mini

  • Korg NanoKontrol

  • Novation SL Mk3 (somewhat)

Plugins

Added support for the following plugins

  • Harmless

  • Transistor Bass

Other Features

  • Clear error messages are given when the script crashes due to poor
    configuration.

  • A better way to manage the script's settings has been added.

  • Support has been added for ModX and ModY controls.

  • Support for relative-value events, such as those from encoders.

  • Support for grayscale colors.

  • More navigation buttons are supported.

  • Thorough documentation has been written.

✏️ Changed ✏️

Mixer

  • Improved handling of mute, solo, select, and arm buttons.

Channel Rack

  • Support for mute and solo of channels.

  • Support for step sequencer.

Playlist

  • Support for mute and solo of tracks.

🔧 Fixed 🔧

  • Improved active plugin tracking.

  • Device ID mapping now works correctly.

  • Device LEDs now turn off properly when switching to an unsupported plugin.

  • Mixer colours are now updated properly.

  • Fixed crash when using a pedal on a sampler channel.

⚙️ Technical Changes ⚙️

  • The entire project was refactored.

  • There are more thorough tests to ensure that the quality of the script is
    maintained. These will be expanded even further in the future.

  • Color, annotation and value management is now done with manager attributes,
    so that multiple inheritance isn't required to show these properties.

  • Control generators have all been converted to control matchers, since they
    basically did the same thing anyway.

  • Colors are now only applied at the end of each tick in order to prevent
    flickering.

  • By default, no exception is raised when a control fails to bind.

  • Added pipeline-style functions for applying properties to controls, even as
    a group, or when controls didn't bind correctly (the properties are applied
    to a dummy control).

  • Plugins can bind a tick callback function rather than having everything be
    ticked manually.

  • More matchers are included: the IndexedMatcher and the
    ShiftedMatcher.

  • Added AbstractMethodError which is raised to indicate to contributors that
    a method should be implemented.

v0.5.2 - Add a workaround to a crash in FL Studio

01 May 16:48
e76995d
Compare
Choose a tag to compare

✨ NEW ✨

  • The profiler now has an option to print the rough execution path of the program which is helpful for finding FL Studio crashes like the one I added a workaround for below.

🛠️ FIXED 🛠️

  • When switching to an effect plugin, there's now a 3 tick delay before it is activated, since sometimes closing a generator plugin causes FL to think that an effect plugin is open which causes a full on FL Studio crash if the script tries to do anything with that plugin.