I’m having troubles to understand what is the meaning that you give to a Virtual Channel, may be is something similar to what I’m doing.
I didn’t want to introduce VC to users since the term might sound confusing, for me the user works with “string of lights” and objects which have channels then later at some stage the user maps this to “physical channels”; in the current version of Prancer every sequence has a mapping from channels to Physical Channels (LE channel, SSR channels, etc).
The mapping can be redone at any time just double clicking on the object and map to a new Physical Channel(s).
But I found out there was a problem when I changed the location of some physical LE’s or starting address where I had to go to every sequence and update the mapping from the channel to the physical channel in every sequence.
So in my case there is already a work in progress where I do not store anymore the mapping for the channels on the sequences files (.prancer), instead every sequence .prancer uses a mapping file .prcmap where it stores the channels mapped to physical channels.
So the mapping editor manage how the channels will be mapped and updating the mapping automatically updates all the sequences, it divide and conquer the problem in two, create sequences independently from the hardware and then later the user works on the mapping, I think makes the user life easier.
If I understand properly what you mean the concept of virtual channels is similar, where you have VC which the users uses and map to the devices channels.
But thinking as a user, he’s not working in the screen with virtual channels, the object like a minitree may contain 3 real channels RGB and they are not virtual since they user can plug them and make them red, green or blue, so in my case I don’t have VC, I let the user work with “channels” and then later in the game when the user want to associate this to the physical devices then I expose the mapping from channels to physical channels.
Let me know if this makes sense to you.
Cas.