[Beta feature] CC Waveform Generator (New and improved)

We overhauled the CC Waveform Generator that we introduced in v3.7. In the v3.8 firmware, we added 4 CC Waveform Generator engines. That means that at any one time, you can have up to 4 generators churning out CC messages for you in various waveforms.

On a global level, you can specify the waveform, and min/max CC value. These are the options available in the Controller Settings.

On the preset level, you can specify whether to start/stop any of these engines, set the interval (in milliseconds) which is the length of 1 cycle, the CC number, Channel and whether to run the waveform once only, or perpetually.

We just finished this up for the MC8, and will update the code for the MC6MKII and MC3 before releasing this in beta and the staging editor.

1 Like

Would be cool if you released the video with the waveform generator explanation because I cannot understand the way it works. Why minimum CC value is 4? And for example parameters are changing not contstantly but step by step in pitch shifter so if you want a divebomb to -1 oct, you will hear every semitone in that octave. I left the comment about that hear and on TGP but have not received any feedback, maybe this feature is not that highly demanded. I’d be glad to learn using it properly though.

thanks for the feedback! We’ll definitely add documentation to this before it makes it to a stable release (right now its still in beta).

But basically, CC waveform generators allows you to send automated CC values in various waveforms. You can specify a minimum and maximum for the values, choose a waveform shape (in the controller settings) for up to 4 engines. And then in your presets, you can select which waveform engine you want to start running, specify the cycle interval (duration in milliseconds to complete one cycle of the waveform), specify the CC number and channel you want to send to and that’s it. One it starts, you will notice that the CC messages will start sending automatically.

You’ll also have the option to program a preset to stop a specific waveform engine or all the waveform engines.

I understand what you described, thank you. But I asked more specific questions. And those are practical questions from the current firmware. I did not find the explanation anywhere. Please see pic.

Ah ok, the interval is the duration it takes for one cycle to complete. A value of 4 means 4 * 100 = 400ms. A value of 120 means 120 * 100 = 12000ms.

That interface on the editor was not well implemented - the next update will be better.

Why interval must be 5-127? Will it be possible to assign less than 5 in future update?

In the v3.8 firmware, it will be possible to have 100ms as the minimum. And then there is a “Cycle Multiplier” setting as well, which allows you to set the number of cycles in one interval. The options are x1, x2, x4 and x8. So the shortest interval you can have is 100ms / 8 =~ 12ms.

This kind of short interval is only practical for square wave.

1 Like

ah, that’s cool. Definitely worth checking it after update.

1 Like

Beta Firmware v3.8.0 Update (2020-12-04)

Upgraded the CC Waveform Generator feature. Run up to 4 Waveform engines at one go.

Waveform engine settings are in the Controller Settings.

In the CC Waveform Generator message type

  • Cycle Interval = Duration of 1 cycle in Milliseconds

  • Cycle multiplier = How many cycles in one interval

  • Once/Perpetual = Run one cycle, or run perpetually

  • Engine = Select the Waveform engine to run (in the controller settings)

We just updated this today (2020-12-04) so if you have used the 2020-12-03 firmware, please update your controller again as there are some changes made to the Waveform Generator.


Documentation for this feature will be maintained here: https://morningstarengineering.atlassian.net/wiki/spaces/MMS/pages/294289460/CC+Waveform+Generators

This is outrageously cool.

1 Like

A few questions about the Waveform Generator:

  1. Can you use your expression pedal to control the speed of the waveform?

  2. Is there any way to scroll through different subdivisions of the MIDI BPM? Perhaps just setting different Release messages to different subdivisions, then using Message Scroll?

  3. Can you have more than one CC# affected by an engine at a time? For instance, lets say I want to have CC#11 and CC#23 to be affected by Engine 1 at the same time on the same device. Is this possible?

  4. Once punching in a MIDI Tap Tempo, it seems I have to reengage the action to start the WG over again for it to respond to the new BPM. Is there any way to get it to change immediately when I tap in a new tempo?

Thanks for your help!

1 Like
  1. No, at least not at the moment. Might be quite resource intensive to update the speed constantly. We need to explore further first if there’s more request about this

  2. You can scroll through different BPMs using the Message Scroll feature, but not sub-divisions. Sub-divisions should be ideally handled by the receiving device. Technically, you can just divide the BPM but since MIDI Clock is global, its going to affect all your devices receiving MIDI clock if you just want one device to change.

  3. Not at the moment - only one CC# per engine

  4. If you want that behaviour, you should just add a Start WG together with your Tap Tempo message in your preset, so each time you tap, it sets the tempo and then restarts the WG

1 Like

Thanks, James. Instead of scrolling through different CC values on one preset, I’ve decided to simply make a bank of different values that I can select, which is working much better. For the Tap Tempo, I just realized I can have more than just one universal Tap Tempo; in this instance, I can also assign Tap Tempo to these time sensitive WGs, killing two birds with one stone. Cool idea!

1 Like