surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.08k stars 394 forks source link

Surge <-> NKS Integration posted by aMUSEd on KVR-forum - discuss! #185

Closed esaruoho closed 5 years ago

esaruoho commented 5 years ago

On kvr

Based on the 64bit Mac VST build I have made a NKS version 
for use with Native Instruments hardware and together with 
a friend over on the NI user forum (Christos Adamos) we 
have converted and tagged the entire factory bank and all 
the third party ones available from the Github site. Christos 
also generated audio previews for each patch. So now 
Surge is pretty much fully 'NKS Ready' :)

The Dropbox link includes all the required user files, audio 
previews, NKS database integration files and image 
thumbnails for the Maschine/Keyboard screen browsers.

https://www.dropbox.com/sh/2gm4jtv6i101bbj/AAB__9m2i81cZIIPVPKX7axOa?dl=0

General setup and install info for NKS integration is here:

https://www.dropbox.com/s/hpb5s3g52kjyeil/Info.txt?dl=0

btw it works with the 64bit Windows VST2 version too.
esaruoho commented 5 years ago

69556f76-621a-4839-a45f-3e4fafa6280d

baconpaul commented 5 years ago

Is there anything we would do as a result of this ticket @esaruoho ?

esaruoho commented 5 years ago

@amused you there?

esaruoho commented 5 years ago

more pastes

NKS isn't a plugin format in its own right, it uses the VST2 but 
provides a means of integrating it tightly into NI keyboards and 
Maschine. So there are no binaries here, just support files 
(database entries, images, .json scripts, .nksf format presets and 
previews). 

If and when other issues are fixed hopefully those changes will 
also improve the NKS version, provided no one makes fundamental
changes to the architecture that alter automation IDs.
As long as from the hosts POV it still appears as the same VST 
and the automation IDs are all in the same order it should retain
 param mappings and won't need redoing each time (in other 
words pretty much the same constraints that would affect project 
recall in hosts). Obviously if any new automatable features get
 added then I might have to remake the template but I don't
 expect that to be happening in the near future at least. Things 
like MPE and resizing should make no difference.

from https://www.kvraudio.com/forum/viewtopic.php?p=7268811#p7268811

esaruoho commented 5 years ago
Not sure how NKS is packaged - this is really user 
developed unofficial NKS support, in most cases 
when a plugin developer becomes part of NI's NKS 
developer ecosystem they get access to the full SDK, 
but us users have managed to figure out how 95% of it 
works ourselves, we don't have the official support 
from NI though.
esaruoho commented 5 years ago
As I said above several times now this is not a 
seperate coded version of the plugin, just some 
support files adding integration for NI hardware. 
It would be nice if it was integrated into the 
installers at some point but I have no idea how 
you would do that. NI provide those tools to 
official NKS partners via a SDK but user 
developed NKS versions have tended to be 
just created manually (often as in this case 
collaboratively between members of the NI 
user forums), no coding, no command lines,
 just saving files, taking screenshots, creating 
database entries. I have also said I have no 
problem with a link going on Github to the 
NKS files, but I'm not on Github myself and 
wouldn't know how to create a command-line convertor.
esaruoho commented 5 years ago

here are the links that aMUSEd knocked together on KVR-audio forums:

  1. https://www.dropbox.com/sh/2gm4jtv6i101bbj/AAB__9m2i81cZIIPVPKX7axOa?dl=0
  2. https://www.dropbox.com/s/hpb5s3g52kjyeil/Info.txt?dl=0

info.txt attached: Info.txt

Surge NKS thing is 87mb so can't attach it here. ouch!

baconpaul commented 5 years ago

OK so this looks like a collection of ancillary assets to make the plugin work well on a particular bit of hardware that includes images and wav files. I don't think we want to check those into GitHub - I certainly don't and it seems the original user doesn't either.

My gut would be

1: Make sure the user includes the GPL 2: Ask the user to have regular pulls of the built AU and 3: Add a link to user documentation somewhere with a way to reach the user who built this and download, 4: then close this issue

but I'm glad to hear other points of view

cyanit commented 5 years ago

OK so this looks like a collection of ancillary assets to make the plugin work well on a particular bit of hardware that includes images and wav files. I don't think we want to check those into GitHub - I certainly don't and it seems the original user doesn't either.

