
How to Make Your Own VST Plugin With AI (No C++ Needed)
How to Make Your Own VST Plugin With AI – I Built a Free Lofi Skate Instrument in One Afternoon
Ok, so what’s up fams? A few weeks ago I was sitting in my studio, flipping through samples on my SP-404, and I had this very specific idea stuck in my head: a VST instrument loaded with real skate sounds, tuned and playable like a keyboard. I’m a JavaScript developer, so yeah, I am a tech person, but I do have Zero C++ experience. And everyone says you need C++ to build VST plugins, so I figured, what if I just ask AI to do the hard parts? That afternoon, I learned how to make your own VST plugin with AI, and it actually worked.
So here is the story: what the idea was, how the sounds were made, where it got messy, and why I think you should try this too. You don’t need to be a developer. You need curiosity and a free afternoon. If you’re curious about other ways AI is changing lofi production, I wrote a piece on AI stem separation for lofi production that pairs really nicely with this one.
Step 1 – The Idea: Why Skate Sounds?
I was always fascinated when I watch skate videos, all the different textures and the skate stuff. It sounds really pleasing when someone makes an ollie or just grinds a bar. I always liked the sound of it. Skate videos and lofi hip-hop also go together for a long time, think of the Nujabes era, so turning those sounds into something you can play on a keyboard felt natural to me.
My goal was to create, and I think that word is important, a standalone plugin that works on any DAW. That is how I built the prompt. Before you start anything, spend five minutes being really specific about what you want, because a clear idea saves you from going in circles with the AI later. Write it down like a brief: what sounds, what keys, what knobs.
Step 2 – Gathering Your Sounds First
Do this before you write a single line of code. Having your actual audio files in hand keeps the whole project concrete, and you are not building a plugin for imaginary sounds.
For me it was pretty raw. It was just my iPhone, and then I cleaned up the sounds in Logic Pro: cutting them and using some plugins to make them sound good, but still a bit raw. And these sounds are really me doing stuff with the skates. It’s often me rolling with it, or me trying to ollie or pop the board. The grinding part is also me, but it’s a bit fake, because I don’t know how to slide. So I was faking that I was grinding and sliding with the board! Short sounds are the easiest to work with in a sampler, so trim each one tight. For more inspiration on hunting for sounds with real character, check out the jazz record digging guide, the mindset of looking for the right texture applies just as much here.

Step 3 – What Is JUCE? (And Why It’s the Right Tool)
JUCE is the C++ framework that a lot of audio plugins are built on. It handles the hard stuff, like the plugin formats, audio buffers, MIDI input and GUI drawing, so you don’t have to write any of that from scratch. It is dual licensed: free under the open-source AGPLv3 terms, or under a commercial license if you want to keep your code closed, so read the license before you sell anything.
Now, JUCE is written in C++, which is not the friendliest language if you’ve never touched it. But for a simple sampler, the actual logic is not that complex. It’s the syntax and the boilerplate that trips people up, and that is exactly what AI is really good at generating. You understand what you want, the AI writes the plumbing.
“You understand what you want. AI writes the C++ plumbing. You stay in charge of the idea.”
Download JUCE and install the Projucer app that comes with it. Projucer is a project setup tool, it generates your folder structure and build files so you don’t have to configure any of that manually. This juce framework lofi plugin tutorial path is a really accessible way into audio plugins without a DSP engineering degree.
Step 4 – Setting Up Your AI Coding Environment
This is where things get really fun. I used Claude Code in my terminal, because I’ve been working a lot with terminals and I’m just more comfortable there. But I do respect other things like VS Code or Cursor, that way of working is fine too. Pick the place where you feel at home.
Claude Code is one of the best, but I’m sure other ones can get pretty good results too, Codex and others. What matters more is that you describe your plugin clearly and fix things step by step. The code you get will not be perfect, but it will be working code you can iterate on.
How to Prompt AI for VST Code (What Actually Works)
The key to this whole ai vibe coding audio plugin beginner workflow is prompt quality. Vague prompts give you vague code. A few things that help:
- Mention JUCE and the version you installed
- Say which formats you want, VST3 and AU for example, and that it should be a standalone plugin that works on any DAW
- Describe your plugin in one sentence before asking for code: “This is a simple sampler that plays one of six WAV files based on incoming MIDI note”
- Ask for code in small chunks, one function at a time, not the whole plugin at once
- When something breaks, paste the exact error message into the chat and ask why it happens
And be patient with yourself here. The first hour felt chaotic for me too. By hour two I had something making sound. That’s a completely normal arc for this kind of build.
Step 5 – Building the Core Sampler Logic
In Projucer, create a new “Audio Plugin” project, choose your formats and set the plugin type to “Instrument”. This generates a folder with a PluginProcessor.cpp and PluginEditor.cpp, and those two files are basically your whole plugin.
Then describe to the AI what you need in PluginProcessor.cpp: one audio buffer per sound, a function that loads the WAV files on startup, and a processBlock function that triggers the right buffer when a MIDI note comes in. The AI will generate this. Read through it. You don’t need to understand every line, but make sure the note-to-sound mapping makes sense to you.
Embedding Your Sounds Into the Plugin Binary
Here’s a thing that tripped me up: you want a plugin that works on any DAW, and on any computer. If you just reference WAV file paths in your code, the plugin will only work on your own machine. To make it shareable you need to embed the audio data directly into the plugin. JUCE has a resource system for this called BinaryData, which you can switch on from Projucer by adding your files as binary resources.
JUCE then compiles your files into a BinaryData namespace, and in your code you load from there instead of from a file path. Ask the AI to update your loading code to use BinaryData, it knows this pattern well. Worth getting right, because it is what makes the difference between a plugin that works for you and a free lofi VST instrument you can share with the community.

