FEATURE REQUEST: Hologram Microcosm Preset Scroll / Toggle

So I will admit this is a unique use-case of the message-scroll functionality however, I am having trouble program up something that I feel the pedal should be able to manage. Perhaps I just don’t understand how this could be achieved, however here is the situation:

The Hologram Microcosm is a MIDI capable pedal on my board with a suite of awesome effects, 11 effects in total, each with 4 variants (A, B, C, D) along with 16 user savable presets. I would like to create a bank that can scroll through these effects in an intuitive way.

The goal is to have the MC6 setup so that each effect is tied to a preset in the bank (MOSAIC, PATTERN, SEQ, ARP, etc.) where when you tap the preset switch, it will activate the preset and every consecutive press will cycle through the four variants of that effect. Seems like a perfect candidate for the Message Scroll feature right??

Well here’s the catch… I want it to be right where I left off each time I use any given switch, meaning that if I engage the MOSAIC A effect and then engage the PATTERN C effect, I want the next time I engage the MOSAIC switch, it will engage the MOSAIC A effect. And in turn if I engage ARP B, I want to be able to go back to PATTERN C in one click or MOSAIC A in one press of a switch without any of those other presets cycling the next time I press their switches. By default, Message Scroll will cycle through the presets with every press…

My current workaround is that I added messages to engage the same preset pressed 4 times so that it cycles through completely with every press, which in a sense leaves the preset exactly where you left it every time you disengage and re-engage that preset.

The problem with this current setup is that for some reason on a fresh boot of the MC6, the very first time I engage each switch it starts on MOSAIC D for example rather than MOSAIC A, however from that point it operates exactly as I’d like.

Am I missing something with how I should program each of these switches for it to work properly? This is my first MIDI controller and I feel that being able to cycle through presets on a pedal with the ability to go back and forth between them as you left them would be a common request. If not, no big deal but I would be very very much appreciated if someone had an idea on how to make this use-case work.

Thanks for anyone who responds in advance!!

Interesting use case, I just ordered the Chroma Console to add to one of my boards. Will be following this to see how it goes. When I read this the first thing I thought of was to create a preset and just call that preset with a PC message, but I can see where you might want to step through each effect and experiment, but I would NOT want to do that in a live situation.

1 Like

yeah this is definitely more for a studio experimentation setup. I also just got the Chroma Console and wow what an awesome piece of gear for sound design!

Did you see Emily’s video using it on her harp? That clip convinced me I need this in my arsenal! and I play bass guitar. LOL

1 Like

hahaha I did and have just been having a blast with it though I’ll admit I’ve barely scratched the surface of what it’s capable of

Hi,
you could use scroll counters instead of message scroll. Scroll counters are global and keep track of any pc or cc messages you’ve send, thus allowing you to go back to where you left off.

huh I could give that a shot, however I was trying not to use those as the Microcosm has 11 effects and setting a scroll counter for each of those user presets seems like a waste to assign 11 of the available 16 scroll counters to work with one pedal. That said perhaps something with that could work…

I did try working with scroll counters for a bit where I just left the range as is (0-127) and set it manually with the preset, however I had a hard time configuring it to have the same functionality as the message scroll feature. For example, how would the pedal know it’s the 4th iteration of the scroll counter and that it should go back to the beginning if you’re setting it manually? Overall a bit of a tricky problem for this use-case…

Would be amazing if the MC6 had simple logic available for the user to configure akin to logic you’d see in basic programming languages. Things like “if”, “else”, “for”, “while”

Then again perhaps something like this can be achieved with what’s already in the box…

Here is a working example in Python that I just wrote up:

 0  class preset:
 1     def __init__(self):
 2         self.preset_engaged = False
 3         self.current_preset = 1
 4         self.consecutive_presses = 0
 5
 6     def press_switch(self):
 7         self.consecutive_presses += 1
 8         if self.preset_engaged == False:
 9             self.preset_engaged = True
10             self.consecutive_presses = 0
11             return self.current_preset
12         elif self.consecutive_presses >= 1 and self.consecutive_presses < 4:
13             self.current_preset += 1
14             return self.current_preset
15         elif self.consecutive_presses == 4:
16             self.current_preset = 1
17             self.consecutive_presses = 0
18             return self.current_preset
19
20     def disengage(self):
21         self.preset_engaged = False

Here is an example of how this would work:

>>> MOSAIC = preset()
>>> PATTERN = preset()
>>> MOSAIC.press_switch()
1
>>> MOSAIC.press_switch()
2
>>> MOSAIC.press_switch()
3
>>> MOSAIC.press_switch()
4
>>> MOSAIC.disengage()
>>> PATTERN.press_switch()
1
>>> PATTERN.press_switch()
2
>>> PATTERN.disengage()
>>> MOSAIC.press_switch()
4

@james
(I hope you don’t mind me tagging you. Only tagging you because I’ve now looked into this quite a bit and I feel I have some honest suggestions for new features in a future firmware update. I can also send this directly to you via email if that’d be more ideal for ticketing)

Summary

So I fully committed to attempting to integrate this use-case utilizing Scroll Counters and I have good and bad news. The good news is that the Global Scroll Counters worked at not only preserving the state but also cycling through akin to Message Scroll just like I intended. The bad news is that I now have only one available Scroll Counter so this is not a permanent solution…

The Good