My gut would be

1: Make sure the user includes the GPL 2: Ask the user to have regular pulls of the built AU and 3: Add a link to user documentation somewhere with a way to reach the user who built this and download, 4: then close this issue

but I'm glad to hear other points of view

IMO we should make a Wiki page for this stuff. In all respect to what he did, the info.txt file is basically written chaos. Im currently reformatting it to be readable markdown do understand it.

cyanit commented 5 years ago

since I have not the permissions to edit the wiki (and you can't make a pull request for it -_-), here's what I did: https://github.com/cyanit/surge/wiki/Surge-and-NKS

baconpaul commented 5 years ago

I didn't even know GitHub had a wiki!

I'd approve a PR for doc/SurgeAndNKS.md or whatever if you want to go that route and just make a markdown file in the doc directory.

There's another issue for what to do with doc that @esaruoho is looking at.

baconpaul commented 5 years ago

I wonder if @mkruselj has any thoughts here?

mkruselj commented 5 years ago

Usually NKS assets are supposed to be distributed along with the plugin, installed to required location(s) via the installer (and as such should be checked in the repo). I would love it to see Surge as an officially NKS supported plugin, which means it would be listed in Komplete Kontrol/Maschine in factory library section, rather than user library. This would alleviate the need for user digging through folders to install the assets, plus there are things that can be implemented plugin-side only, for which you would need NKS SDK.

I can ask around with NI peeps about getting you guys an SDK, AFAIK it's not a paid affair. If this goes through, Surge might be the first free plugin with in-depth NKS support, which would be both interesting and cool.

The only thing to note here is that NKS has no bearing on Linux platform, since Komplete Kontrol and Maschine are Win/macOS only.

baconpaul commented 5 years ago

Interesting and. Thank you

Before you ask no do you actually know how to use or test the plug-in api? I on!y ask because I don't and I don't want to bother ni if no one here can actually use the tool of course!

mkruselj commented 5 years ago

I will have to ask them about all that, since I've only developed Kontakt libraries with NKS integration, I don't have intimate knowledge of how is NKS integrated or tested when developing a plugin.

mkruselj commented 5 years ago

Didn't get much info so far, but one glaring thing that would need to be sorted out is that there has to be some sort of entity to which NI would sign a contract to supply the NKS SDK. So that entity would be "plugin developer", which is a bit tricky for open source software, right? I mean how would you prevent anyone from forking this repo and taking the NKS SDK along?

I am in Berlin for the whole next week so I can have more direct talks to NKS partnering team over a lunch or something. Will keep y'all posted.

Bounga commented 3 years ago

Wow! It would be so cool to have a NI integration. As a komplete (kontrol) / Maschine user I'd love to be able to manage Surge right from my keyboard / maschine. Is there any progress or official documentation?

mkruselj commented 3 years ago

There's no progress. Since Surge Synth Team is not an actual legal entity, we cannot officially integrate NKS into Surge (NKS SDK is not open source), unfortunately. I am still going to see if I can make NI change their mind, especially since I actually work for them, but this is not a guarantee of success.

At any rate, anything aMUSEd did is as far as it gets for the time being.

Bounga commented 3 years ago

@mkruselj Thanks for your quick reply and many thanks for your efforts at NI.

arnthorsnaer commented 2 years ago

I was just building VST version of Surge for use with Komplete Kontrol and was mentally preparing myself for the effort of creating the required files and saving all the presets for the NKS support. Just wanted to add to this thread that I'm very happy to have found this thread with the NKS support by @aMUSEd

I also appreciate the effort by @mkruselj in helping out here.

Native Instruments should try to find a way of enabling open source to participate in NKS. In theory, this could be achieved by having all registered open source instruments using NI or a placeholder entity in place of a legal entity. At the minimum it would be great to get a statement from Native Instruments about this. Perhaps if there is some forum for open source VST developers this can be brought to NI through those channels, that way it would not just be a single developer.

Just thinking out loud here.

mkruselj commented 2 years ago

From my discussions with relevant persons at NI, enabling NKS for open source projects is not among their current priorities. Unfortunately.

TBH I am not sure if we will ever see the needle shifting from their side... One can only hope.