Step 6 – Building a Simple GUI
The GUI lives in PluginEditor.cpp. For a first plugin, keep it really minimal: a dark background, a few pads labeled with the sound names, and one knob. The AI can generate the layout code, so describe it like you’d describe a design to a friend: “dark grey background, six rectangle buttons in a row, each labeled with the sound name, one rotary knob below them for pitch.”
Stripped-back is a good direction here. No gradients, no fake wood panels, just clean, dark and functional. It’s the kind of honest, no-frills design you can see in the Freeze95 plugin. Sometimes the best plugin GUIs just get out of the way.
One small tip: make the plugin window a fixed size. Resizable windows add a lot of complexity for little benefit on a first build. Tell the AI the exact pixel size you want and it will handle that in the editor constructor.
Step 7 – Compiling and Testing in Logic Pro
On Mac, JUCE builds through Xcode. Open the generated .xcodeproj file, select the AU target and hit Build. The first build will very likely fail with errors, and that’s totally normal, don’t panic. Copy the error messages into your AI chat and ask for fixes one at a time.
Logic Pro only loads Audio Units, so the AU version is the one you want there. Once it builds, the AU component normally lands in ~/Library/Audio/Plug-Ins/Components/. Open Logic Pro, go to a software instrument track and look for your plugin under Audio Units. Hit a MIDI key and, if everything went right, you’ll hear a skateboard. That first moment is really exciting!
The mistake I made was messing up the notes on the keyboard. It was hard with the octaves to get it right, like getting the C to work visually. So aim for something coherent across the different octaves and different kinds of sound, like samples on the side, and maybe some transition things that you think would be useful. For more on building layered warmth around sounds like these, the spring reverb bedroom pop guide has some really good ideas.
Step 8 – Adding the Lofi Character
What goes inside the plugin is basic, I think. It’s just EQ, compression, sometimes delay and things like that, modulations. A mix of all of these. Nothing fancy, and that is fine for a first build, the raw character of the recordings does a lot of the work.
If you prefer to keep a plugin clean and dry, you can also leave the processing to your DAW, where you can automate it and swap it out. Everyone’s tape saturation chain is different, that’s the whole point of lofi production. If you’re still figuring out your own workflow, the lofi producer workflow setup guide has some really unconventional ideas worth stealing.
“Keep on making better, keep on finding new features that you think people will like.”

