ModStep CC template for Laplace v2 with application notes

NOTE: the template and mapping for Laplace v2 is in the comment a few posts down.
I'm keeping this original post up as it has some general info and, because v2 removes and/or changes some MIDI functionality, some might want to keep using v1.x


I spent a few hours making a full ModStep template for iceGear’s beautiful Laplace so I figured I would share it to spare others the tedium…. Big thanks to @gonekrazy3000 for poking around in iFunBox and figuring out what to export / copy to make this work!


Just about every parameter has a mapping except the Mono switch which doesn’t seem to be mappable (and it doesn’t respond to the traditional CC126 Channel Mode Message either)

Some of the parameters are not well suited for modulation in ModStep, but I made the assignments regardless. These are parameters with multi-state buttons or knobs with discrete values (e.g. the Octave select, Arp Style, Arp Step Length, Loop Length, etc)

I made a few of the assignments with typical controls in mind:
CC1: Vibrato
CC5: Glide time
CC7: Channel volume
CC11: Amp Level

The rest are just assigned in order. I decided to keep things in groups rather than splitting them out further to possibly align with General MIDI conventions (i.e. I didn’t put Reverb Dry/Wet controls on CC91 or Chorus Dry/Wet on CC93, but rather kept them grouped with the rest of the Reverb and Chorus controls).


The issue with mapping the multi-state buttons or mapping a knob with limited, stepped range is that controls with discreet values in Laplace respond to discreet CC values and ModStep isn’t great about programming discreet values.

To really work with stepped controls, you need to limit the range that ModStep is sending the CC values. ModStep can limit controllers to a range, but that setting isn’t saved with the template - it needs to be done each time the parameter is loaded into an X/Y slot. After assigning the control to an X/Y slot, set the Range bar to the appropriate settings: all such controls in this template have their range listed after their names e.g. (0-2; 0-14; 62-66, etc.)

As an example: the Octave control is mapped to CC76, but it only responds to values from 62 to 66 (a value of 62 corresponds to -2 octave; 63 to -1; 64 to 0; 65 to +1; 66 to +2). So, to work with this, you load the “76 Octave” control to an X/Y slot and then adjust the range to 62 to 66.

However, the other ModStep quirk to recognize is that the range set here only works for the X/Y controllers on the Step Sequencer page. If you go the Piano Roll and paint in a curve, you are always working in the full 0 - 127 range.

Simple Boolean toggle switches (effect off/on; ENV/Gate select; etc.) work in the typical 0-63 = OFF; 64-127 = ON paradigm, with two exceptions:
The Mono switch, which doesn’t seem to be mappable
The Resonator Type A/B switch, which instead works with a stepped range; either a value of 0 for A or 1 for B. This control is also not grouped with the rest of the Resonator controls in the template because it was going to be CC33 and I didn't want confusion because of....

One other note for ModStep: the pre-assigned Mod Wheel controller sends MSB and LSB values (i.e. both CC1 and 33), so don’t try to assign CC33 to something if you’re going to use the Mod Wheel. Of course, you can create a CC1 controller which is only CC1. This is probably better than using the dedicated Mod Wheel, unless you have a synth that responds to 16,384 values.

@cblomert @Nerk_
It would be great if discreet CC values could be programmed in with more precision than we have now. Ideally you could save a range to your template and the Piano Roll would only show that range.

Also, creating templates is a bit more tedious than it could be. First there doesn’t seem to be a way to edit an assignment once it’s made. If there’s a typo or you want to move something around you have to delete the original and create a new one.

And for the most part a template is really just an assignment of a name to a number. It would be great if the .mtt file was just a text file or a XML, etc. so that the bulk of creation could be done in a text editor. Opening up an .mtt shows a bunch of other numbers whose value isn't clear.


Here's a quick video showing the modulation. First no modulation, then heavy modulation, then every single parameter modulated. Crazy and unmusical? Maybe, or maybe in the right context....

