Juce and Kontakt


I am pretty new to Juce :)

I have a bunch of MIDI files to render with the same Kontakt patch. I would like to automatic render these files with command line, without assigning manually the kontakt patch to the midi track. I want to write my own program "MyProgram" and use it as follows : For example

MyProgram.exe -MIDI myMidiFile.mid -kontakt myPatch.nki -out myWav.wav

which will render the MIDI file as Wav file with the specific Kontakt Patch I assigned.

Can Juce help to achieve that?


We don't have anything to actually generate kontakt format patches, but it can certainly help with a lot of the other stuff you'll need to do.


I don't need to generate kontakt patch, I need to render MIDI using an already existing Kontakt patch ;)

What would be the way to go in your opinion? I mean, the basic steps ... That I have something to start with.

Sorry, I meant it has nothing to render a kontakt patch either. Presumably you'll want to host Kontakt as a VST and run audio/midi through it. You can do that, but it's not something I can describe how to do without spending hours, I'm afraid. Check out the plugin host demo to start with perhaps..

Thanks for your help its already a starting point ;)

I will have a look at it.


I am afraid Kontakt doesn't have an API to load nki files (this wouldn't be covered by the standard plugin APIs anyway), the best you can probably do is that you can instantiate Kontakt and load an existing VST preset patch. It is possible Kontakt doesn't even support the VST presets system, though...

Hello Xenakios,

Thanks for your help. So in your opinion, its not feasible?

There is no API you are right but Kontakt runs as a VST instrument. But your point is that it might use other standards for eveything right? (like loading patches, etc ...)

@jules : what is your opinion on that?

@jules : what is your opinion on that?

Well yes - the only way you can do this is by creating a host that loads Kontakt and then making it render the patches. And that means controlling it via the normal plugin API calls. This is all a total PITA but at least if you're only worrying about compatibility with one plugin then it's easy to test.