Hello Everyone. In today’s blog post, I am going to showcase a VST and AU plugin I have written to control the Boss VF-1 hardware unit. I plan to release this in the near future, along with my TC Electronics M300 plugin and my Alesis MidiVerb II plugin.

First off, I am not connected with the companies mentioned above in any way, I am just a big fan of their work and vintage processors which have tons of character.

There are many debates over software versus hardware, in the box, out the box and hybrid. One of the most interesting takes on the debate is that these hardware boxes are like multi-effect DSP units. For example, Roland’s own plugin and algorithms in hardware form. As a result, we have unique spin on effects that were very carefully crafted to fit small chips in innovative ways leading to some classic sounds.

The downside is that in modern times, I am used to software interfaces, plugins. Fast an easy to get what you want, shaping sound with ease. I also don’t like having to keep bending over to dial in settings in my tiny hybrid set-up.

This is where the obsolete CRTLR project steps in. CTRLR allows you to build a GUI to interface with your box and best of all, you can program the plugin to taste through LUA.

For example, when using hardware, I hate having to remember which preset was used or what was dialled in. Using CTRLR, you can save the preset in your DAW where it automatically loads up when you load the project. You can live control the parameters of your hardware and enable them to be automated in Logic.

The downsides are that you have to learn to program LUA and work out how to make the plugins work for you. Well, after several month of scripting and prototypes, I now have a good understanding of how to do this and I’m close to my first release.

Plugin

Version 1 (Alpha)

I have an old intel Mac and therefore test in the following environment:
• Mac Pro 2010
• MacOS 10.14
• Logic Pro 10.5, Audio Unit (native), VST (via BlueCat)

I will also test in Ableton via BlueCat.

v1 plugin combines a sysex file (with algorithms loaded in) and VST/Audio Unit.

Features:
• Preset data saved and loads within and from DAW.
• View all parameters for each Algorithm in one screen.
• On/off switch for effects.
• Realtime operation.

Free.

Why free? well – starting out can be hard and we all enjoy good music. By making them accessible to a modern workflow, it is also extends the life of these boxes which is great for the environment and but also because they sound great and have some unique fx and approaches. RSS is a good example. Not easy to pull off in a track but when it works, it can be really great. RSS is the psychoacoustic surround sound effect (in stereo) with left/right & up/down pan.

Writing these plugins take time. As you can see from the progress updates below. If you use the plugin and like the plugin, please feel free to send a gift, link/tweet (X), share links to my music or something else that can help. If you have old hardware that you are not using, please consider me. It is appreciated and it gives me chance to build more panels.

Finally: Please note that if you use these plugins, it is purely at your own risk. I write them for myself to enhance my music making experience and I update them when I want a new feature. I only test them on my own equipment (and a few of my musician friends).

For the next update (v2) will aim to include two way communication enhancements.
• Algorithm detection instead of sysex presets.
• Faders and dials load data from the inbuilt presets.
• Data flows – diagrams of how the FX are set up in the algorithm.
• More accurate LCD panel/preset renaming.

However this will be after I release the TC M300, Alesis MidiVerb II and finish work on the Boss SE-70.

[link] Coming soon…

If you like this software, use it regularly and want to support me in my future endeavours, please feel free to see me a gift at buymeacoffee.com by clicking here:

If you find a bug or have some general feedback, you are welcome to let me know by adding a comment to this page (link).

