FS1R Woes

Hi Everyone,

I’m trying to start on developing an FS1R template and I’ve hit a snag which has me scratching my head.

the format of the system exclusive message (performance parameter) is as follows
F0 43 1N 5E 10 00 LL VV VV F7
N = device id
LL High byte
vv vv is the value for the parameter. ( I think this is where I’m messing up)

My Lua script is as follows
[
“F0”,
“43”,
“11”,
“5E”,
“10”,
“00”,
“00”,
{
“type”: “value”
},
“F7”
]

Unfortunately this isn’t working. I suspect the issue is that the message expects two bytes of data to be passed but only one byte is being passed for vv vv.

I tried adding a dummy “00” just before type:value but this failed too.

Also note I’ve checked the FS1R is programmed to receive sysex and programming changes. I’ve checked the device number multiple times. This really has me scratching my head. Any advice or direction would be welcomed.

Thanks in advance

1 Like

Aha! I think I have to use the nibble example from the Writing SysEx templates documentation page. I’ll report back my results once I get this working.

As I have a FS1R, I’m very much looking forward to it! :blush: :blush: :blush:

1 Like

I’ve only just started. If I can get the first parameter to work I’ll be on my way.

Unfortunately I cannot help with Lua, but happy to help testing

1 Like

Got it. This Lua script changes the first character in the Performance Parameter name.

[
“F0”,
“43”,
“10”,
“5E”,
“10”,
“00”,
“00”,
{
“type”: “value”,
“rules”: [
{
“parameterNumber”: 1,
“parameterBitPosition”: 7,
“byteBitPosition”: 0,
“bitWidth”: 7,
“type”: “sysex”
}
]
},
{
“type”: “value”,
“rules”: [
{
“parameterNumber”: 1,
“parameterBitPosition”: 0,
“byteBitPosition”: 0,
“bitWidth”: 7,
“type”: “sysex”
}
]
},
“F7”
]

Should be just tedious now. I’ll reach out once I have a bit more. At this stage I have 1 parameter mapped but I know the format to use so should glide for a while.

The same you may encounter in patch parsing as sell. Take a look at the patch Editor of the SE-02 preset: all too frequently the value of one parameter was split over two bytes in the SysEx, where for instance 3 bits where taken from one and 4 bits from the adjacent byte. So I needed to recompose the parametervalues.
It might give you some inspiration, I hope.

1 Like

Hi @cixelsyd ,

just some minor remarks.

When composing SysEx messages via Electra’s SysEx template, the first and last byte (F0 and F7) are usually omitted.
So if a SysEx string is listed as F0 43 1N 5E 10 00 LL VV VV F7 in the manual of a synth, it would translate to

[
  “43”,
  “11”,
  “5E”,
  “10”,
  “00”,
  “00”,
  {
    “type”: “value”
  },
  {
    “type”: “value”
  }
]

In Electra’s SysEx Editor.

This is explained, for example, in Writing SysEx templates under Constant bytes.

And just to avoid confusion with the terminology, these strings above are SysEx templates. Lua in contrast, is a Scripting Language which allows extending the functionality of Electra presets.
Besides many other things, Lua also allows handling SysEx messages, but they are processed in a different looking format than the SysEx template mentioned above.

( @oldgearguy’s Alesis Micron preset is a smart example of how SysEx messages can be handled entirely through Lua.
Details about Lua can be found here: Preset Lua extension | Electra One Documentation )

Thanks Marian. Interestingly my other two templates for the Varios8 and PLG150AN both work fine while including the F0 and F7 bookends. In terms of the Lua scripting stuff, I’m familiar with LUA having developed the Spectra RE for Reason. I’ll certainly check out oldgearguys Micron template as I do have a Micron. Having said all that I think I’ve discovered a potential bug in the 2.1.6 firmware. I’ve reached out to Martin for some advice. The bug appears to be only occurring on SysEx calls where the 14 bit value is split into 2 hex values (Thanks Yamaha). anyway. My first control worked perfectly but as soon as I added a second it didn’t work at all. Interestingly, if I change the Parameter Number to 1 instead of 2 on the second one it works fine. Both work fine if both parameter numbers are 1 but not if its any other number. I tested by FS1R by getting my patchbase FS1R out and it works fine so its not the device. Checking the log of the Electra.One.Console reveals that the second parameter transmits the current value of the first parameter with every knob turn. I’ve spent the day working testing almost everything it could be. I’ve reached out to Martin though I understand he’s quite busy.

Hi @cixelsyd,

I was about to reply to you email :slight_smile:

I have checked your FS1R preset. I can see that both controls, NAME1 and NAME2, link only SysEx parameter 1. You need to adjust the NAME2 control to link parameter 2. That can be done in the visual editor or by editing the JSON. Let me know if you need more assistance with that.

The F0 and F7 bytes are optional, Electra accepts both formats.

1 Like

Thanks Martin. Worked first time after linking it. Thanks for the quick response.

1 Like

Thanks for documentation link. It was an interesting read.