MonsterJam - Maschine JAM controller extension

RELATED
PRODUCTS

Post

trevormeier wrote: Sun Oct 02, 2022 2:32 am I’m interested in the step sequencer once you’ve had a few turns at it. One thing I’d love is something similar to parameter locks on Elektron devices. So, holding down a step and being able to affect its microtiming, FX sends or device parameters for just that step.

Whatever you put together, I’m interested to see how it turns out. Thanks for sharing!
It's getting there, working on parameter adjustments at the moment :) You basically hold the note step, or several note steps at once (limited by fingers) and adjust parameters with the sliders.

Code: Select all

      val proxies: Vector[Option[GetSetProxy[NoteStep, Double]]] = Vector(
        // -- expressions
        P(_.velocity(), (s, v) => s.setVelocity(v)),
        P(_.releaseVelocity(), (s, v) => s.setReleaseVelocity(v)),
        P(_.velocitySpread(), (s, v) => s.setVelocitySpread(v)),
        (), // the missing note start, reserved for future when this hopefully gets added
        P(_.duration(), (s, v) => s.setDuration(v)),
        P(_.pan(), (s, v) => s.setPan(v)),
        P(_.timbre(), (s, v) => s.setTimbre(v)),
        P(_.pressure(), (s, v) => s.setPressure(v)),
        // -- operators
        P(_.chance(), (s, v) => s.setChance(v)),
        // P(_.occurrence().ordinal() / NoteOccurrence.values().length.toDouble, (s, v) => s.setOccurrence(NoteOccurrence.values.apply((v * 10).toInt))),
        // P(_.isRecurrenceEnabled(), (s, v) => s.setChance(v)),
        // P(_.recurrenceLength() / 9.0, (s, v) =>
        //   val rec = (v * 9).toInt
        //   if (rec == 0)
        //     s.setIsRecurrenceEnabled(false)
        //   else
        //     s.setIsRecurrenceEnabled(true)
        //     s.setRecurrence
        //   ),
        (), // occurence
        (), // recurrence
        (), // recurrence
        P(_.repeatCount(), (s, v) => s.setChance(v)),
      )
Reccurence/occurence is a little tricky as it doesn't cleanly map onto sliders alone, I will need some extended UI using a button row or two, for selecting steps and such.

Post

Amazing! Excited to try it when it comes out.

Post

Noticed a couple other small things

1. Is it possible to have the transpose commands just transpose selected notes (instead of the entire clip) when in the piano roll or detail editor?

2. Could you add an option for the play button to stop, rather than pause? Currently if I want to restart from the beginning, I have to press Play, Shift-Play, and then Play again. It'd be nice to be able to do this with fewer button presses!

Post

trevormeier wrote: Mon Oct 17, 2022 11:24 pm Amazing! Excited to try it when it comes out.
Here we go: https://github.com/unthingable/monster- ... ag/v8.0-b2

It's not quite "out" yet, original plan was to write some music while polishing this, but seeing how this isn't happening it's time to let someone else poke at it. Starting with the diff of the README is probably best.

Do keep in mind that not everything works yet, other things are in flux and they may be an occasional bug lurking here and there, this was a massive rewrite.

I didn't get to occurrence/recurrence stuff yet but the basic parameters are working. Particularly happy to have found a workaround for note start offsets not being accessible via the API (props to @kirkwood for prompting an idea), so now even that's possible.

Thanks for your excitement, looking forward to hearing how you find it!
Last edited by minortom on Sun Oct 23, 2022 9:44 pm, edited 1 time in total.

Post

trevormeier wrote: Fri Oct 21, 2022 2:33 pm Noticed a couple other small things

1. Is it possible to have the transpose commands just transpose selected notes (instead of the entire clip) when in the piano roll or detail editor?
Thanks for the feedback!

Do you mean the transpose you access via SHIFT+top pad row? Possible if a little tedious. How would you indicate whether you want to apply transposition to the whole clip or just selected notes?

