preenfm Forum

PreenFM => preenfm2 and preenfm3 => Topic started by: alexchm on April 11, 2021, 02:19:13 PM

Title: [Fixed] sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: alexchm on April 11, 2021, 02:19:13 PM
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?
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: lokki 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?
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: alexchm 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.
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: lokki 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.
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: alexchm 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.
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: Xavier 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.
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: alexchm on April 12, 2021, 10:46:12 AM
Thanks a ton!!
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: lokki 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.
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: alexchm 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)?
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: Xavier 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.
Title: Re: sysex commands targeted to other devices, causing preenfm2 to stutter
Post by: alexchm 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!