1. Hi everyone,

    Apple just released Logic Pro 10.5 for MacOS 10.15. We found out that Crush Pack, Mod Pack, Replika, and Replika XT will crash.

    Our teams are currently working on a fix, and we hope to have this out to you as soon as we can!

    Best wishes, 
    The NI Team

    Dismiss Notice

PresetMagician: Generate NKS Presets from VST plugins

Discussion in 'MASCHINE Area' started by Drachenkatze, Nov 10, 2018.

  1. wetdentist

    wetdentist NI Product Owner

    Messages:
    916
    i took screenshots of the error messages that the software generated when the program crashes upon vst scan
     
  2. tempsperdu

    tempsperdu NI Product Owner

    Messages:
    1,841
    Not only has it crashed repeatedly for me in Maschine but it has corrupted files it was used in and made them un-openable..it is very risky using it.
     
  3. Drachenkatze

    Drachenkatze NI Product Owner

    Messages:
    351
    I finally got the "secret" feature functional I've been working on: Automatic and magic resource generator! Since I really don't have the motivation to go through each plugin manually, this also works when analyzing a whole set of plugins.

    It won't be perfect - for some plugins, screenshots don't work, but it's a big helper to create an initial set of images. It does not overwrite existing pictures or resource information.

    Also, to do this it was required to make PresetMagician resilient against plugin crashes. With the next release, VST plugins are loaded in separate processes so if the process goes down, it won't bring the main application down with it (at least I hope). There might be other reasons why PresetMagician could still crash, and if you encounter such a crash, please let me know and I'll try to fix it.

    No ETA so far for the next release, I still need to iron out some major quirks due to the quite drastic changes.

    4e246d01-a3a7-4098-89d8-3bd9d89ee61f.jpg
     
    Last edited: Jan 21, 2019
    • Like Like x 3
  4. Frank Reifenstahl

    Frank Reifenstahl NI Product Owner

    Messages:
    29
  5. tempsperdu

    tempsperdu NI Product Owner

    Messages:
    1,841
    +1 o_O
     
  6. Predica Iulian

    Predica Iulian New Member

    Messages:
    10
    Thank you very much for this great program . I already buy it , and i make some conversions . I try very hard to change note preview , now is C5 , which is very high for me , in the future is possible to insert a setting were to change note preview for plug in first to make any export ?
    Once again thank you for this gem ...
     
  7. Home Studio

    Home Studio NI Product Owner

    Messages:
    76
    You can edit the note, and select all your files and apply wit the little icon next to the preview note
     
  8. Predica Iulian

    Predica Iulian New Member

    Messages:
    10
    Thank you very much , Home Studio , I find it too ...
     
  9. Drachenkatze

    Drachenkatze NI Product Owner

    Messages:
    351
    I think you all deserve a status update after pulling out that teaser on monday and not delivering so far ;)

    Process Isolation, being crash-proof and possible OS X support
    I'm mega busy and productive refactoring code (again). The process isolation stuff is almost super stable now, even with crashing or hanging plugins. In the past, I have disabled the Slate Digital plugins because they use iLok, which causes my debugger to hang. Now it's no problem anymore, the process isolation just kills the process if it didn't respond for one minute.

    As you typically can't communicate between processes directly, you need to have some kind of protocol. Right now, I'm using WCF and named pipes. But what if I used another protocol like TCP/IP and use that to connect to another computer? Like...one running OS X?

    The code base for PresetMagician is already pretty big. 25.791 lines of C# source code and 5.206 lines of GUI definition files (XAML). If I wanted to port this to OS X - you can imagine, that's a huge effort. But - the code for the isolated VST host is pretty small (2.500 lines) and could probably ported to OS X. Which means that you would still need a Windows VM (or maybe it'll work with Wine?), but it could work with all your plugins installed on OS X.

    BUT: Don't expect this feature tomorrow or in a month. It'll take for me to come up with the exact specifications, and then I might need to acquire a Mac. Also, I won't start working on the OS X isolated VST host until I can run the Windows version remotely on another machine, and it needs to be stable. But as of now, the idea sounds feasibly. But implementation could actually take several months.

    Preset Parsers and Performance
    Having to test the preset parsers again (click the link for an explanation what that exactly is), it always took a very long time analyzing plugins because I currently have 350+ to test with, and I didn't want to wait 10 minutes on each run. So I thought: "How can I speed this up?". Previously, loading each plugin was required to get infos like plugin name, plugin ID, vendor name etc. Especially without the plugin ID, PresetMagician can't find out which preset parser to use.

    But now PresetMagician uses a database, which means that it can store that information and retrieve it on the next start. Actually starting the plugin is only required in a minority of the cases, so PresetMagician can often retrieve preset information without loading the plugin. If loading a plugin takes 3 seconds on average, and you have 200 plugins, you'd have to wait 10 minutes before you can actually start using PresetMagician.

    Presets will also be stored in the database, so if you manually tag a preset or change the preview note, these changes will now be persistent. This also means that if you accidentally delete presets from your plugin, PresetMagician still has that information (extremely useful if you need to reinstall your computer).

    However, this also means that I need to take some precautions - for example, what happens if you move the plugin to another folder? Or what if you delete a plugin named "Reverb.dll" and replace it with a different plugin also named "Reverb.dll"? I don't want that you can't access the presets stored in the database anymore, just because PresetMagician can't make the connection between a plugin and the presets. That's mainly why it takes longer for a new release. It would be extremely frustrating if you tagged like 1000+ presets, reorganize your plugins and whoops - all gone.

    For you, the changes are that after loading PresetMagician, it will verify the installed plugins to detect these changes. Even if you replace your "Reverb.dll" with another plugin of the same filename (or if you install a newer version), things will still work. The verification process takes around 6 seconds for 350+ plugins on my machine with a SSD, or a bit slower after a reboot.

    What's up next?
    Well, here's the planned list for release 0.5.5. I think that'll at least take 3-4 days to implement. I'm sorry that it's so long since the last release, but it's a pretty major rework. Up until now, PresetMagician was a "fire and forget" solution, where you didn't have to put too much work into. But now, when users like you start to actually edit stuff - sorting presets into custom banks, editing banks etc I want to be sure that it works. Nothing is worse than spending hours working on something just to find that the work is lost.
     
    • Like Like x 2
  10. Slappz

    Slappz NI Product Owner

    Messages:
    339
    That looks like a really nice little program you developed there. I was thinking of playing around with building something using the open-source Tracktion audio engine, but I'm really now just looking into it. I'm assuming this is a commercial product because you're using NKS?
     
  11. Drachenkatze

    Drachenkatze NI Product Owner

    Messages:
    351
    Thanks :)

    Well, basically the main reason why I did it commercially is because I can't live from air and love alone. I spent the last 3 months developing PresetMagician, including countless hours reverse engineering preset formats. If there was a standard to how plugin vendors save their presets, it wouldn't need that kind of effort.

    I also have spent 7 years putting effort into PartKeepr, an open source inventory management. End of story is that I was the only developer and maintainer of that project, with countless users across all kinds of companies, hundreds of open feature requests, almost no code contribution from the community and basically no income for my work. End of story is that my own company, which provided hosting, service and support, has to be liquidated. It's not about that I'm greedy for money, it's about having something to eat and being able to pay the rent at the end of the month.

    However, when I decide that I no longer want to actively develop PresetMagician, I will release the full source code for it. But until then - there's lots to do ;)
     
    • Like Like x 1
  12. Slappz

    Slappz NI Product Owner

    Messages:
    339
    Well enough said there, but definitely thank you for sharing your story. Unfortunately open-source doesn't guarantee success any more than winning a million dollar lottery. You even have what seems to be a fully working online demo of your program which is also really nice.

    With skills like that I just assumed you weren't hurting for money. It's good to know you do support the open-source community.
     
  13. Drachenkatze

    Drachenkatze NI Product Owner

    Messages:
    351
    No more or less than commercial software. However, as it's the case with all projects born out of a personal need, I put fun first and sales second. I just don't want to make software for pure profit reasons. If there was basic income available in Germany, I'd probably give out PresetMagician for free.

    Well....how do I put that...I'm not the kind of girl which is good at selling stuff, especially not my skills. If I had to work for an employer again, it would probably be a nightmare. Boss wants feature XY, with ridiculous deadlines, without proper specification, without time to actually properly engineer and design software. I've had more than one virtually non-maintainable piece of software in my career as an employee, opening 3 new bugs for every bug closed. This is not only frustrating, but also a highly risky source for depression and other mental illness. During my career, I worked at 4 different companies, where each job wasn't fun at all.

    Also, many people do not understand that software development is a highly creative and iterative process - unless you are forced to deliver within a specific time. And as you know, you can't enforce creativity. Well, you can, but the results are often awful. Resulting in messy source code and evil hacks. That's why I prefer to work on my own projects which I use personally, where I can manage them the way I feel it's right.

    Yes, absolutely! I also do use many open-source components within PresetMagician. Without them, it would be impossible to deliver such a product in such a short amount of time. Some projects used: The Catel Framework, Orchestra (responsible for the user interface) and especially vst.net, which allows VST interfacing using the .NET framework and C#. I also plan on donating money to the vst.net project based on sales (besides the usual code contributions). You can see all third party libraries in the about dialog of PresetMagician.
     
    • Like Like x 3
  14. Slappz

    Slappz NI Product Owner

    Messages:
    339
    There are so many powerful open-source solutions that are available for free and with paid support. I've been out of programming for the last few years,and back then I was doing a lot of JavaScript programming. I like the frameworks you showed me, and it looks like they have good support.

    I think I'm going to focus on one right now because they also seem to offer good support, and I've used it before in the past. I'm not sure if you've heard of it, but I have a couple personal projects I'm going to knock out in it? It's called Godot?
    https://godotengine.org/
     
  15. DigitalMechanik

    DigitalMechanik New Member

    Messages:
    5
    Hi Drachenkatze,

    this project look very helpful und professional. Now i would test with some plugs. But in the first step i have install-probs.
    after install the setup presetmagician crash in the config-setup with the following "missing file" message:

    ....AppData\Roaming\Drachenkatze\PresetMagician\configuration.json

    the json file(s) aren't i the folder. Also after try to deinstall the prog an reinstall i cannot locate this file(s) in the folder.
    i work with win10pro 64bit.
    What do i wrong? Thx a lot.
     
  16. wetdentist

    wetdentist NI Product Owner

    Messages:
    916
    that's the same problem i am having
     
  17. Drachenkatze

    Drachenkatze NI Product Owner

    Messages:
    351
    Unfortunately it's a bug in the current version. You can create it using these instructions:

    Open the windows command prompt and paste the following commands to create an empty configuration file.

    %APPDATA%\Drachenkatze\PresetMagician
    type nul > configuration.json

    You should now be able to run PresetMagician.
     
    • Like Like x 1
  18. DigitalMechanik

    DigitalMechanik New Member

    Messages:
    5
    perfect. This was the problem. PM runs now ;)
     
  19. wetdentist

    wetdentist NI Product Owner

    Messages:
    916
    i can't get that solution to work
     
  20. Predica Iulian

    Predica Iulian New Member

    Messages:
    10
    Hello , I managed to export Bruno 205 , Pure Pten and Pro 53 all x32 version loaded with jbridge x64 ...
    Watch for error messages and hit ok ... Worked for me ...;)
     
    • Informative Informative x 1