If you're already selecting the notes in the app, hitting the arrow keys on the keyboard will probably get you the result quicker. This might be a good idea in the step sequencer, though (e.g. hold the steps, turn knob to transpose).
2. Could you add an option for the play button to stop, rather than pause? Currently if I want to restart from the beginning, I have to press Play, Shift-Play, and then Play again. It'd be nice to be able to do this with fewer button presses!
I remember fighting with this and giving up early on, but since you're mentioned it it's time to revisit, it annoys me too.

[UPD] Ok, I'm able to make play button behave like space bar, yay. Question to you: would you still want to be able to pause, and if so, how? Or put another way, there is still SHIFT+PLAY that can do something useful, what would you want it to do?

Post

For transpose, it would make sense to me to transpose the clip if a clip is selected, or transpose the notes if notes are selected.

For the play button, I don’t really use pause myself. I’m coming from Maschine so shift-play would most naturally be to restart playback from the beginning. But I suppose these different behaviours could be an option in the setup menu of the plugin?

Post

trevormeier wrote: Sun Oct 23, 2022 11:12 pm For transpose, it would make sense to me to transpose the clip if a clip is selected, or transpose the notes if notes are selected.
Do you think it might become problematic and surprising when you've forgotten that notes have been selected? Also, can't both the notes and the clip be selected simultaneously?
For the play button, I don’t really use pause myself. I’m coming from Maschine so shift-play would most naturally be to restart playback from the beginning. But I suppose these different behaviours could be an option in the setup menu of the plugin?
:tu: Maschine is what drives a lot of the inspiration behind MonsterJam, so many things about it and the Jam integration are simply excellent.

That said, the play button behavior doesn't map cleanly onto Bitwig, so we may as well redefine it completely. SHIFT+PLAY to restart doesn't make much sense if pressing PLAY in stopped state does that anyway.

Making the behavior configurable makes total sense, and I welcome any and all suggestions. My own use cases are: play from the current play marker (most always) or continue playing after pausing (sometimes).

Post

I don't think it would be problematic to transpose a clip or notes depending on what's selected - selection behaviour is usually pretty tightly tied to whatever I'm working on.

Shift-Play in Maschine is like pressing the spacebar twice in Bitwig... so it saves a press, but it's no big deal at all to me. Configurable makes sense.

I had a quick run with the beta and found a couple quick things:

Mode buttons:
- Step/Song mode buttons only toggle themselves. If I'm in step mode and press Song mode, it doesn't activate. I have to press Step again to turn off step mode to return to song mode. Pressing either button should activate that mode

Note mode:
- Note selector default starting note is on pad 5. Would make more sense on Pad 1 (4 semitones off)
- Note scene selectors - could the current page glow white so I know where I am?
- For melodic parts, it would be useful to be able to select a key and have only those notes able to be entered. Moss extensions give a selectable key in the Studio I/O panel

Grid selector:
- It would help to have a slightly different colour for alternating rows in step sequencer in order to tell them apart

Parameter adjustments:
- It would be amazing if the remote controls of the current device could also be selected here. Being able to write step-specific automation for macros would be loads of fun

Post

Again, thanks for feedback! Allow me to unpack.
trevormeier wrote: Mon Oct 24, 2022 12:36 am I don't think it would be problematic to transpose a clip or notes depending on what's selected - selection behaviour is usually pretty tightly tied to whatever I'm working on.
I'll see about adding a setting to enable that, thanks.
Shift-Play in Maschine is like pressing the spacebar twice in Bitwig... so it saves a press, but it's no big deal at all to me. Configurable makes sense.
Right, but configurable to what is the question. In the absence of other suggestions I think I'll make PLAY button behave like spacebar and SHIFT+PLAY like pause/continue.
I had a quick run with the beta and found a couple quick things:

Mode buttons:
- Step/Song mode buttons only toggle themselves. If I'm in step mode and press Song mode, it doesn't activate. I have to press Step again to turn off step mode to return to song mode. Pressing either button should activate that mode
On some level it makes sense, Song mode isn't really a "song" mode, it's a toggle to enable Super Scenes (which in itself is a different way of launching clips), a performance-related activity distinctly different from clip editing. There is also a practical reason: STEP mode takes over the scene buttons (for switching pattern pages), so being able to use same scene buttons to launch scenes is not really an option.

