Prev Previous Post   Next Post Next
Old 06-04-2016, 02:02 PM   #1
Human being with feelings
Lokasenna's Avatar
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
Default Lokasenna's GUI library for Lua v2

V3 update, February 2020 - v3 is now available on ReaPack! I'll make a separate thread for it when time allows, but in the meantime you can have a look at

GUIs. We all need them, and they're a bit of a pain to make in ReaScript. Why not let someone else do the hard work so you can get back to actually making your script do something cool?


- Install the Lokasenna's GUI library v2 for Lua package
- In Reaper's action list, run Set Lokasenna_GUI v2 library path.lua

Any scripts requiring this library should now be able to find it.

- Download the files here (including any subfolders), making sure to keep the same folder structure wherever you put them on your hard drive
- Find and run the install script, Set Lokasenna_GUI v2 library path.lua

A second package, Lokasenna's GUI library v2 for Lua (developer tools), provides example scripts, templates, and documentation.

All of my work is done at Lokasenna_GUI on Github. Everything there is to be considered unstable, and probably not suitable for release, but any new feature updates or class additions will show up there. Contributions, bug reports, etc are all welcome.


Reasons why you should use this sexy beast include:

- It comes with a GUI builder! (Experimental, see the Developer Tools package)

- Very little coding required on your part. A simple GUI might need only a dozen lines of code compared to the hundreds (or thousands, for some of my scripts) you'd have to write if you did it yourself.

- Global font and color settings, so you can change the overall look to suit your fancy.

- Layer visibility management, so you can have multiple sets of controls or dialog boxes come and go as needed.

- Graphics use blitting whenever possible, keeping the CPU usage low without any worry on your part.

- Hooks to run your own functions as part of the GUI's updating loop. You could relabel the options around a knob if you wanted, or have a slider and knob match the selected track's volume/pan... etc.

- Built-in crash reporting, providing more detailed error messages than Reaper does by itself.

- Can be told to exit from your own code, and to run a function when it does. For instance, "save all the current settings, run this action, and quit".

- Numerous helper functions in addition to the GUI code, simplifying a number of things that might be annoying to code on your own every time.

- Modular design, allowing you to use as much, or as little, of my own code as you want. You can also write your own classes if you'd prefer.


July 8/18: The "Lokasenna GUI v2.x.x" watermark now reads its version from ReaPack so I don't have to remember to update it.

June 27/18: First stable release, available on ReaPack. It will only be updated directly with bug fixes - any feature updates and new classes will live on the project repository until I feel like they're safe to move over.

June 6/18: Added support for creating elements with keyed tables rather than a series of function arguments, and an example script demonstrating it.

June 2/18: New class - Window. A number of under-the-hood improvements and new Core functions. Better crash reporting, and handling of Reaper's "restricted permissions" mode.

May 10/18: Fixed some weirdness with how Knob and Slider return their values. This update changes the parameters for both classes and will break any scripts that use them. My apologies.

April 29/18: Added Menubar class.

April 25/18: Added a basic crash reporter, moved the project to my own repository on Github.

April 22/18: Went through all of the classes/scripts and did some major tidying, as well as breaking most of the longer functions into smaller chunks.

April 8/18: Added Listbox and TextEditor classes. There were also a number of bug fixes and efficiency improvements back in... February? I forget.

September 26/17: Bug fix - the Knob class was ignoring min/max values when drawing values around the knob.

August 19/17: Bug fixes related to macOS using decimal values for the mousewheel, and scrolling the mousewheel on a Menubox with no options in it.

July 31/17: A few bug fixes.

June 9/17: First proper release. Classes are modular, tons of new features, code is much more efficient.

June 13/16: Rewrote the library to be copy/paste-able rather than distributing the file separately.
I'm no longer using Reaper or working on scripts for it. Sorry. :(
Default 5.0 Nitpicky Edition / GUI library for Lua scripts / Theory Helper / Radial Menu / Donate

Last edited by Lokasenna; 02-09-2020 at 03:25 PM.
Lokasenna is offline   Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -7. The time now is 10:51 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.