Akai APC MIDI feedback - Note Off sent for clear slot instead of Note On

Issue #205 resolved
Paul Reilly
created an issue

I noticed that clearing slots (via the GUI/mouse) was not clearing slots on my new Akai APC Mini. The MIDI it expects is a Note On(x90) with a velocity of zero, but a Note Off (x80) is being sent instead, which is not recognized.

ed: I should say that I am using the Akai APC controller preset and am assuming that the APC Mini has the same Midi implementation.

Comments (10)

  1. Paul Reilly reporter

    Here's a simple JS script that changes Note Offs to Note On (Offs). Copy the text, save it in your Reaper/Effects folder and load it after Playtime:

    desc:Note Off to Note On Off
    
    @block
    while (midirecv(os,msg1,msg2,msg3))(
      msg1==$x80 ? ( msg1=$x90; msg3=0;);
      midisend(os,msg1,msg2,msg3);
    );
    
  2. pete de vries

    Paul, Just wanted to say that you RULE THIS PLANET.

    It works nicely !!! Thank you very very much ! My method was way more complicated and way less effective.

    I wanted to share with you another issue I'm experiencing.

    I want to create a live set with Playtime so I'm using multiple tabs with several "pre-opened" projects. But When I switch from on tab to another, My controller doesn't refresh until I touch a clip pad, or a scene launch pad. And, When I do so, the filled pads light up, but the ones that should be empty stay lit.

    The only way to refresh properly is to hit the "Broom" button in PLAYTIME. I don't want to touch my computer on stage I would prefer to stay focused on my keyboards and controllers.

    So what I m looking for is : - Find a way of auto refreshing the controller on a switch tab action or -Assign the Broom button to a pad.

    Do you have the same issue ? Do you have any clue ? You reaper master :) ?

    Thanks again !

  3. pete de vries

    Hey, I made a script that does what I need

    desc:Reset APCMini
    //tags: MIDI generator
    
    in_pin:none
    out_pin:none
    
    @init
    ext_noinit=0;
    has_sent = 0;
    @block
    !slider1 || !has_sent ? (
      has_sent=slider1=1;
      sliderchange(slider1);
     //
      a = 0;
      while ( a < 129 ) (
           midisend(1, $x90, a, 0); // send note 69 to channel 0 at velocity 127 (new syntax)
             a=a+1;       
           );
    
    
    );
    
  4. Log in to comment