HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. jupe
    3. Posts
    J
    • Profile
    • Following 0
    • Followers 0
    • Topics 4
    • Posts 9
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Svarog - cinematic scrap metal vsti

      Nice. Works fine in Linux Mint and Carla-plugin host.

      Screenshot from 2021-07-20 10-04-07.png

      posted in General Questions
      J
      jupe
    • RE: The definitive feature request & bug fix roadmap

      Advanced Learn MIDI CC/ Assign MIDI CC

      Ability to assign also bitchbend, channel aftertouch, poly aftertouch... in addition to CC0-127 to instruments different modulation targets. See further details in post https://forum.hise.audio/topic/4438/advanced-learn-midi-cc-assign-midi-cc

      posted in Feature Requests
      J
      jupe
    • Advanced Learn MIDI CC / Assign MIDI CC

      Advanced Learn MIDI CC / Assign MIDI CC

      It would be nice to be able to assign also bitchbend, channel aftertouch, poly aftertouch... in addition to CC0-127 to instruments different modulation targets. For non-professional users labels of typical usage of few CC’s might also be beneficial. See pic. (Suggested additions in red)

      Learn&Assign MIDI CC_all.png

      Detail:
      Learn&Assign MIDI CC_detail.png

      Here is a screenshot from a video which shows implementation in Kontakt and link to video for usage case and further details:

      Midi Learn in Kontakt.png

      A tutorial walk-through on how to make any preset from the Kontakt Factory Library expressive and responsive to the Glide, Slide, and Press gestures applied to a Seaboard RISE or Seaboard BLOCK…

      How to use a Seaboard RISE with Kontakt

      **

      I’ll post a short version of this suggestion to feature request thread (https://forum.hise.audio/topic/4260/the-definitive-feature-request-bug-fix-roadmap/106), so if you like the idea don’t hesitate to upvote it ;-)

      **

      Links to my earlier feature requests:
      3 improvement suggestions for MPE-modulator

      posted in Feature Requests mpe
      J
      jupe
    • RE: One usage case. Is it possible?

      @Lindon Voting done (currently 10 votes).

      posted in General Questions
      J
      jupe
    • RE: One usage case. Is it possible?

      @musictop I have Sensel Morph with Piano and Innovators overlays

      Pros

      • also Linux support for configuring the device (SenselApp)
      • reasonable price (295,00 € + overlays ca. 40 €/pcs)
      • MPE is only one of several usage possibilities (=Morph), I’ve used it (with Innovators overlay) as Linnstrument style controller (7x13 grid C2-F5#) and a general controller (shortcut buttons/macros)...

      Cons

      • only 2 octaves with Piano overlay (with oct up/down buttons all midi notes)
      • narrower keys (17 mm) than normal keyboard (22 mm)

      Touch Me… - Sensel Morph Review

      posted in General Questions
      J
      jupe
    • One usage case. Is it possible?

      So, I’ve compiled HISE as a VST2 plugin (no luck with VST3’s so far) with MIDI ins and outs (in Linux Mint 20.2 Cinnamon). Plugin version of HISE works fine in Carla (=plugin host).

      Screenshot from 2021-07-11 14-30-47.png
      Screenshot from 2021-07-11 14-42-28.png

      Compiled vst-plugin would have roughly the same functionality as Ableton Live 11's Expression Control & MPE Control combined (check the manual Ableton Live 11 pdf manual, p. 627-630 and/or short video demonstrations of using those at www.mpe.design.
      That is controlling non-MPE instruments with finger movements (MPE gestures) (loudness, vibrato…) in stead of modwheel, pitchwheel or some slider/knob.

      Screenshot from 2021-07-04 21-37-53.png
      +

      Screenshot from 2021-07-05 14-52-00.png

      **

      Question is, how do I create MIDI Out ports and send data to them (in scripts)?

      HISE’s MPE modulator works great reading MPE data and sends it to HISE’s sound generators as expected. Scripting has some issues (reading channel aftertouch doesn’t work for me).

      **

      Thanks to @musictop for your excellent instruments (OT WINDS in the picture). Have you considered adding MPE modulators to your current or future instruments? (I did some experimenting and added MPE modulators (gain and pitch) to cloned OT BRASS and it worked pretty well)

      **

      For those who are new to MPE stuff I suggest checking for example these Youtube videos which have inspired me.

      Example of MPE’s expression capabilities
      Marco Parisi plays Jimi Hendrix's "Little Wing" on the Seaboard RISE at Musikmesse 2016.

      Example of open source synth MPE sounds (Surge). I especially like those guitar sounds.
      Roger Linn demonstrates his Surge (MPE) sounds.

      Excellent Vital synth also supports MPE. I wish it’s Sampler (SMP) had same properties as HISE’s Sampler-module. (Let’s go forking ;-) )

      **

      posted in General Questions
      J
      jupe
    • RE: The definitive feature request & bug fix roadmap

      Feature request:

      Going through all dynamic layers with MPE-modulators increasing/decreasing press gesture as explained in post 3 improvement suggestions for MPE-modulator (1. suggestion) would be a nice feature for us MPE device owners.

      posted in Feature Requests
      J
      jupe
    • 3 improvement suggestions for MPE-modulator

      Going through all dynamic layers with loudness and timber changes would make many acoustic instruments sound much more realistic. And of course MPE’s property to change volume after voice has started and each individual chord notes loudness/pitch (vibrato) is essential to realism (think of wind instrument section playing a nice chord with dynamics (swell) crescendo→fff→decrescendo).

      Other two suggestions are not so important.

      I drew a picture to clarify my thinking

      Improvements for MPE modulator.png

      The idea here is that one can throw bunch of own multilayer samples in Sampler-module which is part of ready-made base HISE project that includes all the bells and whistles one can wish for (minus your own samples) and soon you can start playing using MPE gestures and everything would work automagically and sound nice and dynamic!.

      Round robin group xfades are rather laborious to do and sfz imports have mainly failed (crash or otherwise).

      posted in Feature Requests mpe
      J
      jupe
    • MPE data reading, Aftertouch...?

      Question?
      Does anyone know how to read Channel Aftertouch data? Message.getChannelAfterTouchValue() - not found in HISE-script?

      **

      Reading MPE data experiments
      Here is few of my experiments to see what data Sensel Morph is sending in MPE mode (and a few AKAI MPK249 nonMPE devices outputs) and how to read it in HISE to later do some processing.

      I'm using Linux (Mint Cinnamon 20.1), so that may or may not pose some random problems.

      Reading MPE data summary
      Press, z, aftertouch, pressure,... NotOK???????? see Experiment 3 and 7
      Glide, x, pitchbend, pitch, note bend, horizontal,... OK! see Experiment 2
      Slide, y, CC74, vertical,... OK! see Experiment 4
      Stroke, velocity,... OK! see Experiment 8
      Lift, release velocity,... OK! see Experiment 8

      **

      Experiment 1 CC numbers sent in Sensel Morphs MPE mode

      function onController()
      { 
      /* 
      Moving/pressing/sliding finger on my MPE keyboard keys 
      */ 
      Console.print(Message.getControllerNumber()); 
      }
      

      Interface: 128
      Interface: 74
      Interface: 129
      Interface: 128
      Interface: 74
      Interface: 129
      Interface: 128
      Interface: 74
      Interface: 129
      Interface: 128
      Interface: 74

      Conclusions:
      CC #128 Pitchbend OK! see Experiment 2
      CC #74 MPE slide CC#74 (maybe initial value = 0 better (than 63), then slide up ...127 or init value 127 slide down to 0?) see Experiment 4
      CC #129 PolyAftertouch, not ChannelAftertouch? see Experiment 7

      **

      Experiment 2 Pitchbend

      function onController()
      { 
      /* 
      Pressing my MPE keyboard key and sliding quickly right and left
      (2^14 =16384/2=8192, 14 bits) 
      */ 
      
      if (Message.getControllerNumber() == 128) // initial value 8192, glide right/left increases/decreases => PitchBend range -8192 - +8192, 14 bits
      { 
      Console.print(Message.getControllerValue() - 8192); 
      } 
      }
      

      before subtracting - 8192

      Interface: 8192
      Interface: 8193
      Interface: 8196
      Interface: 8200
      Interface: 8207
      Interface: 8218
      Interface: 8231
      Interface: 8247
      Interface: 8266
      Interface: 8291
      Interface: 8319
      Interface: 8355
      Interface: 8393
      Interface: 8459
      Interface: 8524
      Interface: 8589
      Interface: 8651
      Interface: 8708
      Interface: 8782
      Interface: 8845
      Interface: 8897
      Interface: 8936
      Interface: 8964
      Interface: 8979
      Interface: 8992
      Interface: 8991
      Interface: 8962
      Interface: 8899
      Interface: 8823
      Interface: 8737
      Interface: 8650
      Interface: 8537
      Interface: 8431
      Interface: 8326
      Interface: 8208
      Interface: 8100
      Interface: 8003
      Interface: 7912
      Interface: 7840
      Interface: 7790

      after subtracting - 8192

      Interface: 0
      Interface: 0
      Interface: 0
      Interface: 0
      Interface: 0
      Interface: 0
      Interface: 0
      Interface: 1
      Interface: 1
      Interface: 2
      Interface: 3
      Interface: 5
      Interface: 8
      Interface: 12
      Interface: 16
      Interface: 21
      Interface: 26
      Interface: 32
      Interface: 39
      Interface: 47
      Interface: 60
      Interface: 73
      Interface: 88
      Interface: 103
      Interface: 119
      Interface: 159
      Interface: 199
      Interface: 237
      Interface: 277
      Interface: 317
      Interface: 356
      Interface: 394
      Interface: 429
      Interface: 463
      Interface: 516
      Interface: 569
      Interface: 617
      Interface: 662
      Interface: 702
      Interface: 734
      Interface: 762
      Interface: 782
      Interface: 809
      Interface: 827
      Interface: 838
      Interface: 840
      Interface: 841
      Interface: 826
      Interface: 802
      Interface: 770
      Interface: 717
      Interface: 659
      Interface: 598
      Interface: 534
      Interface: 466
      Interface: 377
      Interface: 284
      Interface: 195
      Interface: 107
      Interface: 0
      Interface: -101
      Interface: -198
      Interface: -302
      Interface: -400
      Interface: -515

      Conclusion: Reading pitchbend values seems to work

      **

      Experiment 3 CC129 = PolyAftertouch see Experiment 7

      function onController()
      { 
      /* 
      Pressing my MPE keyboard key with increasing/decreasing pressure
      */ 
      
      if (Message.getControllerNumber() == 129) 
      
      	{ 
      	Console.print(Message.getControllerValue()); 
      	} 
      }
      

      Press and release
      Interface: 64
      Interface: 64
      Interface: 64
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 65
      Interface: 66
      Interface: 66
      Interface: 66
      Interface: 66
      Interface: 66
      Interface: 66
      Interface: 229

      Press and slide up/down
      initial contact 63
      63 - 127 slide up
      63 - 0 slide down
      229 when key released

      Conclusion: // initial value 64, slide up/down increases/decreases: 0 <= 64 <= 127, release value 229? confused - polyAT or ?

      **

      Experiment 4 CC#74 value

      function onController()
      { 
      if (Message.getControllerNumber() == 74) 
      { 
      Console.print(Message.getControllerValue()); 
      } 
      }
      

      Interface: 63
      Interface: 63
      Interface: 64
      Interface: 64
      Interface: 64
      Interface: 65
      Interface: 66
      Interface: 66
      Interface: 67
      Interface: 69
      Interface: 70
      Interface: 71
      Interface: 73
      Interface: 75
      Interface: 77
      Interface: 79
      Interface: 80
      Interface: 82
      Interface: 84
      Interface: 86
      Interface: 88
      Interface: 89
      Interface: 90
      Interface: 91
      Interface: 92
      Interface: 93
      Interface: 93
      Interface: 93
      Interface: 93
      Interface: 92
      Interface: 92
      Interface: 90
      Interface: 89
      Interface: 87
      Interface: 85
      Interface: 83
      Interface: 80
      Interface: 78
      Interface: 75
      Interface: 73
      Interface: 70
      Interface: 67

      Conclusion: Initial value ca. 63, slide up/down increases/decreases: 0 <= 63 <= 127 (can be set to other modes with SenselApp)

      **

      Experiment 5 AKAI MPK249 pitchwheel and modwheel

      function onController()
      { 
      /* 
      Operating my AKAI MPK249 pitchwheel=128 and modwheel=1 
      */
      Console.print(Message.getControllerNumber());
      }
      

      Interface: 128 - pitchwheels CC#
      Interface: 128
      Interface: 128
      Interface: 128
      Interface: 128
      Interface: 128
      Interface: 1 - modwheels CC#
      Interface: 1
      Interface: 1
      Interface: 1
      Interface: 1

      **

      Experiment 6 AKAI MPK249 ChnAT/Poly AT

      function onController()
      { 
      /* 
      Pressing my AKAI MPK249 pad with Aftertouch set to: Chn or Poly => same result = 129 (keyboard part sends only channel aftertouch, pads can send also PolyAT) 
      */ 
      Console.print(Message.getControllerNumber()); 
      }
      

      Interface: 129
      Interface: 129
      Interface: 129
      Interface: 129
      Interface: 129
      Interface: 129
      Interface: 129

      **

      Experiment 7 AKAI MPK249 pad Aftertouch set to: Poly or Chn

      function onController()
      { 
      /* 
      Pressing pad with Aftertouch set to: Poly or Chn
      */ 
      
      if (Message.getControllerNumber() == 129)
      { 
      Console.print(Message.getControllerValue()); 
      } 
      }
      

      Pressing pad with Aftertouch set to: Poly

      Interface: 127
      Interface: 53
      Interface: 0
      Interface: 62
      Interface: 77
      Interface: 94
      Interface: 106
      Interface: 114
      Interface: 119
      Interface: 121
      Interface: 127
      Interface: 120
      Interface: 119
      Interface: 116
      Interface: 111
      Interface: 106
      Interface: 100
      Interface: 89
      Interface: 72
      Interface: 64
      Interface: 63
      Interface: 66
      Interface: 67
      Interface: 64
      Interface: 53
      Interface: 39
      Interface: 27
      Interface: 23
      Interface: 22
      Interface: 18
      Interface: 1
      Interface: 0
      Interface: 12
      Interface: 0
      Interface: 101
      Interface: 113
      Interface: 123
      Interface: 127
      Interface: 96
      Interface: 0

      Pressing pad with Aftertouch set to: Chn

      Interface: 229 - prints 229 with increasing pressure and stops when pressed with enough force
      Interface: 229
      Interface: 229
      ...
      Interface: 229 - last one when pressure released

      Conclusion:
      Poly Aftertouch works as expected!
      Channel Aftertouch does not!!!

      **

      Experiment 8 Sensel Morphs Velocity and Release Velocity OK

      function onNoteOn()
      { 
      Console.print("Velocity: " + Message.getVelocity()); 
      } 
      
      function onNoteOff()
      {
      Console.print("Release Velocity: " + Message.getVelocity()); 
      }
      

      Interface: Release Velocity: 26
      Interface: Velocity: 127
      Interface: Release Velocity: 22
      Interface: Velocity: 39
      Interface: Release Velocity: 21
      Interface: Velocity: 23 - hard to get velocities lower than that
      Interface: Release Velocity: 23
      Interface: Velocity: 48
      Interface: Release Velocity: 29
      Interface: Velocity: 49
      Interface: Release Velocity: 20
      Interface: Velocity: 47
      Interface: Release Velocity: 18 - releasing pressure very slowly
      Interface: Velocity: 60
      Interface: Release Velocity: 23
      Interface: Velocity: 41
      Interface: Release Velocity: 38
      Interface: Velocity: 66
      Interface: Release Velocity: 127 - releasing pressure very fast

      **

      posted in General Questions mpe
      J
      jupe