Author Topic: NRPN and MIDI documentation questions and issues part 2  (Read 6853 times)

feijai

  • Team member
  • *
  • Posts: 25
    • View Profile
NRPN and MIDI documentation questions and issues part 2
« on: July 24, 2017, 11:39:15 PM »
While cleaning up my editor, I have found the following bugs in the PreenFM2 or in the official patch editor.  They vary from the serious to the minor.  Again, I am using PreenFM2 Firmware 2.07 and pfm2 editor 2.00.


1. Sending NRPN to change the voice count to > 14 crashes the synth.

2. Go to arpeggiator menu when the clock is OFF. Turn it to Int or Ext.  Change the Latch, Dirction, or *especially* Pattern via NRPN, and crazy things happen on the screen.  Lots of japanese characters.  For example: boot the synth.  Go to arpeggiator.  Set to "Internal".  Immediately try to set Pattern via NRPN.

3. Often when the synth receives an Arpeggiator Pattern or Arpeggiator Division NRPN request, it always goes to the maximum value (User 4, or 1/96).  For example: boot the synth.  Go to arpeggiator.  Set to "Internal".  Go to the next page.  Then try to set Pattern via NRPN.

4. The Operator Frequency as displayed in the synth is often 0.01 off of what is displayed on the PreenFM2 editor.

5. The Fixed Operator Frequency (+/- fine tune) is 1 off of what was provided via NRPN about half the time. Perhaps a rounding error?

6. Changing the Operator Fixed/Keyboard flag via NRPN does not refresh the screen for the frequency and fine tune.

7. Modulation sources via NRPN are not in the same order that they're displayed on-screen.  The order of the final seven sources (in NRPN) is Note 1, P1, P2, P3, P4, Note2, Breadth.

8. Modulation destinations are not in the same order that they're displayed on-screen.  The order of the final 14 destinations (in NRPN) is Rel*, mx1, 2, 3, 4, l1fq, 1, 2, e2si, s1ga, 2, Fltr, o*Fh, Dec*.  Still not sure what o*Fh, Gate, or Dec* are :-(.

9. If you're at 1.00 in LFO frequency, and you turn the encoder one step to the left, you don't go to 0.99.  You go to 0.90.


Also a few final brain-dumps and I'm out of stuff:

10. Writing an editor would very much benefit from a single new NRPN command: to write the current edited changes of Instrument 1 to permanent patch memory.  Without it, I think the only way you can save NRPN changes to patch memory is by manually going through the menus on the device.  :-(

Ideally you would encode the Bank and Number as part of the command.  Without encoding them (just having a simple "write" command) you could still implement a write (Bank Change, PC, NRPN dump, Write) but it'd be a little dangerous if the PC and Bank Change weren't received correctly.  It'd be better to do NRPN dump, followed by Write-to-Bank-and-number.

Another useful command would be NRPN Bank and Number Query (and response).

11. When you load an instrument, it often loads with a less than maximal number of voices.  For example, loading with only 6 voices even though 8 are available.  In this day and age of DAWs, multitimbralism is an increasingly rare use case: the vast majority of use of the PreenFM2, I'd wager, is a single sound, with the other instruments set to 0 voices.  In this majority scenario, you always would want to allocate every voice available.  The only exception would be sounds meant to be monophonic, with glide.  I would ask that you consider changing this behavior.

12. How does the sysex format for the "Bank" sounds differ from that of the "Combo" sounds?
« Last Edit: July 25, 2017, 01:15:35 AM by feijai »

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: NRPN and MIDI documentation questions and issues part 2
« Reply #1 on: July 25, 2017, 10:38:17 PM »
As you noticed, the preenfm2 it not NRPN proof, sending wrong value can crash it.

7.8. I unlinked the order in the preenfm2 UI and the internal value. preenfm2 had many firmware upgrades which saw new parameters, some parameters needed a new internal value but had to be inserted in the existing list.
https://github.com/Ixox/preenfm2/blob/master/src/synth/SynthState.cpp#L272

9. for freq >= 1.0 the increment/decrement is set to 0.1.

10. agreed.

11. The number of voice is supposed to be the number of voices saved with the preset. Or if the other instruments have voices that prevent this number to be set for the newly loaded preset.

12. Not sure i understand. Saving sysex dump all current instrument parameteres. Combo are the 4 instruments saved at the same time.

« Last Edit: July 25, 2017, 10:46:08 PM by Xavier »

feijai

  • Team member
  • *
  • Posts: 25
    • View Profile
Re: NRPN and MIDI documentation questions and issues part 2
« Reply #2 on: July 26, 2017, 10:36:39 AM »
As you noticed, the preenfm2 it not NRPN proof, sending wrong value can crash it.

Well the critical bug is #3: you can't set the Arpeggiator Pattern or Pattern Direction at all via NRPN.  It's broken.

Quote
9. for freq >= 1.0 the increment/decrement is set to 0.1.

I think the logic should be: (incrementing ? (x >= 1.0 ?  0.1 : 0.01) : (x <= 1.0 ? 0.01 : 0.1))

Quote
11. The number of voice is supposed to be the number of voices saved with the preset. Or if the other instruments have voices that prevent this number to be set for the newly loaded preset.

I would like to agitate to have an option where the behavior is instead: if the voice has a preset of 1, use 1.  Else the number of voices should be all remaining available voices not currently allocated.  I believe this behavior would be helpful to a large majority of users.

Quote
12. Not sure i understand. Saving sysex dump all current instrument parameteres. Combo are the 4 instruments saved at the same time.

My belief of the sysex dump was that it dumped out the entire memory state.  But now I don't know.  Is the sysex dump for a Bank just the state for a single instrument?  If so, what is the format the Combo dump?  Does it concatenate four Bank dumps, and if it does now does it specify which one is which instrument?  These two can't be the same.

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: NRPN and MIDI documentation questions and issues part 2
« Reply #3 on: July 31, 2017, 11:56:03 AM »

I'll take a look at your #3. Doesn't it work with my editor ?
(I cannot verify right now).

Sysex in the preenfm 2 : "Sysex can be used to store and restore single presets. This sysex is not really usable outside the preenfm2. It contains a memory dump of the the preenfm2 memory. Set of 32 bits floating point numbers split in 7bits messages."

Can also be used to easily copy a preset from a preenfm2 to another one.

It dumps the presets of your current instrument (but double check that).

preenfm2 sysex dumps were not done to be edited.

Xavier


feijai

  • Team member
  • *
  • Posts: 25
    • View Profile
Re: NRPN and MIDI documentation questions and issues part 2
« Reply #4 on: July 31, 2017, 04:51:42 PM »

I'll take a look at your #3. Doesn't it work with my editor ?
(I cannot verify right now).

It's the NRPN closed with RPN 127/127 issue mentioned elsewhere.  :-(