Thanks @riban for all your comments (also in the MiMi-d github issue tracker)!
I agree that the tuning issue is serious; I’m wondering if it’s some sample rate calculation thing, as 48000/44100 is about the observed offset of one and half semitone.
I tried installing it on Oram too, primarily to see if any dependencies needed to be installed (they didn’t; on my ordinary (stable) SD card I’ve built other synths so I can’t remember what’s been pulled in besides what is standard in Zynthian). My experience was that after ‘make install’, I tried ‘Search for new engines’ a couple of times, but it didn’t find it. I then rebooted, still not in the list, then I did ‘Search for new engines’ again, still not there, then I rebooted a second time, and now it turned up in the list. So it was like after installing the software package, a reboot was needed for the webconf to be able to pick it up, for some reason, and after the scanning operation is completed, a second reboot is required. It’s like the webconf doesn’t update some internal cache.
Regarding the CPU load, it’s interesting that you get 27% which I assume is on the V5; I get 42% or so on V4 with 8 voices playing (which is about 5% or so more than the OB-Xd which bugs me a bit but its not surprising since the MiMI-d does have more features. The DSP code is not especially optimized and basically runs the whole synth for every sample produced, but that on the other hand means that the sound is free from stepped envelopes and LFO waveforms.
Incidentally, the parameter called ‘Economy Mode’ on the ‘DSP Control’ page controls if the plugin runs all (selected) voices continuously (Off) or only when they are producing sound (On). Like several other features, this one has been inherited from OB-Xd; I don’t know how useful it is in practice, but I find it handy for testing the CPU load.
Regarding the lone parameter on the Ctrl page, this (port) seems to be something internal / integral to the framework so I’m not sure I can do much about it (I’ve seen other synths have similar parameters); I’ll have to look closer at it.
Unused 1 and 2 are inherited from OB-Xd, and I’ve used them during development for quickly adding internal settings at arbitrary points in the code for experimentation without actually having to add a new parameter every time. They should really go away now.
I agree a lot of parameters could have better naming, so I think the next step will be to look over the parameter names and also write some form of at least shortform to explain the not-so-obvious parts, like the key assigment settings.
As you noted, KeyAsgnRes (Restore) stores keys that are pressed but for which no voice can be allocated (because KeyAsgnRob is set to Off) so that they can be allocated once keys are released and voices become available. This also works in polyphonic mode, which can be handy when playing slow string patches. You are correct in that there is no auto portamento, although regarding legato there is a single trig setting in the KeyAsgnStrg setting where it’s possible to set if the assignment is legato when just playing note on, or both for note on and note off. Again, this works not only when playing monophonically, but also in polyphonically.
This smorgasbord of key assign settings are a carryover from the MiMi-a where I went wild with key assign modes partly for fun and to extend what are normally mono legato modes to also work polyphonically and partly because I really wanted the player to have control over it.
Anyway, I’ll have a look at the above points and post updates in this thread.