ModScripter (and Modulator) Requests - Physics scripting environments + other

Such an amazing feature! Explore the presets if you haven’t. I love that we have a scripting environment in Cubase now. I think a lot of people haven’t clued into this module yet and have overlooked it.

I hope to see more development here, javascript can be pretty flexible:

  • Right now from what I can tell, we only have line/envelope based modulation.
    • I’d like to see XY 2d and XYZ 3d environments.
      • I’d like these environments to have some new control/trigger output factors
        • XYZ Positional
        • Wall Collision
        • Wall properties (surface type, surface shape)
        • Entity Collision
        • Entity Rotation, Face Direction, Entity to entity/object sight line trigger.
        • Entity Speed
        • Entity properties - size, shape, colour.
        • Entity Division/Duplication/Addition/Hard Subtraction/Fade-Out Subtraction
        • Multiple Entities in an Environment
        • Gravity
        • Magnetism
      • This would likely require these environment modules to have a slightly revised ‘Add Connection’ section, to allow for both entity input connection and output entity connection.
    • The purpose of these additions, is to be able to create physics based modulators.
    • Another purpose could be, to design modulators that are more suitable for Atmos/Surround Sound/etc.

An example would be, an XY environment where balls bounce around, duplicate if they collide with one another, 3 walls are reflective/bounce surfaces, one has a void in which entities are deleted.

A simple example, would be a user being able to mouse click a ball in an XY/XYZ environment and manually throw it around.

Another example is, each wall could be routed to a separate randomized step modulator that switches a filter type on 4 different filter inserts each time a wall is hit by an entity.


Project Global Modulators:
-There’s no cross-track modulation routing.
-It could be cool for example, to have a global modulation chain that is simultaneously controlling a Synth, an audio track layer, as well as multiple separate FX channels.

Global/Project Modulators (Currently, Modulators don’t have cross track routing?) - Cubase - Steinberg Forums


Bus Mult Modulator module:

A module that can receive one connection and split it to 2/4/8 destinations with individual -/+ offsets / polarity.


A few other UI/Useability requests:

  • Have the Load Preset icon right on the UI header instead of a menu.
  • The ModScripter module, if you lose focus of the Edit Script window, I can’t figure out how to get it back. I have to close the Script Window and reopen.

Already posted:

Allow the user to assign 1 “Modulator Quick Control” to the leftzone modulator section.
Modulators - Allow 1 Control to be chosen to be accessible in Left Zone (Like Quick Controls) - Cubase - Steinberg Forums

Colour Coding of linked Modulator controls
Unfolded View of Connections
(patchcables in full view if you want to catch peoples attention more)
Modulators - Unfolded View + Patch Cables/Colour Coding + Free Organize in Full Window :worm: - Cubase - Steinberg Forums


Semi-related feature request that incorporates modulators into a Rack Instruments reinvention akin to Reaktor:

Repurposing Rack Instruments+combining w/ Modulators = Reaktor like playground :playground_slide: - Cubase - Steinberg Forums

that’s it for now!

fyi, for those that made it this far… ChatGPT can do some scripting for you…

Got a couple more:

  • Let us save Modulator Chain Presets
  • Let us export/tell us how we can, create our own saveable modules instead of using presets from the ModScripter module.
    • It would be much easier and nicer to select our presets from the actual module selection.
    • And we could design our own preset UIs?

UI/UX

Need .01 macro fine adjustment on settings via a key-modifier:

UI/UX

There’s no mouse over text parameter name reveal for names cut short:

MIDI

There’s been previous discussion about controlling MIDI/VSTis, and the explanation on the absence of such control is due to the fact the modulator system is Audio Data Rate/Project Samplerate sync’d.

Potentially it could be explored to have a audio->MIDI down-conversion process, whereby there is some sort of data rate/slew rate limiter.

If a user patches a Moduloator connection output to a MIDI parameter, that single output is doing conversion… Perhaps a resolution slider could given to the user on MIDI Connection outputs…

Or perhaps no conversion is necessary, and better performance would be just creating a background mirrored duplicate of the modulator but is MIDI data rate based.

Also MIDI 2.0 will have a higher resolution, so maybe that is already being considered.

Or even some specific MIDI modules that can receive signal from a modulator that is creating a gate for example, and create a MIDI gate.


