What`s required to create VST host and sequencer?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

I`d be interested in tips and hints for building a simple VST host and sequencer.


What I`d like to achieve in a first step is creating a simple VST3-compatible host that can receive midi from a keyboard and output the audio to the OS.

Next is a simple midi-sequencer to add.

What do I need to look into and learn to get this done? That`s the most important question.

I wonder if studying the code of open source DAW projects would make sense. I don`t want to see poorly coded applications though.

What I am also interested in is what I have to consider to make the whole thing low latency.

I have experience in with C and C++. I still have to learn a lot but I am not afraid of real programming languages. No Java, no Max.
I am on Mac OS. I don`t want to use OS-specific APIs though. There should be a cross platform perspective.
I am generally willing to use APIs. But I would prefer only to do this where necessary. I do not feel the need to re-invent the wheel just so to feed the illusion of being a genius, but I don´t want to take too many shortcuts.
Eventually, I have to get away from most APIs. In the early steps however, I am willing to utilize some to make progress. It`s a two edged sword. As many APIs as necessary, as few as possible.
Last edited by blue monk on Mon Jul 27, 2015 3:38 am, edited 2 times in total.

Post

The Juce library has some support for hosting VSTs, maybe you should look into that.

Post

I am aware of Juce.

What I am most interested in at this point is to find out what exactly I need to know to get the first steps done and any information that helps me getting an overview of all the parts I have to complete to have a basic DAW running, so I have a road map.

Post

blue monk wrote: What I am most interested in at this point is to find out what exactly I need to know to get the first steps done and any information that helps me getting an overview of all the parts I have to complete to have a basic DAW running, so I have a road map.
You need to figure out how to read MIDI input, how to output audio, how to load a plugin, how to send the MIDI to the plugin and the audio from the plugin to the device and how to glue it all together. Then for a MIDI sequencer you need to find a way to record, playback and/or manipulate a time-stamped list of MIDI events.

But since you probably already knew all this, you already have a road map and you just need to start working on it, one piece at a time, finding the specific solutions that work for your requirements. Then as you discover new requirements, you can add them to your road map and keep working.

If you have no prior experience with any of this, I suggest you start by writing some test applications first. Write a piece of code that reads and parses MIDI and prints it to the screen. Write a program that plays back some audio file and/or sine-waves generated on the fly. Then write a program that combines the two and allows you to play sine-waves from a MIDI keyboard. Then figure out how to replace your sine-wave generator with a plugin instead. Once you reach that point, you will have a much better idea of what it takes to realise your original vision.

Depending on your prior programming experience, each one of the above might take you hours, days or weeks, but the key is to just start working and not worry too much about the big picture until you have a better idea of what you need to put it all together.

Post

mystran wrote: ...
you already have a road map and you just need to start working on it, one piece at a time
...
Depending on your prior programming experience, each one of the above might take you hours, days or weeks, but the key is to just start working and not worry too much about the big picture until you have a better idea of what you need to put it all together.
Sounds plausible. I guess further discussion before having taken action would be just a distraction then.
I´ll take a mind map program to make a rough plan and then see how far I can go with the steam I got :)
Thanks mystran .

Post

It might be worth looking at the code used in the Plugin Host Demo included with JUCE, especially if you're going to use JUCE. It doesn't have a sequence or anything, but the way it handles plugins and routing might interest you.

Post

It might be worth looking at the code used in the Plugin Host Demo included with JUCE, especially if you're going to use JUCE. It doesn't have a sequence or anything, but the way it handles plugins and routing might interest you.

Post Reply

Return to “DSP and Plugin Development”