Hi Patrice,
I started writing a list of cases when pfm3 crashes recently. And I should do it much earlier, because in the two years I've owned it (although I've really only started using it extensively now) it has managed to hang or even crash the DAW many times

I don't know how to write code, C++ is really unknown to me (I know a bit of python and I'm reasonably familiar with bash (because Linux)) but I feel that I'm better at finding bugs than debugging them. Plus I like manuals. I've had a really hard time these two years to understand how pfm3 works, also because FM synthesis is a bit abstract at first. There is a giant elephant in the room, which everyone knows. I know it's impolite to complain and sometimes it's good to be happy with what you have, rather than hoping for what will be (and it won't be).
Now I have started to be more methodical in approaching the whole pfm universe. To learn the functions of the synthesizer I read github (after two years I discovered that it also works as a midi controller), because the wiki is 4 years old

The fact that there are hidden combinations keys I found by accident on the forum (also not all work as they should, depends on the algorithm and the number of carriers).
Pfm2controller as the name suggests is more to the earlier version - it has potential, but it doesn't work as it should. Standalone is most useful as a preset librarian, but also not for creating new banks, because it creates empty presets as <empty> and when browsing the bank you move to such a preset it crashes

Vst can crash hardware and DAW, moreover, it does not always read NRPN from the device. I tried the code in juce and the result is known. Transferring it to modern juce is a horror and I gave up.
For me personally vst, what I would be able to use in Renoise or Reaper to have parameters from/to the device, is something I am looking for and will try some walkaround with API/Lua, maybe some simple instrument in juce what will operate only on values, I do not need GUI (something like airwindows).
After reading hexter.cpp it became clear to me which parameters when importing .syx are not implemented.
I recently started using Perf tab - great! Additional 4 sources + 2 hardcoded encoders for fx1 1 and 2.
Sequencer - after it boiled my blood many times running by itself - I still don't like it and don't use it. It's cool that it's there but I have better ones. Thank you again for fixing it quickly - the latest firmware works!
And while we are at MI - at the same time as I was learning to solder and pfm3 was my first hardware made, MI Anushri was the second and x0xb0x the third. I managed to build that infamous firmware file and here with stm32 still nothing...
Ok, rant over.
I'm gathering information from the code (although for me it's like reading Joyce's Ulysses - all good and at the end 30 pages of Molly's stream of consciousness at 3 am), from the forum and I'll try to write an unofficial manual. Only this will also take time, but here it is unlikely that anyone is in a hurry. How (I'm likely to succeed only not in the near future) I manage to solve problems with building firmware I will also write. I have a feeling that it may be useful for others as well.
Of the simple things to modify in the code:
- changing/removing the modulation matrix value in Presets.cpp for “Default” and “Sound”
- triangle wave in waves.c. Yes, I know you can have 6 user, but.... I don't need sine0 and sine+
Is it possible?
- In FX2 adding LP3, HP3 - a double filter
- UserCC & Perf - as modulation destnations - this would probably make problems
- A dot/point/coma. Ftyp fixe Ftun dot - like 99.9Hz
CC40 - maybe finetune parameter ?
Dave