Are you saying that pressing SONG while in STEP mode should drop you out of STEP and enable SONG (Super Scene) mode?
Note mode:
- Note selector default starting note is on pad 5. Would make more sense on Pad 1 (4 semitones off)
- Note scene selectors - could the current page glow white so I know where I am?
Yup! Note mode is only partially implemented and thus not working properly at the moment, but the plan is what you describe.
- For melodic parts, it would be useful to be able to select a key and have only those notes able to be entered. Moss extensions give a selectable key in the Studio I/O panel
Noted. Scales are planned once the chromatic mode is working properly.

Grid selector:
- It would help to have a slightly different colour for alternating rows in step sequencer in order to tell them apart
That's a great point. There are not that many colors to choose from (16), but it will be fairly easy to just use the next color from the 16 color rainbow.

A slight complication is when a row is fully empty it's currently completely dark, and if they weren't there have been reports of the different brightness levels being difficult to tell apart (there are only 3 and they are really not that distinct). I think I have an idea though (empty steps could be colored at minimum brightness, note-ons could be white and note tails could be the bright color).

Parameter adjustments:
- It would be amazing if the remote controls of the current device could also be selected here. Being able to write step-specific automation for macros would be loads of fun
Easy because that's already done: just press CONTROL.
Last edited by minortom on Mon Oct 24, 2022 8:58 am, edited 1 time in total.

Post

minortom wrote: Mon Oct 24, 2022 12:58 am
trevormeier wrote: Mon Oct 24, 2022 12:36 am Parameter adjustments:
- It would be amazing if the remote controls of the current device could also be selected here. Being able to write step-specific automation for macros would be loads of fun
Easy because that's already done: just press CONTROL.
Though I think I misunderstood and I see what you mean: you want to select a step and create new automation points for devices at the timeline corresponding to that step?

That's an interesting use case. Will have to think about it.

Post

minortom wrote: Mon Oct 24, 2022 12:58 am
trevormeier wrote: Mon Oct 24, 2022 12:36 am Grid selector:
- It would help to have a slightly different colour for alternating rows in step sequencer in order to tell them apart
That's a great point. There are not that many colors to choose from (16), but it will be fairly easy to just use the next color from the 16 color rainbow.

A slight complication is when a row is fully empty it's currently completely dark, and if they weren't there have been reports of the different brightness levels being difficult to tell apart (there are only 3 and they are really not that distinct). I think I have an idea though (empty steps could be colored at minimum brightness, note-ons could be white and note tails could be the bright color).
Clarification: do you mean alternating colours on just the rows in general (every even row looking different regardless of grid settings) or alternating colours of note rows (would change depending on how many rows per note are currently showing)? The latter makes more sense.

Post

minortom wrote: Mon Oct 24, 2022 10:49 am Clarification: do you mean alternating colours on just the rows in general (every even row looking different regardless of grid settings) or alternating colours of note rows (would change depending on how many rows per note are currently showing)? The latter makes more sense.
Yes, the latter: alternating note rows which change depending on the grid settings.
minortom wrote: Mon Oct 24, 2022 12:58 am Are you saying that pressing SONG while in STEP mode should drop you out of STEP and enable SONG (Super Scene) mode?
Yes - I'm expecting mode buttons to enable that mode when I press them. I had forgotten song mode was Superscenes (which I haven't used yet). I'd been using it just as a regular clip launcher. So the functionality I'm asking for might require a mode button for "regular mode".
minortom wrote: Mon Oct 24, 2022 1:11 am Though I think I misunderstood and I see what you mean: you want to select a step and create new automation points for devices at the timeline corresponding to that step?

That's an interesting use case. Will have to think about it.
Yes - that's what I had in mind. Kind of like parameter locks on Elektron.

Post

trevormeier wrote: Mon Oct 24, 2022 11:23 am Yes, the latter: alternating note rows which change depending on the grid settings.
:tu:
Yes - I'm expecting mode buttons to enable that mode when I press them. I had forgotten song mode was Superscenes (which I haven't used yet). I'd been using it just as a regular clip launcher. So the functionality I'm asking for might require a mode button for "regular mode".
Isn't that the STEP button then?

