Toggle Switches with Virtual Mappings

Thanks for your reply.

I never knew about virtual mapping.
Is there any documentation or tutorial on how to set up virtual mapping?

Split this topic, Dan, so others looking for similar answers might find it

There’s a (incomplete) tutorial here.
It shows how use the dialog to manually set mappings, then shows a series of “virtual mapping techniques” to try yourself

The idea is to open a file, play with it –using the MIDI monitor to check…
(no need to store and overwrite any preset)
…then adapt a given technique for your needs to append to one of your existing stored presets

In addition to that, have a look down the list of features that @Giedrius has built into 1.15; scan down the Changelog to see just how many pipes have improved.

Once you’ve got your head a bit around all these goodies you might see ways to improve your existing presets

1 Like

Cool, thanks, I’ll try to set it up


I looked at the tutorial and downloaded and looked at the patches but still can’t quite figure it out.
I couldn’t see where the toggle switch is?
I’m just trying to send a bypass on/off message from my midi pedal , lets say cc10 .
When I map with midi learn, It works good without a virtual mapping node but I can only turn it on.
Is there a way to turn bypass back off without virtual node?
If I need virtual node, can you please explain how to achieve bypass on /off through cc?
Is it all getting done in the transform node?


@dazmanian please upload your preset so we can see

Try this dazmanian_one_toggle_switch.mhp

MIDI Learn will only give you external mappings
Togging involves a modification within the patch,
so thus needs a virtual mapping,
virtual mappings are “registered” at Virtual Inputs so you need to pass the message to a Virtual out

The preset you sent me worked after I set up the right midi channel for my set up.
That’s great, thank you so much, and I figure out how to use it on my presets,
but I still don’t exactly understand how it works…
I got so many questions ,haha…
Is switching between arg 1 and arg 2 create the toggle switch or is the rescale 0-127 and 127-0 that make it a toggle switch?
If argument 1 in the transform node is controlled by virtual H, how come virtual H is after it in the chain?

1 Like

I put a version of the CC10 one-button patch and some diagram hints here in the VM tutorial in case it’s also useful to others.

Follow the flow in the diagrams while jumping between pipes to Monitor (partic the Transform & Rescale) – you won’t see the mapping messages (green in my pics) but you can see their effect.

Tell us when you get the “Aha!” moment!

Using my midi pedal on 2 pedal buttons, both have same CC10, I loaded 2 midihub presets into one and can now switch between them with toggle switch by changing the high and low settings on the rescale node on one of the pipline and this way turning bypass on and off, that’s great.

because I use other midihub presets, I want also to send midihub midi preset change on every pedal button, It will be the same midihub preset, but that seems to break the pipeline.

Is there a way to do it?

dazmanian toggle_switch Test 1.mhp (900 Bytes)

Hey @dazmanian thanks for posting the Test1 patch.

I can see your lines 1 and 2 alternate between Korg-IN & Roland-IN being enabled, but I’m not sure quite what else you want to do:

  • I can see “presets” means “banks of pipelines”
    ( “I loaded 2 midihub presets into one” )

  • but I’m not sure if…
    “send midihub midi preset change on every pedal button, It will be the same midihub preset,”
    …means you want to have other sets of pipelines in the same patch/preset file which you want to cycle between in some fashion.
    Precisely what you want will determine the logic of your switching.

Here’s an example of one set-up someone might want

  • Let’s call your current Korg - Roland lines “Bank Pair 1”
    it’s toggled by CC10 switch

  • let’s say you want a “Bank Pair 2”, toggled by a CC11 switch…
    …which switches on a different Korg line now paired with say a ZOIA line

  • and, just for fun, a ZOIA -Roland pair on CC12

Now it would make sense for your incoming CC10 to also disable all of the Bank2 & 3 lines, CC12 to disable Bank 1&3, and so on.

This is all doable, but note these additional “disable everyone else” Virtual mappings don’t need to toggle. So they go either in a new line or after the Rescale pipe

Is that the sort of thing you want?

A few notes on your Test1 patch.

  • Your second CC 10 could be also in Line1 if you have its starting value the opposite of the original
    (you could for example use Ch15&16 for “this Pair toggle” and Ch14 for “All Others Off” if you’re going that way)
  • Not sure why you have Channel Argument mapped - the virtual maps assigned won’t work if this gets changed
    Also the Toggle Transforms currently work with CC#1 → #19. Is that what you want?
  • Your Ch Remaps are eg [1:16 → 3:16]. If you want just 1 → 3 then use [1:1 → 3:3]; it’ll give no output rather than puzzling with say Ch7
  • Your later filters let everything through…

Thanks for the notes about the patch, I’ve cleaned it up a bit.
Yes, I want to cycle between other pipelines.
Can you please show me example of your approach how to toggle between more then 2 pipelines?
Lets say, the pipes korg to roland and korg to moog, are controlled separately in addition to control over roland to moog.
How do I “disable everyone else” Virtual mappings, or control the bypass to send on or off message instead of toggle.

I hope that make sense.

dazmanian toggle_switch Test 2.mhp (822 Bytes)

As hinted, all mappings can be created in one line with “Others Off” mappings after the Rescale:
VM3.2 Multiple Toggle Pairs.mhp

See notes in Description Panel and check with Monitor.

Here’s CC 10 batches…

Screen Shot 2024-05-04 at 07.14.35
…with 16,15 toggling and 14 always 127

Here’s mapping of one input pipe’s Bypass…

Screen Shot 2024-05-04 at 08.13.02
…showing it as “1st of pair” for CC10
…and “Always Bypass” for CC11

PS. Didn’t understand the Note On → Note On127 for Moog, is that like a Note_Off?

1 Like