Offsetting CC with Pressure (patch notes)

Brief Notes on a new patchstorage effect patch

Inputs
designated CCs
Channel Pressure

Output
CC value for current ‘active’ CC offset by amount relative to current pressure

graphic visualisation



all the rest of this post now superseded by Post3 below

Patch Type
Physical Loopback: connect MIDI cable as for Loopback Mapping Tool (which will help remapping for your CCs)…
…or set up a USB loop via a patchbay

Status
Work in progress: written initially for one CC, then decided to show option of using more than one.
Not tested in action

Brief details:

(see also patch Description Panel)

  • each CC event sets the final CC number of the “offset” value.
    Thus the next time a key is held, it will output that CC again (if this is an issue it can be worked around)

  • As loopbacks go, this is not very complex: it is a “one-pass” “internal mapping” type.
    As it also involves frequently employed strategies like…
    …“transform&rescale” to create a useful mapping…
    …and “transform-to-note” to take advantage of note-only capabilities†…
    …it might also be useful for anyone starting out with getting Midihub to map to itself.

  • It would be possible to adapt this to give a different offset range for each designated CC
    (at the expense of one more level of complexity and maybe some playing considerations)

† others include:
  • Delay to create a cascade of CC values from one
  • Scale Remap to shuffle up to 12 values/ CC#
  • Dispatcher to trigger up to 16 different events in a cycle

All of these will be included in the Transform Tutorial when it’s further developed…

3 Likes

CC Mixer

It occurred to me that this patch could be adapted to be a crude static CC mixer of the form

λ.a + μ.b

(where a & b are the values of CC# A & CC# B
and λ, μ are constant ‘blend factors’.)

Incorporating variable (ie. mapped) ‘blend factors’ is a bit trickier:
I’m happy to wait for @Giedrius & @Pranciskus to build that one into the next firmware…

1 Like

EDIT: Preset updated and improved using Virtual Mappings (Firmware 1.15+)

Updated version here


Even if the specific task is not useful to that many users,

It might be worth a glance as it uses a few features which are new in 1.15:

  • virtual mappings, obviously…

  • …but also in a “same line setting” context
    (…a powerful new capability which is worth highlighting IMO)

  • plus, use of the new Set Value to = Incoming Ch. Transform setting,
    enabling a “get channel” to later “set channel” function

    (this might be the first published preset to use this. It won’t be the last)




Here’s a sketch focussing on the virtual mappings…


…using it alongside the patch and MIDI monitor will help decode the preset



The main bit of the working is the (fairly standard) “{CC → Note} → Transpose → {Note → CC}” chunk, which does the adding.
(Probably don’t need the Length pipe, btw)

NB This bit is ‘triggered’ by both the original CC and the “rescaled Pressure” CC, so we get CC output from both the ‘key press’ and the ‘knob turn’




The mappings

The top two lines set up the values for these “adding” pipes:

  • The second line is just the sort of scaled mapping that earlier users long wanted (to avoid the need for a ‘physical loopback’) and is now possible

  • The first line creates what I call an “anonymous” mapping making it easier to change inputs/channels etc than in 1.13.4

This makes the preset “channel - agnostic” which means it won’t break as soon as you change channel…

but also means that {CC → Note} Transform doesn’t “know” the original channels when it receives a “Pressure” CC

So the really good 1.15 stuff happens in the 3rd line either side of the “adding” bit:

  • the first two Transforms “pick up” info – the Channel & CC# – about the incoming (original) CC

  • then these are used in the last Transform to “get” the correct Channel & Id in a sort of “just in time delivery” way




PS. See these and other techniques in the Virtual Mappings Techniques topic

3 Likes