|
Post by sergiogolivek on Aug 6, 2018 23:41:02 GMT
Hello! First of all I would like to congratulate the developers for the excellent application. Congratulations!!
I am another new user to immerse myself in this universe and because of this I am having difficulty obtaining the programming I want.
What I need is to convert a command "sysex"
I have a keyboard that has eight buttons and I want to assign new commands to them.
The sysex command generated by them are these:
Button 01: F0 43 10 7F 1C 02 30 4C 00 00 F7
Button 02: F0 43 10 7F 1C 02 30 4C 00 01 F7
Button 03: F0 43 10 7F 1C 02 30 4C 00 02 F7
...
Button 08: F0 43 10 7F 1C 02 30 4C 00 07 F7
What I need:
Button 01: F0 43 10 7F 1C 02 30 4C 00 00 F7 => F0 43 10 7F 1C 02 31 00 17 01 F7
Button 02: F0 43 10 7F 1C 02 30 4C 00 01 F7 => F0 43 10 7F 1C 02 31 01 17 01 F7
Button 03: F0 43 10 7F 1C 02 30 4C 00 02 F7 => F0 43 10 7F 1C 02 31 02 17 01 F7
...
Button 08: F0 43 10 7F 1C 02 30 4C 00 07 F7 => F0 43 10 7F 1C 02 31 07 17 01 F7
Please, how do I get this result?
Thank you very much !!
Att,
Sergio
|
|
|
Post by sergiogolivek on Aug 7, 2018 6:03:27 GMT
I tried this command but it did not work:
IF M0 == F0 43 10 7F 1C 02 30 4C 00 00 F7 SND F0 43 10 7F 1C 02 31 00 17 01 F7 END
This error appeared:
#ERR IF M0 == F0 43 10 7F 1C 02 30 4C 00 00 F7 SND F0 43 10 7F 1C 02 31 00 17 01 F7 END
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Aug 7, 2018 6:54:18 GMT
Hi sergiogolivek The error is because you can compare a maximum of 4 values in an IF statement, so we need to nest the IFs. Also, because you want to change the message passing through, we can just modify it (ASS) rather than doing an extra SND. Finally, because there is quite a simple relation between your in and out sysex messages, we can use variables in the ASS. So, here is how I suggest you do it (will handle all 8 messages) : IF M0 == F0 43 10 7F IF M4 == 1C 02 30 IF M7 == 4C 00 ASS M6 = 31 M9 17 01 END END END
I think that is right, but I will let you test it. Regards, Nic
|
|
|
Post by sergiogolivek on Aug 7, 2018 15:06:35 GMT
Hello! I took the test here and it worked perfectly, thank you!
Now advancing a bit more ..
These buttons will be responsible for managing my layers from my keyboard.
Ex: Button 01 = Layer => Track 01, Track 02 and Track 03 ... Other tracks "off" Button 02 = Layer => Track 02, Track 04 and Track 05 ... Other tracks "off"
What I mean by this? I need each button to trigger at the same time (enable or disable tracks), so what would be the best way?
Because from what I understand the ASS command does this conversion but it can be replicated multiple times in a single window? I tried to do this and it did not work ..
Again thank you very much !!
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Aug 7, 2018 15:20:58 GMT
Hi sergiogolivek , Yes, if you want to generate additional events from the one event you need a SND for each extra you wish to generate. example: IF M0 == C0 01 SND M0 02 SND M0 03 ENDThis would generate two extra program changes whenever it sees program change 01 on channel 1. If C0 01 is seen, then it will send C0 01, C0 02 and C0 03 Regards, Nic.
|
|
|
Post by sergiogolivek on Aug 7, 2018 15:39:11 GMT
In theory that would be it, right?
IF M0 == F0 43 10 7F IF M4 == 1C 02 30 IF M7 == 4C 00 ASS M6 = 31 00 17 01 SND M6 31 01 17 01 SND M6 31 02 17 01 END END END
I tried this and it did not work
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Aug 7, 2018 16:11:50 GMT
Hi sergiogolivek , The SND is not the same as an ASS rule. You need to send the entire message. Maybe for what you need to do we should make things more obvious and not do the ASS stuff since you want to do different things based on each button anyway. Hopefully this makes more sense and you can fill out the missing bits for however you need them. IF M0 == F0 43 10 7F IF M4 == 1C 02 30 4C IF M8 == 00 00 F7 # button 1 SND F0 43 10 7F 1C 02 31 00 17 01 F7 SND F0 43 10 7F 1C 02 31 01 17 01 F7 SND F0 43 10 7F 1C 02 31 02 17 01 F7 END IF M8 == 00 01 F7 # button 2 SND F0 43 10 7F 1C 02 31 00 17 01 F7 SND F0 43 10 7F 1C 02 31 01 17 01 F7 SND F0 43 10 7F 1C 02 31 02 17 01 F7 END
# ... add more IF M8 == 00 ?? F7 for buttons 3-8 yourself
XX = XX +B # block original message END ENDRegards, Nic.
|
|
|
Post by sergiogolivek on Aug 7, 2018 16:52:17 GMT
Amazing!!
It worked perfectly that way. Even to help other users I will detail how the programming was according to the examples I quoted earlier:
Example 01:
Button 01 = Layers => Track 01, Track 02, Track 03. Tracks 04 to 08 "OFF"
IF M0 == F0 43 10 7F IF M4 == 1C 02 30 4C IF M8 == 00 00 F7 # button 1 SND F0 43 10 7F 1C 02 31 00 17 01 F7 SND F0 43 10 7F 1C 02 31 01 17 01 F7 SND F0 43 10 7F 1C 02 31 02 17 01 F7 SND F0 43 10 7F 1C 02 31 03 17 00 F7 SND F0 43 10 7F 1C 02 31 04 17 00 F7 SND F0 43 10 7F 1C 02 31 05 17 00 F7 SND F0 43 10 7F 1C 02 31 06 17 00 F7 SND F0 43 10 7F 1C 02 31 07 17 00 F7 END END END
Example 02:
Button 02 = Layers => Track 02, Track 04 and Track 05. Tracks remaining "OFF"
IF M0 == F0 43 10 7F IF M4 == 1C 02 30 4C IF M8 == 00 01 F7 # button 2 SND F0 43 10 7F 1C 02 31 00 17 00 F7 SND F0 43 10 7F 1C 02 31 01 17 01 F7 SND F0 43 10 7F 1C 02 31 02 17 00 F7 SND F0 43 10 7F 1C 02 31 03 17 01 F7 SND F0 43 10 7F 1C 02 31 04 17 01 F7 SND F0 43 10 7F 1C 02 31 05 17 00 F7 SND F0 43 10 7F 1C 02 31 06 17 00 F7 SND F0 43 10 7F 1C 02 31 07 17 00 F7 END END END
Now I go a little further .. I use these buttons as shortcuts to access settings of different combinations of a song's tones. For example, button 01 - Intro / Verse, button 02 - Chorus, button 03 - Solo Synth ...
So, I need to configure Stream Byter for each song I need for this feature, so I thought about using Scenes and switch via program change, I get a preset on my keyboard to send this command.
Until then, okay! The question is whether this will overwhelm the App as we are dealing with many configurations, and will I have multiple scenes it is safe to work that way?
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Aug 7, 2018 16:59:15 GMT
Hi sergiogolivek, Ha, no, switching scenes with program changes should not overwhelm. It's designed for that! Regards, Nic.
|
|
|
Post by sergiogolivek on Aug 7, 2018 21:11:40 GMT
Nic, I need another one, please.
I'm setting the scene change via program change.
No problems in configuring however when testing I am having the following problem:
When the keyboard sends the program change for the scene, it also receives that command and the keyboard preset tone changes.
I tried blocking program change commands in the Stream Byter window but then the scene change does not work and the app for many times closes unexpectedly.
How do you think we can handle this?
The command I am using to block program changes is:
CX = XX + B B0 00 = XX + B B0 20 = XX + B
I copied this command from the "Event Filters" scene shared in "scenes club"
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Aug 8, 2018 9:28:04 GMT
Hi sergiogolivek , Are you saying that MidiFire is crashing when you block the program changes? I did fix something like this fairly recently. Could you check that you are using the latest version. Open up the Setup panel and you should see the version and build numbers near the bottom. You should have v1.15. If you can confirm you're on the latest version, I will see if I can reproduce that. Sounds like a bug. Regards, Nic.
|
|
|
Post by sergiogolivek on Aug 8, 2018 12:52:22 GMT
Hello nic! Yes, I'm using the latest version. v1.15 Meanwhile, I tried some programming alternatives, but all to no avail. What I would solve would be to have the condition to determine the Midi port that will send the PC to the scene change as well as the remote. Every time I tried to block or filter the PC commands MidiFire crashing ... Is this a bug then?
|
|
|
Post by sergiogolivek on Aug 8, 2018 12:59:04 GMT
If I do not try to filter the PCs commands, the app works correctly, however, what I told you about. The PC command is sent to the back keyboard, thus changing the tone. And I use a sheet music app to change keyboard tones so I can not disable receiving this data on the keyboard. My setup is something like this:
App: SetlistMaker (sends PC to) => Keyboard (Send to PC) => MidiFire (keyboard button control)
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Aug 8, 2018 17:48:41 GMT
Hi sergiogolivek , Sounds like a bug. Let me see if I can reproduce this. Regards, Nic.
|
|
|
Post by sergiogolivek on Aug 8, 2018 21:44:39 GMT
Hello,
I found a way to work, I think this is a bug yes. The error occurs when we try to filter the PC command.
What I did was this:
Midi Source IN "Keyboard" => Stream Byter => Midi Source OUT "MidiFire 7" => App: MidiFlow IN => Filter ALL PCs => Midi Source Out "Keyboard"
That way the MidiFlow filters the PCs that were being delivered by Stream Byter and MidiFire stops closing.
I hope it helps..
|
|