# Can someone please show me how to use 'virtual' as a message type?

**URL:** <https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808>\
**Category:** General discussion\
**Created:** [July 14, 2025, 3:42pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808 "2025-07-14T15:42:01Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Electrolove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/electrolove/32/2440_2.png) [@Electrolove](https://forum.electra.one/u/Electrolove)\
**Post date:** [July 14, 2025, 3:42pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/1 "2025-07-14T15:42:01Z")

</div>

Can someone please show me how to use ‘virtual’ as a message type? What I want it to do is send B0 24 00, B0 24 01, and so on, up to B0 24 7F when I turn a pot. If I’ve understood the ‘virtual’ message type correctly, does it connect to LUA code that does the job of sending the MIDI message?

In other words. Message type virtual does not send MIDI on its own without LUA code?

UPDATE: I found this example. [Electra One App](https://app.electra.one/preset/XCyQOwihkGjE4SmNAbGS)

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [July 14, 2025, 4:24pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/2 "2025-07-14T16:24:23Z")

</div>

correct ; you typically use a Virtual if you want to do it something out of the ordinary. You then make a function in LUA with what it is supposed to do, and assign that function to the virtual control.

Most of my presets are full of virtual controls 😉

---

<div class="post-metadata">

**Author:** ![Electrolove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/electrolove/32/2440_2.png) [@Electrolove](https://forum.electra.one/u/Electrolove)\
**Post date:** [July 14, 2025, 4:29pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/3 "2025-07-14T16:29:50Z")

</div>

Thanks for your answer. Is it possible to simulate the strange behavior that Cobalt 5S uses with a virtual message type?

> [@I am so disappointed in Modal Electronics](https://forum.electra.one/t/i-am-so-disappointed-in-modal-electronics/3786):
>
> I hade some issues so I wrote an email to the support. Hi First of all, welcome back to the wonderful world of synthesizers [😀] Back in the 80s (when MIDI was new) I wrote my own sequencer and multi editor/library in assembly language for the Atari ST. But what I’ve seen now is completely new to me. I have a problem with my Cobalt5S. When I turn the leftmost knob clockwize, it sends out CC 36 (LFO1 Rate). But if I continue turning, somewhere in the middle it sends out CC 52 (LFO MIDI Sync) on…

This is the messages that should be sent when turning a pot clockwize.

B0 24 7F  
B0 24 7E  
B0 24 7D  
B0 24 7C  
B0 24 7B  
B0 24 7A  
B0 24 79  
B0 24 78  
B0 24 77  
B0 24 76  
B0 24 75  
B0 24 74  
B0 24 73  
B0 24 72  
B0 24 71  
B0 24 70  
B0 24 6F  
B0 24 6E  
B0 24 6D  
B0 24 6C  
B0 24 6B  
B0 24 6A  
B0 24 69  
B0 24 68  
B0 24 67  
B0 24 66  
B0 24 65  
B0 24 64  
B0 24 63  
B0 24 62  
B0 24 61  
B0 24 60  
B0 24 5F  
B0 24 5E  
B0 24 5D  
B0 24 5C  
B0 24 5B  
B0 24 5A  
B0 24 59  
B0 24 58  
B0 24 57  
B0 24 56  
B0 24 55  
B0 24 54  
B0 24 53  
B0 24 52  
B0 24 51  
B0 24 50  
B0 24 4F  
B0 24 4E  
B0 24 4D  
B0 24 4C  
B0 24 4B  
B0 24 4A  
B0 24 49  
B0 24 48  
B0 24 47  
B0 24 46  
B0 24 45  
B0 24 44  
B0 24 43  
B0 24 42  
B0 24 41  
B0 24 40  
B0 24 3F  
B0 24 3E  
B0 24 3D  
B0 24 3C  
B0 24 3B  
B0 24 3A  
B0 24 39  
B0 24 38  
B0 24 37  
B0 24 36  
B0 24 35  
B0 24 34  
B0 24 33  
B0 24 32  
B0 24 31  
B0 24 30  
B0 24 2F  
B0 24 2E  
B0 24 2D  
B0 24 2C  
B0 24 2B  
B0 24 2A  
B0 24 29  
B0 24 28  
B0 24 27  
B0 24 26  
B0 24 25  
B0 24 24  
B0 24 23  
B0 24 22  
B0 24 21  
B0 24 20  
B0 24 1F  
B0 24 1E  
B0 24 1D  
B0 24 1C  
B0 24 1B  
B0 24 1A  
B0 24 19  
B0 24 18  
B0 24 17  
B0 24 16  
B0 24 15  
B0 24 14  
B0 24 13  
B0 24 12  
B0 24 11  
B0 24 10  
B0 24 0F  
B0 24 0E  
B0 24 0D  
B0 24 0C  
B0 24 0B  
B0 24 0A  
B0 24 09  
B0 24 08  
B0 24 07  
B0 24 06  
B0 24 05  
B0 24 04  
B0 24 03  
B0 24 02  
B0 24 01  
B0 24 00

B0 34 00

B0 24 00  
B0 24 01  
B0 24 02  
B0 24 03  
B0 24 04  
B0 24 05  
B0 24 06  
B0 24 07  
B0 24 08  
B0 24 09  
B0 24 0A  
B0 24 0B  
B0 24 0C  
B0 24 0D  
B0 24 0E  
B0 24 0F  
B0 24 10  
B0 24 11  
B0 24 12  
B0 24 13  
B0 24 14  
B0 24 15  
B0 24 16  
B0 24 17  
B0 24 18  
B0 24 19  
B0 24 1A  
B0 24 1B  
B0 24 1C  
B0 24 1D  
B0 24 1E  
B0 24 1F  
B0 24 20  
B0 24 21  
B0 24 22  
B0 24 23  
B0 24 24  
B0 24 25  
B0 24 26  
B0 24 27  
B0 24 28  
B0 24 29  
B0 24 2A  
B0 24 2B  
B0 24 2C  
B0 24 2D  
B0 24 2E  
B0 24 2F  
B0 24 30  
B0 24 31  
B0 24 32  
B0 24 33  
B0 24 34  
B0 24 35  
B0 24 36  
B0 24 37  
B0 24 38  
B0 24 39  
B0 24 3A  
B0 24 3B  
B0 24 3C  
B0 24 3D  
B0 24 3E  
B0 24 3F  
B0 24 40  
B0 24 41  
B0 24 42  
B0 24 43  
B0 24 44  
B0 24 45  
B0 24 46  
B0 24 47  
B0 24 48  
B0 24 49  
B0 24 4A  
B0 24 4B  
B0 24 4C  
B0 24 4D  
B0 24 4E  
B0 24 4F  
B0 24 50  
B0 24 51  
B0 24 52  
B0 24 53  
B0 24 54  
B0 24 55  
B0 24 56  
B0 24 57  
B0 24 58  
B0 24 59  
B0 24 5A  
B0 24 5B  
B0 24 5C  
B0 24 5D  
B0 24 5E  
B0 24 5F  
B0 24 60  
B0 24 61  
B0 24 62  
B0 24 63  
B0 24 64  
B0 24 65  
B0 24 66  
B0 24 67  
B0 24 68  
B0 24 69  
B0 24 6A  
B0 24 6B  
B0 24 6C  
B0 24 6D  
B0 24 6E  
B0 24 6F  
B0 24 70  
B0 24 71  
B0 24 72  
B0 24 73  
B0 24 74  
B0 24 75  
B0 24 76  
B0 24 77  
B0 24 78  
B0 24 79  
B0 24 7A  
B0 24 7B  
B0 24 7C  
B0 24 7D  
B0 24 7E  
B0 24 7F

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [July 14, 2025, 5:35pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/4 "2025-07-14T17:35:31Z")

</div>

yep, should be doable. If you can describe the behaviour as a formula for all values of a virtual control, it can be programmed

---

<div class="post-metadata">

**Author:** ![Electrolove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/electrolove/32/2440_2.png) [@Electrolove](https://forum.electra.one/u/Electrolove)\
**Post date:** [July 15, 2025, 9:15am UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/5 "2025-07-15T09:15:55Z")

</div>

**I need help from the forum to do this. I’ve tried a few different things but haven’t succeeded.**

I need a control (virtual) that sends out MIDI (from the list at the bottom of this message) when I turn the control (pot) clockwise.

When I turn it anti-clockwise, it should send out MIDI in reverse order, so start with the last MIDI message in the list. The list is 257 MIDI messages long. So when I turn the pot clockwize it should send out 257 MIDI messages. And 257 MIDI messages when you turn it back anti-clockwize.

I don’t really know how to approach the problem.

B0 24 7F  
B0 24 7E  
B0 24 7D  
B0 24 7C  
B0 24 7B  
B0 24 7A  
B0 24 79  
B0 24 78  
B0 24 77  
B0 24 76  
B0 24 75  
B0 24 74  
B0 24 73  
B0 24 72  
B0 24 71  
B0 24 70  
B0 24 6F  
B0 24 6E  
B0 24 6D  
B0 24 6C  
B0 24 6B  
B0 24 6A  
B0 24 69  
B0 24 68  
B0 24 67  
B0 24 66  
B0 24 65  
B0 24 64  
B0 24 63  
B0 24 62  
B0 24 61  
B0 24 60  
B0 24 5F  
B0 24 5E  
B0 24 5D  
B0 24 5C  
B0 24 5B  
B0 24 5A  
B0 24 59  
B0 24 58  
B0 24 57  
B0 24 56  
B0 24 55  
B0 24 54  
B0 24 53  
B0 24 52  
B0 24 51  
B0 24 50  
B0 24 4F  
B0 24 4E  
B0 24 4D  
B0 24 4C  
B0 24 4B  
B0 24 4A  
B0 24 49  
B0 24 48  
B0 24 47  
B0 24 46  
B0 24 45  
B0 24 44  
B0 24 43  
B0 24 42  
B0 24 41  
B0 24 40  
B0 24 3F  
B0 24 3E  
B0 24 3D  
B0 24 3C  
B0 24 3B  
B0 24 3A  
B0 24 39  
B0 24 38  
B0 24 37  
B0 24 36  
B0 24 35  
B0 24 34  
B0 24 33  
B0 24 32  
B0 24 31  
B0 24 30  
B0 24 2F  
B0 24 2E  
B0 24 2D  
B0 24 2C  
B0 24 2B  
B0 24 2A  
B0 24 29  
B0 24 28  
B0 24 27  
B0 24 26  
B0 24 25  
B0 24 24  
B0 24 23  
B0 24 22  
B0 24 21  
B0 24 20  
B0 24 1F  
B0 24 1E  
B0 24 1D  
B0 24 1C  
B0 24 1B  
B0 24 1A  
B0 24 19  
B0 24 18  
B0 24 17  
B0 24 16  
B0 24 15  
B0 24 14  
B0 24 13  
B0 24 12  
B0 24 11  
B0 24 10  
B0 24 0F  
B0 24 0E  
B0 24 0D  
B0 24 0C  
B0 24 0B  
B0 24 0A  
B0 24 09  
B0 24 08  
B0 24 07  
B0 24 06  
B0 24 05  
B0 24 04  
B0 24 03  
B0 24 02  
B0 24 01  
B0 24 00

B0 34 00 This is part of the problem (Listen now Modal Electronics 😀)

B0 24 00  
B0 24 01  
B0 24 02  
B0 24 03  
B0 24 04  
B0 24 05  
B0 24 06  
B0 24 07  
B0 24 08  
B0 24 09  
B0 24 0A  
B0 24 0B  
B0 24 0C  
B0 24 0D  
B0 24 0E  
B0 24 0F  
B0 24 10  
B0 24 11  
B0 24 12  
B0 24 13  
B0 24 14  
B0 24 15  
B0 24 16  
B0 24 17  
B0 24 18  
B0 24 19  
B0 24 1A  
B0 24 1B  
B0 24 1C  
B0 24 1D  
B0 24 1E  
B0 24 1F  
B0 24 20  
B0 24 21  
B0 24 22  
B0 24 23  
B0 24 24  
B0 24 25  
B0 24 26  
B0 24 27  
B0 24 28  
B0 24 29  
B0 24 2A  
B0 24 2B  
B0 24 2C  
B0 24 2D  
B0 24 2E  
B0 24 2F  
B0 24 30  
B0 24 31  
B0 24 32  
B0 24 33  
B0 24 34  
B0 24 35  
B0 24 36  
B0 24 37  
B0 24 38  
B0 24 39  
B0 24 3A  
B0 24 3B  
B0 24 3C  
B0 24 3D  
B0 24 3E  
B0 24 3F  
B0 24 40  
B0 24 41  
B0 24 42  
B0 24 43  
B0 24 44  
B0 24 45  
B0 24 46  
B0 24 47  
B0 24 48  
B0 24 49  
B0 24 4A  
B0 24 4B  
B0 24 4C  
B0 24 4D  
B0 24 4E  
B0 24 4F  
B0 24 50  
B0 24 51  
B0 24 52  
B0 24 53  
B0 24 54  
B0 24 55  
B0 24 56  
B0 24 57  
B0 24 58  
B0 24 59  
B0 24 5A  
B0 24 5B  
B0 24 5C  
B0 24 5D  
B0 24 5E  
B0 24 5F  
B0 24 60  
B0 24 61  
B0 24 62  
B0 24 63  
B0 24 64  
B0 24 65  
B0 24 66  
B0 24 67  
B0 24 68  
B0 24 69  
B0 24 6A  
B0 24 6B  
B0 24 6C  
B0 24 6D  
B0 24 6E  
B0 24 6F  
B0 24 70  
B0 24 71  
B0 24 72  
B0 24 73  
B0 24 74  
B0 24 75  
B0 24 76  
B0 24 77  
B0 24 78  
B0 24 79  
B0 24 7A  
B0 24 7B  
B0 24 7C  
B0 24 7D  
B0 24 7E  
B0 24 7F

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [July 15, 2025, 11:09am UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/6 "2025-07-15T11:09:49Z")

</div>

I don’t follow. Are you now saying that the same position of a control is always transmitting a different value, depending whether you are turning clockwise or counterclockwise?

Because to me it looks like the left value is always B0 24 7F , the middle value is always B0 24 40 and the right value is B0 24 00. For some reason Modal also uses B0 34 00 as an alternative for B0 24 00.

Providing a list of only results, doesn’t allow me to understand what the problem is. It’s just a list.  
Try making a formula where you start from a E1 fader control value and convert it into the result you want to send to Modal.

---

<div class="post-metadata">

**Author:** ![Electrolove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/electrolove/32/2440_2.png) [@Electrolove](https://forum.electra.one/u/Electrolove)\
**Post date:** [July 15, 2025, 1:48pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/7 "2025-07-15T13:48:04Z")

</div>

Yes, the same MIDI message behaves differently depending on whether I turn the knob clockwise or counterclockwise. I’m not sure what the team at Modal was thinking when they designed it that way. It seems that the message `B0 34 00` changes its effect—from decreasing to non-decreasing—depending on the direction you approached it from.

I hope I’m wrong.

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [July 15, 2025, 10:00pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/8 "2025-07-15T22:00:56Z")

</div>

i don’t see the difficulty, sorry. From what I understand:  
If you turn clockwise, thus from left to right, it starts at B0 24 7F and ends on B0 24 00.  
Thus left = B0 24 7F and right is B0 24 00.

If you turn counterclockwise, thus from right to left, it starts at B0 24 00 and ends on B0 24 7F.  
Thus again left = B0 24 7F and right is B0 24 00.

Seems pretty straight forward: you have a control that goes from left to right : x = 0..255  
All you need to send out is “B0 24 (255-x)” as a sysEx string.

---

<div class="post-metadata">

**Author:** ![Electrolove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/electrolove/32/2440_2.png) [@Electrolove](https://forum.electra.one/u/Electrolove)\
**Post date:** [July 17, 2025, 4:32pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/9 "2025-07-17T16:32:46Z")

</div>

Hard to explain. I’ve been sitting all day testing different things. This is what I came up with. LFO Rate has two different modes. You can switch between modes with B0 34 00 and a special value. But there are two LFOs and Modal has been so stupid that B0 34 00 is the same for both LFOs and the value is also the same so my conclusion is that you can’t make a preset for it. Or at least very difficult.

Yes it starts with B0 24 00 but when you have turned the pot so you have B0 24 7F it sends out B0 34 00 but if you continue to turn in the same direction (clockwize) you have 128 more values from B0 24 7F to B0 24 00. Same the other way around so you have 257 MIDI messages when you turn the pot clockwize. And 257 messages of you turn it counterclockwise.

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [July 17, 2025, 7:53pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/10 "2025-07-17T19:53:33Z")

</div>

If that is indeed the case, I don’t see a viable solution. You could figure out a temporary solution within one patch, but since you get a B0 34 00 to switch between 2 modes, regardless of direction, there is no way to tell in what mode a newly selected patch would be. What you should try out is one control of 128 values B0 24 00- 7F and one temporary toggle just sending B0 34 00.

---

<div class="post-metadata">

**Author:** ![Electrolove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/electrolove/32/2440_2.png) [@Electrolove](https://forum.electra.one/u/Electrolove)\
**Post date:** [July 18, 2025, 12:04pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/11 "2025-07-18T12:04:20Z")

</div>

I think I finally got it. Now I can control lfo 1 and lfo 2 rate/clock-div as I want.

 ![Screenshot 2025-07-18 at 14.06.08](https://europe1.discourse-cdn.com/flex017/uploads/electraone/original/2X/b/bd96690b95b8358eb6003298eba159472e0966d7.png)

It would have been great if Modal Electronics had documented this.

---

<div class="post-metadata">

**Author:** ![Electrolove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/electrolove/32/2440_2.png) [@Electrolove](https://forum.electra.one/u/Electrolove)\
**Post date:** [July 19, 2025, 7:51am UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/12 "2025-07-19T07:51:14Z")

</div>

Here is the logic to control lfo 1 rate/clock-div and lfo 2 rate/clock-div on Cobalt5S with virtual controls. I hope someone finds some benefit from my reverse engineering. The two parameters share the same CC 52 but with different values. I’m sure this would never have been possible with any other MIDI controller. Thank you Martin for building the best. The code could probably be written smarter but I’m glad it works at all 😜

> function lfo1\_Sync(valueObject, value)
> 
> ```
> value2 = controls.get(11):getValue():getValue()
> 
> if value == 0 and value2 == 0 then -- lfo 1 rate, lfo 2 rate
> midi.sendControlChange(PORT_1, 1, 52, 0)
> -- 0
> end
> 
> if value == 1 and value2 == 0 then -- lfo 1 clock-div, lfo 2 rate
> midi.sendControlChange(PORT_1, 1, 52, 1)
> -- 1
> end
> 
> if value == 0 and value2 == 1 then -- lfo 1 rate, lfo 2 clock-div
> midi.sendControlChange(PORT_1, 1, 52, 2)
> -- 2
> end
> 
> if value == 1 and value2 == 1 then -- lfo 1 clock-div, lfo 2 clock-div
> midi.sendControlChange(PORT_1, 1, 52, 3)
> -- 3
> end
> 
> ```
> 
> end
> 
> function lfo2\_Sync(valueObject, value)
> 
> ```
> value1 = controls.get(3):getValue():getValue()
> 
> if value == 0 and value1 == 0 then -- lfo 2 rate, lfo 1 rate
> midi.sendControlChange(PORT_1, 1, 52, 0)
> -- 0
> end
> 
> if value == 1 and value1 == 0 then -- lfo 2 clock-div, lfo 1 rate
> midi.sendControlChange(PORT_1, 1, 52, 2)
> -- 2
> end
> 
> if value == 0 and value1 == 1 then -- lfo 2 rate, lfo 1 clock-div
> midi.sendControlChange(PORT_1, 1, 52, 1)
> -- 1
> end
> 
> if value == 1 and value1 == 1 then -- lfo 2 clock-div, lfo 1 clock-div
> midi.sendControlChange(PORT_1, 1, 52, 3)
> -- 3
> end
> 
> ```
> 
> end

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [July 19, 2025, 12:33pm UTC](https://forum.electra.one/t/can-someone-please-show-me-how-to-use-virtual-as-a-message-type/3808/13 "2025-07-19T12:33:14Z")

</div>

So actually the control is to be split in two ?  
Changing from sync to non-sync uses the last significant bit of the CC, and the values themselves use all other bits of the same CC? That’s indeed a first!  
Glad you found it.

And I agee with you: the E1 is the only controller so far that can deal with all these creative quirks instrument makers seem to enjoy.