Comments

  • that is some sweet modulation in that video :D looking forward to trying out the template :)

  • Epic! Thank you!

  • edited June 2017

    Version 2 of Laplace adds some features that result in a few more controllers and implements Share extensions so both the Laplace and ModStep files needed to be updated.

    New, unlisted features:
    -vibrato is now controlled with a separate LFO from the main LFO
    -pitchbend range is now on the main screen (in the slide out drawer that now holds the Octave and Glide controls) and you can set independent values for pitch up and pitch down
    -effects now have their Dry/Wet knobs on the front panel and their controls are consolidated to one window
    -multiple MIDI mappings can be created
    -both MIDI mappings and Arpeggiator can now be saved with the preset and exported easily with the new Share extensions (but you can also override their loading if you want)
    -reverb now has a PreDelay setting
    -knobs have a center detent
    -LFOs now have a pulsing LED to show their rate
    -numeric readouts for some knobs

    From these we now have a few new controls:
    -Vibrato Rate
    -Reverb PreDelay
    -Pitchbend Range -
    -Pitchbend Range +
    Also Mono mode can now be MIDI mapped.

    Unfortunately, apart from Arp on/off, all other arp controls can no longer be mapped to MIDI CCs.

    Also, while most switches used to work with a 0-63 = OFF; 64-127 = ON paradigm, (with the odd exception of the Resonator Type) they all now work with 0 off, >=1 on. This makes control within ModStep (especially the Piano Roll) difficult, as hitting a 0 value is very finicky.

    Switches, multi state buttons and knobs with limited, stepped ranges are not great to work with in ModStep as these controls in Laplace respond to discreet CC values and ModStep isn’t great about programming discreet values.

    As a correction to what I have stated in previous posts, it is possible to save a controller with a reduced range in ModStep’s template editor, but only when it’s assigned to an X/Y slot. After assigning the control to an X/Y slot, set the Range bar to the appropriate settings: all such controls in this template have their range listed after their names e.g. (0-2; 0-14; 62-66, etc.)
    I don’t include these saved ranges as I prefer to not pre-load the X/Y slots and instead just add the controls I want to use for a particular track.

    As an example: the Octave control is mapped to CC76, but it only responds to values from 62 to 66 (a value of 62 corresponds to -2 octave; 63 to -1; 64 to 0; 65 to +1; 66 to +2). So, to work with this, you load the “76 Octave” control to an X/Y slot and then adjust the range to 62 to 66.

    However, the other ModStep quirk to recognize is that the range set here only works for the X/Y controllers on the Step Sequencer page. If you go the Piano Roll and paint in a curve, you are always working in the full 0 - 127 range.

    One other note for ModStep: the pre-assigned Mod Wheel controller sends MSB and LSB values (i.e. both CC1 and 33), so don’t try to assign CC33 to something if you’re going to use the Mod Wheel. Of course, you can create a CC1 controller which is only CC1. This is probably better than using the dedicated Mod Wheel, unless you have a synth that responds to 16,384 values.

    ——

    To install:
    1) In iFunBox open the ModStep folder “/Templates/CCs/“. Install "Laplace-v2.mtt" in that folder.

    2) Since Laplace now uses the iOS Share extensions there are a variety of ways to install the MIDI mapping in Laplace (“ModStep MIDI Mapping.laplace_midi_pack”). You can use Airdrop, iCloud Drive, email to yourself, etc. and then “Open in…” Laplace.

    ——

    To load this file in ModStep:
    1) go to the Template Editor,
    2) tap on the CCs folder,
    3) drag the “Laplace_v2” template to the bottom half of the screen; the area will highlight.
    4) drag the parameter you want to modulate to any of the X/Y slots.
    5) go to the Piano Roll or Step Sequencer and modulate away!

    In Laplace, MIDI mappings are now stored per-preset instead of globally.
    Go into the Settings/MIDI Mapping and load “ModStep MIDI Mapping.” You can turn off the “Load MIDI mapping along with the sound preset” setting to essentially make this the global mapping.

    NOTE: this mapping can be loaded inside of the AU version of the app. You do not have to remap the controllers, just load this mapping.

  • This is cool, anyone who might have other templates for the icegear synths ?

  • Well, here's Mersenne

  • Awesome. I'm definitely gonna check this out!

  • @aplourde said:
    Well, here's Mersenne

    Awesome, just plain awesome :)

Sign In or Register to comment.