In order to get this to work exactly as I’d like I had to name the preset to MOSAIC A (will be explained later) as well as use a Scroll Message Type in order for the MC6 to reflect the name of the current preset. I also set the Bank to Clear All Preset Toggles.

Message Summary with triggers (using MOSAIC as an example):

On First Engage (send only this):

  • Send the current Scroll Counter with no changes
  • Set Toggle

Press

  • Iterate and send the current Scroll Counter

Release

  • Rename preset to MOSAIC B
  • Rename preset to MOSAIC C
  • Rename preset to MOSAIC D
  • Rename preset to MOSAIC A

The Bad

Now this worked as intended with some setbacks…

  1. ) In order to integrate this with each of the 11 effects and 4 user preset banks, it took 15 of the 16 total Scroll Counters.

  2. ) On Bank Exit, the preset names go back to their default.

  3. ) Now you may be wondering why the Release order starts at B and continues, while the name starts at A… Well the reasoning is behind the use of On First Engage (send only this). While this will send the correct message to start, the Release messages will be behind by one press each time. The work around was to have the preset named after the first preset and change the order. Perhaps there is a better way to achieve this functionality??

Feature Improvements/Suggestions

  1. ) I would love it if the Message Scroll feature had some added functionality like a Latch Mode where the Message Scroll would Latch On Disengage and Un-Latch on Engage providing the same functionality where the message scroll only iterates when Un-Latched. This would make this use-case possible with PC values that aren’t iterable. Ex. PC#20, PC#43, PC#51 vs PC#20, PC#21, PC#22. In the current state of the firmware, from what I’ve seen this would not be possible.

  2. ) It would be great if there was a Bank setting that retained preset renames on bank exit. I understand the desire to have the renames reset on bank exit, however if the user utilizes a global Scroll Counter to set the PC and wants the controller to reflect that change it will get messed up On Bank Exit.

@Brandon Bumping this just in case it has gotten buried. I also sent an email to help@morningstarfx.com and haven’t heard anything. Would really appreciate any suggestions or comments based off of my feature improvements/suggestions! :slightly_smiling_face:

A huge vote for this one. I have a Meris Hedra in which I have an entire Bank dedicated to it. A few presets are set to scroll through keys and other presets are set to scroll through scales. All presets include the preset rename message type.

It would be great adding a feature that would make the preset rename and it’s toggle state remain the same when exiting the bank and then returning to it. That way I can see where it was last left at before I commit to engaging the (ML10X) loop the pedal is in.

I see more use cases for having the preset rename retain its name/state than to not.

1 Like

Love this application!! Really emphasizes how this feature could be really useful for not just experimental playing but live preset switching as well! :heart:

@james I’ve been periodically checking this forum and haven’t heard anything back yet (or via email) about this issue. I just saw in another forum that you claimed a firmware release is scheduled to be dropped soon (perhaps even tomorrow). I just was curious if the firmware release will contain anything to address the two feature requests detailed in this post:

  • maintaining preset renames upon bank exit
  • message scroll latch mode
2 Likes

So I finally figured out a solution and it involves going back to my original approach of programming this. As described in this thread, there have been two primary approaches to solving this problem each with their downfalls.

2nd Approach Summary & Drawbacks

The second and most recent approach as described above has the downfall of not maintaining preset renames upon bank exit which makes it difficult to use in the scope of having multiple pages being used in one session along with multiple MIDI capable devices. The other drawback is that this approach requires the utilizing 15 of the 16 total Scroll Counters, making future use of the Scroll Counters difficult and restricted.

1st Approach Summary & Drawbacks

My initial approach utilized the PC Message Scroll feature to scroll through the required PC messages with one major caveat…

In order to achieve this, I have to add several messages to each preset that are triggered with the action On First Engage (send only this). These messages will Engage the current preset 4 times to cycle through each of the parameters within the message scroll which in turn will leave the message scroll exactly where I left it each time.

The Drawback

The problem I found here is that messages that trigger with the action On First Engage (send only this) don’t work as intended fresh off of a reboot and will consistently miss one of the messages leaving the first press of a switch, in this specific use case, at the fourth PC to start rather than the first PC

The Solution

After a lot of time thinking on both of these approaches and their drawbacks, the solution finally dawned on me… I started looking into the Bank Settings and saw a message that triggers with the action On Enter Bank - Execute Only Once. To solve this problem, I simply put 15 messages in the Bank Settings that trigger with that action to Engage each of the presets that I want engaged and then voila it worked!!

Now not only does each switch behave exactly as intended giving me the ability to switch between each of the varying effects on the Microcosm at will and maintain my place but it also is persistent on Bank Exits and since I’m using %G to track the PC change, the messages on the MC6’s screen are persistent as well.

This took a lot of trial and error and many different approaches. Now that it works as intended, it is great fun and I personally could see this being a great approach to many more applications of cycling uniquely set Program Changes with various MIDI capable pedals. Thanks for everyone’s contributions and I hope you all could find this helpful!!

So I wish I did this sooner, but for anyone interested in trying out this bank configuration I am going to post it here!! Took a lot of trial and error as you can see above, but it works excellently!! Let me know if anyone finds this interesting or has any questions!

MC6 PRO_Bank_3_MICROCOSM.json (89.8 KB)

P.S. I also created another bank for Microcosm extensions such as managing the looper and whatnot :wink:

MC6 PRO_Bank_4_MICROCOSM EXT.json (89.8 KB)