Clip launcher is the default mode, there is currently no specific button for it. It's rather the absence of other superseding modes (i.e. if nothing else is on then it's clip launcher). So popping out of STEP mode drops you back into the clip launching experience, and even if I wired, say, SONG button for "regular" mode in STEP, it would be doing the exact same thing as hitting STEP (i.e. deactivating step sequencer). Does that work?

I can see some edge cases with stacking less trivial modes (e.g. if you get the Device Selector to stick and then activate STEP, deactivating STEP drops you back into Device Selector and then you have to deactivate that), though in practice this hasn't been an issue for me personally.

Anyway, let me know if simply deactivating STEP does not work for you, or you find these edge cases overly problematic. The solution could be something like having SONG button return to clip launcher if it's not active or activate Superscenes if it is.
Yes - that's what I had in mind. Kind of like parameter locks on Elektron.
Unfortunately that doesn't seem possible via the API, though I'm not yet intimately familiar with that part of the API. There is no access to track/clip automation data, all we can do is change automation recording setting and control playback. The hacky workaround I can think of could be: move playhead to note start, temporarily flip automation to "write" and set parameter value; but that means you cannot have the clip playing at the same time. An interesting idea, actually, but it would only work with arranger clips, if at all, I think.

There is one p-lock like thing you could do. There are at least 3 freely settable expressions per note (if you count Pan), so you could map those to your devices via expression modulators. Not quite step-wise locking, but at least something.

I'll keep on the lookout for a solution if there is one.

Post

Especially for someone new coming in, it feels counter intuitive to not have a "home" mode button: some place to touch that brings up the default view (clip launcher). Same with having to toggle off a current mode in order to turn on another mode—it requires remembering what you *were* doing instead of focusing on what you *are* doing. So to me, having a dedicated button for each mode that jumps immediately there when pressed makes the most sense and requires the least brain power. That goes for shift-mode buttons too for me, since it's similar in the Maschine world. It would be intuitive to me that "Song" is clip launcher, and "Shift-Song" is Superscenes, for example.

That said, I'm already super grateful for what you've done—I've been using it quite a bit today. Whatever you decide I'll be happy with!

Post

trevormeier wrote: Mon Oct 24, 2022 8:36 pm Especially for someone new coming in, it feels counter intuitive to not have a "home" mode button: some place to touch that brings up the default view (clip launcher). Same with having to toggle off a current mode in order to turn on another mode—it requires remembering what you *were* doing instead of focusing on what you *are* doing. So to me, having a dedicated button for each mode that jumps immediately there when pressed makes the most sense and requires the least brain power. That goes for shift-mode buttons too for me, since it's similar in the Maschine world. It would be intuitive to me that "Song" is clip launcher, and "Shift-Song" is Superscenes, for example.

That said, I'm already super grateful for what you've done—I've been using it quite a bit today. Whatever you decide I'll be happy with!
Thank you for the kind words! I am happy it is useful.

I see what you mean. I fired up Maschine for a closer look, pressing SONG does work as a home button of sorts, and more or less exactly in the way I was suggesting earlier (btw, SHIFT-SONG does something quite different). I'm working on implementing, might take a little time.

Meanwhile, https://github.com/unthingable/monster- ... ag/v8.0-b3

* Made PLAY button behave like spacebar (SHIFT-PLAY like pause/continue) — experimental because now it doesn't have a way to skip back to the beginning after continuing, can't think of a good enough UX pattern for that
* Added lateral step scrolling via knob push+turn and arrow buttons
* Added experimental alternating row colouring in step sequencer

As suspected the row colouring is iffy IMO, but see how you like it. The brightness levels (at least on my Jam) are really barely distinguishable, so telling active steps from coloured background is not easy. Half the alternating rows are left blank for that reason and I'm using a different colour on the coloured ones (next in the rainbow) to provide at least some visual contrast. If you have better ideas, they will be welcome.

Post Reply

Return to “Controller Scripting”