Step 9 – Packaging and Sharing It Free
Once you’re happy with the plugin, build the Release version (not Debug) in Xcode, it’s smaller and faster. Zip your plugin files together with a simple README text file that explains the MIDI note mapping and how to install. That’s your distribution package.
When you’re ready to share it, Ko-fi and Gumroad (set to $0) both can host a free download. Putting a tool out there is different from releasing music, it’s like you contributed something to the community, not just a track.
I see Lofi Skate as my first one, so I don’t want it to be perfect. It’s pretty raw and maybe rough, so it’s a good one that I will keep, and yeah, maybe make a bit better. You can download Lofi Skate free (Mac and Windows) and see what an afternoon with an AI pair-programmer can turn into. If you’d rather start from chords than code, our Lofi Chord Voicings MIDI pack is the other tool we make for producers.
The Comparison: AI-Assisted vs Traditional VST Development
Just to give you a clear picture of what you’re getting into, here’s how the AI-assisted approach stacks up against the traditional route. Times are rough guesses, they depend a lot on you:
| Approach | Time to First Sound | C++ Knowledge Needed | Best For |
|---|---|---|---|
| Traditional JUCE (no AI) | Days to weeks | Solid intermediate level | Complex DSP plugins |
| AI vibe coding (Claude Code, Codex…) | A few hours | Near zero | Samplers, simple instruments |
| No-code plugin builders | Short | None | Very basic effects only |
| Hiring a developer | Weeks + budget | None (you direct) | Commercial-grade plugins |
Do you need to learn C++? You don’t want to learn it, I think. It’s probably a complicated language. If you’re passionate, sure, go for it. But right now you don’t need to, the AI is doing everything. What you will need to do is fine-tune your prompt, and then it’s always the same iteration: keep making it better, keep finding new features that you think people will like.
Troubleshooting: When Things Go Wrong
A few things that will probably happen and how to handle them:
- Logic Pro doesn’t see the plugin: make sure you built the AU version, check it landed in the Components folder, then rescan plugins in Logic.
- Sounds play at wrong pitch: check the sample rate of your WAV files and keep it consistent with what your code expects.
- Plugin crashes on load: very often it’s a BinaryData reference that doesn’t match the actual filename. Check spelling exactly, it’s case sensitive.
- Build fails with a “JUCE_MODAL_LOOPS_PERMITTED” error: some code is using modal file dialogs, which are not safe in plugins. Paste the error to the AI and ask it to switch to the asynchronous version.
- No sound on MIDI input: make sure your plugin is set as an “Instrument” type (not “Effect”) in Projucer. A classic first-timer mistake.
BE BRAVE my friend! Every one of these errors has a solution and the AI will know most of them. The frustrating moments are short, and the payoff is real.
What I’d Do Differently Next Time
For me it is still a work in progress, and it should keep evolving and getting better over time. For the future ones I will have this one as a comparison, and hopefully I’ll make better and better ones each time. A few general tips that save time: set up the BinaryData system before writing any audio loading code, because retrofitting it later is annoying. Test in your DAW after every small change, not after big batches of code. And keep a running chat with the AI in one long thread rather than starting fresh, it gives better suggestions when it knows the full picture.
That’s the real gift of this workflow: you learn by doing, not by studying. Which, if you think about it, is exactly how most of us learned to make beats in the first place. For more on building your skills that way, the bedroom producer tips for after-work productivity piece has a lot of good energy around learning in small sessions.
Build your own version with the steps above, the result is yours. If you do, please share it, the free vintage piano plugins post shows there’s a real appetite in this community for homemade tools. We don’t always have to wait for a company to build what we need. 😉
/Edwin
Frequently Asked Questions
What is the easiest way to make your own VST plugin with AI if you have no coding experience?
Use the JUCE framework together with an AI coding agent like Claude Code, Codex or an AI editor such as Cursor. JUCE handles the audio plugin architecture, and you use AI to generate the C++ code from plain-language descriptions of what you want. A simple sampler instrument is a realistic first target, even if you’ve never written C++ before.
Do I need to know C++ to build a VST plugin with JUCE and AI?
Not for a simple instrument plugin. You don’t need to write C++ from scratch, the AI handles the syntax and boilerplate. What you need is a clear idea of what your plugin should do, and the patience to iterate through a few rounds of error-fixing. If you get passionate about it, you can learn C++ later.
What are the best free lofi VST instruments in 2026 made by the community?
There are a lot of free community-made lofi instruments out there, and the list changes every month. Our own Lofi Skate is one you can grab for free, and the free vintage piano plugins post is a good place to keep digging.
How long does it actually take to build a VST plugin with AI for the first time?
For a simple sampler with a handful of sounds and a basic GUI, plan for an afternoon. The first hour can feel chaotic, and by hour two you can have something making sound. The rest is debugging compile errors and testing in your DAW. Each plugin after the first one goes faster.
Can I use a VST plugin I built myself in Logic Pro?
Yes, as long as you build the Audio Unit (AU) version, because Logic Pro only loads AU plugins, not VST3. JUCE can build AU alongside VST3 on Mac. After a plugin rescan, your plugin shows up in Logic like any commercial one.








