-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Synths from edisyn - easy to integrate? #400
Comments
Well, not easy in that you need to read and understand the source code, and it sometimes is a lot of code of which we only need a little bit for the librarian (Waldorf M adaptation in Python is 130 lines of code while the Java file there is 2667 lines for the full editor. But the good news is that the hard work of digging up the Sysex documentation etc has been done, so this information can easily be taken from other source code implementations. So if you want one from the list of Edisyn, that'll be straightforward. I'm just on a bit of a sprint because people asked me for so many, I did alone in the last week:
it takes me by now between 45 and 90 minutes, each, if docs and sample data is available! |
Still, the list of synths supported by Edisyn that are not yet in KnobKraft is long:
I still like the KnobKraft concept better - it is the "better" SoundDiver: All information about one synth is contained behind a standard interface in one single file of Python. That file does not depend on any code (a few Python helpers, ok) from KnobKraft itself, so you could use these adaptations as synth driver files for any application, really. In Edisyn, the UI for the editor and the data format are more tightly coupled, and it is hard to understand the data format from the source code (just did it with the Pulse). Maybe some day the AI will be good enough to read the source and then just produce the correct KnobKraft adaptation. I actually need to give this a try! |
We've come a long way. I gave DeepSeek my E-mu Morpheus code and the Proteus java code from Edisyn, and apart from an off by one error it came out quite well. Took twenty minutes to get from scratch to an adaptation passing the test suite: I am not entirely sure the bank sizes are correct, but am too lazy to check right now. This might have been easy because the Proteus and Morpheus are probably very similar. But I also didn't need to read the 2000+ lines of Java code :-) |
Out of those, the only one (currently 😇) relevant to me, is the FS1R But iirc that one's hard because of the nested structure |
The FS1R is a beast iirc, With the bankDescriptors() functionality we can now serve different types of data with different number of program slots for each, but I suspect some wonky quirks when we really do that. We could take the FS1R as a driver to push the functionality of KnobKraft further, I'll open a new device issue for it. We can do many more things we coudn't do 4 years ago, maybe it is worth a try. |
Interesting that you fed it an example adaptation. I always in the past fed the sysex spec and the adaptation programming guide |
Yes, the example code got it on track I think. If it's easier for us to edit an existing adaptation, so it seems to be for the AI! |
Originally posted by @christofmuc in #398
Is it easy to integrate synths that are in edisyn? Asking because, while I very much appreciate the work that has been done, I really struggle with the UI and would much prefer kk (for the librarian part obviously)
The text was updated successfully, but these errors were encountered: