Ensoniq Mirage Soundprocess OS template

I am working on a template and got some questions.

Work in progress:

I have a parameter that affect 2 OSC pairs and I need to select which OSC pair first before sending the PARAMETER update sysex I have to send an OSC PAIR select message.

How can I send 2 sysex messages for 1 parameter?

What I want to accomplish is a knop for ever single parameter of both OSC Pairs.
So instead having the OSC pair select as a switch in the template I would like to send it with each parameter update.

1 Like

simple Lua function could do the trick here. Do you have the sysex documentation available? I would take a look at that.

hi Martin, yes I do have the sysex documentation.
in fact many parameters are already working in the template.

But there is now way to update a parameter and tell which oscillator pair you want to update.

there is an oscillator “pair select parameter” that can be 1 or 2.
and when you update a parameter the update will apply on the selected “oscillator pair”.

the parameter number are the same for both pairs so not individually addressable.

hope this makes sense

Can you explain how i could use lua script?

the lua script shoukd send the “osc pair select” sysex message 1 time before sending the sysex parameter and data of that corresponding knop.

Hi Martin or @oldgearguy ,

Is it possible to send a sysex message when a specific page is active?
Something like this?

function enableOscPair ()

  if page:getName() == "OSC PAIR1"

	midi.sendSysex (PORT_1, { 00, 00, 23, 01, 43, 3C, 01, 00 })

	if page:getName() == "OSC PAIR2"

	midi.sendSysex (PORT_1, { 00, 00, 23, 01, 43, 3C, 02, 00 })


Of course this is just some pseudo code.
But I am trying to figure out a way to have dedicated controls for 2 Oscillator pairs. To control them you use the same sysex messages and you use another sysex message to select which one you want to control.

Or should I can I use :isVisible()

if group4:isVisible() == true
midi.sendSysex (PORT_1, { 00, 00, 23, 01, 43, 3C, 01, 00 })

if group14:isVisible() == true
midi.sendSysex (PORT_1, { 00, 00, 23, 01, 43, 3C, 02, 00 })

groupId:4 is the one controlling the first pair and groupId:14 the second pair.
However there are many more groups so using the state of which page is active would be better.
Or are there other ways to do this?

1 Like

I needed to have 2 different controls for filter cutoff frequency. One was an absolute frequency and the other was relative to the other filter cutoff, depending on the mode.

I ended up defining 2 controls on the page, one hidden, one visible and also a toggle button to select the mode. When you toggled the button, I hid control 1, showed control 2, and changed the slot number for both so the visible control appeared in the same location always, just had a different name and range of values and sent a different message back to the synth.