9 thoughts on “Boss VF-1 CTRLR AU/VST Plugin

  1. monophreak says:

    Progress update: 1st January 2024 started the VF-1 control panel project. Create the AU/VST frame, background, mapped out locations and reviewed the amount of effects I could fit on the screen. Created overall structure.

    Progress update: 8th January 2024, wrote the global parameter for settings such as BPM, output.

    Progress update: 9th January 2024, wrote the preset system for User 1, User 2, Factory 1, Factory 2.

    Progress update: 11th January 2024, created the combo control bank to call the different algorithms, mapped into the panel.

    Progress update: 12th January 2024, updated the panel graphic design.

    Progress update: 13th – 31st January 2024, wrote faders and dials to control several of the effects inside the algorithms.

    Progress update: 2nd February 2024, exported the plugin and tested in Logic.

    Progress update: 3rd February 2024, decided on an overhaul. Ditched the tab system. I found artefacts when saving and reloading the CTRLR project. After Googling, panels turned out to be the perfect option. Mapped out panels and wrote LUA script to control panels.

    Progress update: 7th February 2024, ported the current set of algorithms to the new plugin.

    Progress update: 8th February 2024, wrote LUA to switch off send to midi panel properties so that only the current algorithm/preset will transmit data to the VF-1.

    Progress update: 12th February 2024, wrote LUA scripts to control buttons.

    Progress update: 20th February 2024, worked out all of the sysex code to control every parameter in every effect, for every algorithm in CTRLR sysex notation, ms ls z5 format.

    Progress update: 1st March 2024, started adding in new algorithms. Completed basic testing.

    Progress update: 3rd March 2024, made slight changes to the size of the plugin and tested on a 2017 Mac Pro laptop.

    Progress update: 6th March 2024, sent to friends for testing/feedback.

    Progress update: 13th March 2024, wrote more algorithms.

    Progress update: 16th March 2024, wrote more algorithms.

    Progress update: Paused project and moved onto SE-70. I paused the project to check the viability of a SE-70 CTRLR panel. I want hardware I can use in a similar fashion to a VST so needed to know if it was worth keeping or re-selling. I found the SE-70 a tough nut to crack but I like the challenge. After making great progress, I moved onto the SE-70 project for a short while but will come back to this one shortly.

    Reply
  2. monophreak says:

    Progress update: 28th March 2024, after all the work on the SE-70 panel, I realise there is a better way for the VF-1 CTRLR plugin to run. Therefore, I am going to finish off v1 (which is still really powerful) and then update it to v2 with better two way communication.

    Reply
  3. monophreak says:

    Progress update: 29th March 2024, reached a programming decision point. VF-1 often has a combination of rate and BPM in the same system exclusive code. This can be separated out into two dials/faders for ease of use. Doing this leads to the potential of two sysex presets being sent to the VF-1 when a DAW reloads. I need to write a script to turn off one of the split values while the other is active and possibly loop through this on start-up so values are detected before they are sent to the DAW. My plan is to add an extra value for ‘off’ along the lines of: Called when modulator value changes, run script, IF value = off then disable midi send to the DAW for fader, else keep the midi send active. Technically, if this runs within the panel, it should actually save within the preset. If this is the case, I will not need to loop through these values on start-up. I will then add in these conditions for V2 plugin so that upon algorithm detection, it switches off the unused fader. This will work more efficiently in v2 than v1. For v1, upon preset load – the algorithm variation (such as 1/8, 1/4, 1/2 bar variation) will initially load in for a preview but will need to be manually selected in the GUI to form the final preset. In v2, it will autodetect and switch off the unused fader/dial. The same script will be used across both versions.

    As an alternative, I could add a script to toggle between the two faders/dials. This will work if I can wildcard ‘%’/’*’ on part of the string to match the associated modulator. For example, ‘GuitarMulti1_Mod_PH_%’. The advantage of the ‘off’ is that it is a sysex within range +1 for off and saves space but the button is clearer. I will try out both and make a decision.

    Reply
  4. monophreak says:

    Progress update: 30th March 2024, successfully written two types of script. A toggle switch to load either the BPM dial or the Hz/Rate fader and a script (2) to de-activate BPM when the fader is active. When the fader is at full height, an extra ‘Off’ option has been added to the very top of the fader and this deactivates the fader, activating the BPM dial. Script 2 is a little less clear although highly function but crucially, it allows more space on a screen and therefore I am going to go with this one for now. I will think about dimming or hiding the dial when the fader is active.

    Reply
  5. monophreak says:

    Progress update: 30th March 2024, tested both scripts and both successful. Scripts need to be written to scale up accordingly. For this, the panel(v1)/algorithm(v2) needs to be detected and then all specific modulators need to be identified on the layer panel so that the enable/disable functionality applied to the rate/BPM split sysex. In LUA, tables are used instead of arrays and I need build a table for name, table for value and then key pair them to hopefully feed into my IF conditions.

    Reply
  6. monophreak says:

    Progress update: 31st March 2024, worked out the most efficient way to detect the algorithm. Well, that one was a toughie. v1 was more complicated due to the algorithm being connected to the preset. v2 will be 10x easier to write because I intend to get the VF-1 to tell me what algorithm is loaded. I noted a memory efficient solution for when I get to this stage. As of tomorrow, I should hopefully finish off the rest of the code for the rate/bpm activation.

    Reply
  7. monophreak says:

    Progress update: 1st April 2024, another real tough day getting my head around LUA. Thankfully, I managed to achieve my goal thanks to one of my oldest and best friend’s guidance and support. Essentially, the problem involved using LUA to build the equivalent of a multidimensional, key paired array but using LUA tables instead. The problem was compounded by the LUA console only outputting the last entry in a variable via a FOR loop, despite processing all of the data (which could be viewed in a table with correct record count). Translating a concept to a different language can be complicated sometimes. I wanted to achieve scalability. One script to cover a function used repeatedly. Anyhow, the main concept is ready and I just need a few more conditions before I start applying this script to the entire plugin.

    Reply
  8. monophreak says:

    Progress update: 1st April 2024, I should add that today is an important milestone in that it is the day where all of the key functional components of the panel have been written for v1. From this stage, it will be a case of finishing off adding in the algorithms.

    I have a big music project this month and will have to pause the project until next month. I am tempted to bounce out what I have so far (in VST/aU form) as a partially working demo/taster or whether I should wait and release the full project at a later date. If anyone is interested in a taster, please let me know in the bug report/feedback page.

    https://monophreak.com/boss-vf-1-ctrlr-au-vst-plugin-bug-report-feedback/

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *