Author Topic: [Fixed] sysex commands targeted to other devices, causing preenfm2 to stutter  (Read 2676 times)

alexchm

  • Team member
  • *
  • Posts: 14
    • View Profile
Greetings!

Today I made a new template for other synth that is using sysex, each time I move the knob with any sysex command on my midi controller, the preenfm2 stutters (or the notes are interrupted, regardless to which device i send sysex) and the screen flickers. Is there a way to filter sysex commands on the preenfm?
« Last Edit: April 15, 2021, 10:30:30 PM by Xavier »

lokki

  • Sr. Member
  • ****
  • Posts: 368
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #1 on: April 11, 2021, 03:23:40 PM »
How are your Synths connected to each other midi wise? Midi thru from one to each other? Do you have a computer in-between? What midi controller?

alexchm

  • Team member
  • *
  • Posts: 14
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #2 on: April 11, 2021, 05:17:54 PM »
The synths are connected like this:   mpc->bcr2000->midisplitter->synths
before i had it like  bcr2000->mpc->midisplitter->synths  but it wasnt ideal as the mpc craps out from too many sysex strings at once.

lokki

  • Sr. Member
  • ****
  • Posts: 368
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #3 on: April 11, 2021, 11:09:42 PM »
So you are in fact sending the sysex info to all your Synths.

Couple of things could be the issue:

-the midi stream itself is too crowded with all the sysex info, in that case other Synths that play should also stutter, did you try that?

-preenfm2 has a problem with incoming sysex that does not belong to it.

My guess is that the stream of data is just too dense, sysex was never meant as a realtime protocol to change parameters on the fly.

alexchm

  • Team member
  • *
  • Posts: 14
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #4 on: April 12, 2021, 07:23:49 AM »
Actually sending sysex to only to one synth, the string is same size like the ones from yamaha fm synths. when i hooked the BCR2000 to the mpc, it would cause note hang on different synths when moving 2 encoders with sysex at once, but with mpc->bcr2000->splitter, ecerything works fine except the preenfm behaving weird.

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2113
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #5 on: April 12, 2021, 09:10:50 AM »

OK, I see something wrong with sysex in the preenfm2 code.
The preenfm2 stops playing all sounds before  it tests whether the SYSEX is for it.
I'll fix that ASAP.

alexchm

  • Team member
  • *
  • Posts: 14
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #6 on: April 12, 2021, 10:46:12 AM »
Thanks a ton!!

lokki

  • Sr. Member
  • ****
  • Posts: 368
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #7 on: April 12, 2021, 12:41:04 PM »
Cool.

But still you are sending sysex to all devices, the preenfm2 and all other Synths connected have to check, if sysex is for them. Midi has no notion of a destination or similar, it is a unidirectional protocol. So for note information you have to use channels to send to different Synths and set them accordingly on each synth.

alexchm

  • Team member
  • *
  • Posts: 14
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #8 on: April 12, 2021, 01:17:57 PM »
so far, it works ok, only the mpc in multitimbral mode gets confused when moving 2 sysex encoders. the midi splitter does its job nicely ;D the cool thing about the bcr is that you can set up the transfer speed or something like that. most of my gear doesnt support sysex so it kind of ignores that i think. but i thought the midi channel is already implemented in the 3rd line of the sysex string, like f0 then ID and then 10 for channel 1; 16 for channel 7,etc. would be possible to assign a unique preenfm ID followed by  channel on which it always listens (or can filter, like the option to receive only cc or nrpn from settings)?

Xavier

  • Administrator
  • Hero Member
  • *
  • Posts: 2113
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #9 on: April 13, 2021, 09:34:44 AM »
Not sure anybody use the preenfm2 sysex today, i hesitated several times to remove  it completely. But it's still there :)

But still you are sending sysex to all devices, the preenfm2 and all other Synths connected have to check, if sysex is for them.

Yes first chars in Sysex are manufacturer ID for the machine you're targetting.
I use "0x7D" (7D: prototyping, test, private use and experimentation) and "0x05" for the preenfm2.

In 2.21a, i now test those 2 first chars before stoping the sound.

I also added an option to also disable SYSEX reading completely :
 MENU>Tools>Set>Sysex

@alexchm, i think
https://github.com/Ixox/preenfm2/releases/tag/2.21a
should fix your problem.
« Last Edit: April 13, 2021, 09:41:26 AM by Xavier »

alexchm

  • Team member
  • *
  • Posts: 14
    • View Profile
Re: sysex commands targeted to other devices, causing preenfm2 to stutter
« Reply #10 on: April 14, 2021, 09:20:49 AM »
thanks!!!! it resolved the problem, works like a dream now ;D sysex actually isnt needed because NRPN is very well implemented in preenfm, blofeld otoh needs sysex for some of the most important (and sometimes common) stuff like the mixer levels in multimode, which some of my favorite controllers (like the UC 33 from evolution) dont support that... thanks again!
« Last Edit: April 14, 2021, 09:26:07 AM by alexchm »