Little UI inconsistency, not a big deal:

Right click modulator window refresh speed menu works in lower-zone, but not modulator pop-out window:

Exponential/Logarithmic Connection Output modes

I don’t even know if this makes sense, but I’m suggesting it.

I uploaded a script in the script topic that tries to introduce some “curving”. Maybe there is something for you. Feel free to improve upon it.

Thanks I’ll take a look, although my FR is to do with curved offsets/velocity per connection destination.

Admittedly, it’s a bit of an ‘out there’ request - although, not too out there for anyone who has worked with modular synths/MIDI programming.

It theoretically allows 1 control to get sent in two different ways. If you have two connections sent to 100%, they both reach the value at the same time but with different acceleration arcs.

But I’m not even sure it would work well or make sense in this context to be honest.


I’ve got some more GUI feedback,

minimizing the ‘Add Connection’ blank slots. They take up a lot of screen space.

edit

That was exactly the motivation for the script. It would be “inserted” between the modulator and the target. here is the link:

That is something that the ModScripter is really useful for: inserting it in order to change the modulation value in a specific way. Several scripts and presets (like “Intensity”) are made for this.

Yeah for sure, I’ve got a few scripts in use. It’s a very flexible system - but only 8 modulators per track, and no cross-track-communication. Obviously a ton can still be accomplished with as is - the provided amenities already have essentially an infinite depth… But sometimes it’s the simpler things you want to do 8x of.

I think my idea of having a new module that is a feature expanded Mult might be better for incorporating these types of acceleration/velocity controls:

  • 1 signal → 8 Mult Splitter, each with
    • individual offsets
    • individual polarity
    • Variable Linear/Log/Exponential shape
    • depending on what other features could be fit… compression/expansion, limiter, etc.
    • No Connection Panel needed as the connections are integrated into the module.

edit

here’s a Eurorack VCA that does this:

Intellijel Quad VCA - VCAs are fun!

Modulator Wrapper

Maybe it’s possible to have a Multi-Modulator wrapper - Multiple Modulators in one Module.

Sort of the opposite of the Mult module.


UI Problem:

Not sure if this is something on my end or not, but the resize of the External Modulator Window seems off:

edit** restarting Cubase fixed this for me.**

Improving Preset System:

This is something I’ve talked about in other aspects of the program, with how preset menus function in a non-user friendly way.

In short form, if a user wants a menu to stay open - they should always have that ability. With the exception of side panel browsers (which imo, should become the standard for all plugins) currently, a user opens a preset load menu, loads a preset, go’s to adjust a parameter and the menu closes.

(long form thread on Preset Menu system:
IMPROVE PRESETS + MENUS - static pop-out browser instead of drop-down, save/replace, more - Cubase - Steinberg Forums )

At the very least, in this situation - there should be an option in the load window to hold open (and a default preference in user preferences for all load preset menus)

But also, perhaps it would be possible to fit a condensed pop-out browser in the Modulator Section itself":

ModScripter UI Scriptability

I noticed some of the stock modulators come in different sizes.

It would be great if ModScripter either auto-resized based on number of controls user adds,

and also a ‘Wavescope Minimum Size’, which auto-repositions the wavescope based on how much control space is being taken up… ie if someone sets the Wavescope minimum size to it’s medium… If someone adds 4 controls to make 8, instead of the Wavescope shrinking, it just enlarges the entire ModScript UI to allow the Wavescope to sit next to the knobs instead of above.

This also grants the user more space for more controls (at least 12).

The power of ModScripter is somewhat limited by it’s inability to resize based on use design.

Modulator Bypass doesn’t master-bypass the connection outputs, thus stull holds onto destination end-point controls:

Modulators Don’t Save Destinations with Track Preset

Also, I think Destination settings should be saved with Modulator presets, as sometimes the Destination parameters (uni/bi, -/+ amount, etc) are part of the users effect design. The Destination name would simply read ‘missing’ in red, and then the user would have to make destination assignments.

There are some interesting js physics engines out there:

Matter.js - a 2D rigid body JavaScript physics engine · code by @liabru


Rapier
About Rapier | Rapier

Modulator Management/Integration/Protocol (Currently there is no way to save complex setups) - Cubase - Steinberg Forums