HISE Logo Forum
    • Categories
    • Register
    • Login

    MPE data reading, Aftertouch...?

    Scheduled Pinned Locked Moved General Questions
    mpe
    1 Posts 1 Posters 231 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jupe
      last edited by

      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

      **

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      57

      Online

      1.7k

      Users

      11.7k

      Topics

      101.8k

      Posts