Jump to content

Cristiano

Members
  • Posts

    10
  • Joined

  • Last visited

Posts posted by Cristiano

  1. Hello Chris,

    I am probably the fifth wheel, but if no one else answers... Here are my 2 pences.

    I suspect you have to modify trunk\modules\keyboard\keyboard.h to add a

    u8  dout_sr3;

    near dout_sr2,

    then find all occurences of dout_sr2 in trunk\modules\keyboard\keyboard.c, and add management for dout_sr3 in a similar way. Be careful, you should also modify 

        u16 selection_mask = ~(1 << (u16)kc->selected_row);
        if( kc->din_inverted )
          selection_mask ^= 0xffff;

    in

        u32 selection_mask = ~((u32)1 << (u16)kc->selected_row);
        if( kc->din_inverted )
          selection_mask ^= 0xffffffff;

    finally modify trunk\apps\controllers\midibox_ng_v1\src\mbng_file_c.c for manageing command input (find all occurences of dout_sr2 and add management for dout_sr3), and trunk\apps\controllers\midibox_ng_v1\src\mbng_kb.c for initialization.

    Obviously, I did not try, hence I cannot tell if missing something...

    Good luck!

  2. Hi all,

    working on many projects this period, hence no time to follow my first passion.

    First of all, I am a newbie (as you can see on the left), but

    On 25/1/2018 at 2:17 PM, macsaif said:

    Do you think all the mentioned controls (in the midi.pdf) can be implemented in midibox_kb? Otherwise I have to use midibox_ng which has slower scanning frequency of the keyboards. 

    I think no, because midibox_kb does not provide DIN scanning for other purpose than keyboard scanning.

     

    Then, I more or less completed my evaluations, and I decided to beg Thorsten without dignity to add at least one keyboard.

    After this, I have two more requests.

    The first, about correcting knob or bars rendering when variable value is negative (%B format)

    On 19/1/2018 at 5:27 PM, Cristiano said:

    Hi Thorsten and all,

    when printing a negative transpose value, the vertical bar at its right becomes a box. I suspect there is a bug in mbng_lcd.c, line 692 probably should be

    
    int normalized_value = (item->min <= item->max) ? ((s16)item->value - item->min) : ((s16)item->value - item->max);

     

    Last one, if it is possible to modify contrast for GLCD DOGM using some kind of instruction on NGC file, because there is no hardware way to do it.

    Thanks to all,

    Cristiano

  3. Hi Thorsten and all,

    when printing a negative transpose value, the vertical bar at its right becomes a box. I suspect there is a bug in mbng_lcd.c, line 692 probably should be

    int normalized_value = (item->min <= item->max) ? ((s16)item->value - item->min) : ((s16)item->value - item->max);

     

  4. Hi all,

    today I would like to share my experience with encoder on scs, the board version made by ilmenator (semper laudetur), attached to MBHP_CORE_STM32F4, midibox_NG project.

    I noticed that sometimes, especially when fast rotating my encoder (I choosed a bourns PEC12R), midibox_NG detects more events than really executed, or worse, events in opposite verse.

    Using an oscilloscope I saw many spikes on encoder pin, duration shorter than 1 ms.

    Following suggestion on attached datasheet (I hope attaching this document is permitted, I did not find any rule against, but if so I will remove it immediately), second page, bottom right, I modified circuit with some patches.

    Now it works perfectly, but I have some requests/suggestion to improve design

    • if anyone knows, please tell me if there is a NGC parameter to allow debouncing on encoder inputs, otherwise
    • for TK, please modify SCS scheme to suggest RC filter usage;
    • for ilmenator, please modify your board design and allow to connect necessary 4 resistances and 2 capacitors.

    Thanks to anyone,

    Regards,

    Cristiano

    PEC12R.pdf

  5. Thank you FantomXR.

    Both "break_is_make on" and "make_debounce on" work for me, hence I am satisfied.

    I was commenting behaviour of keyboard scanning with both that directives off, because imho it could be improved.
    It should behave better if sending a noteOn when detected make contact open-close without break contact opening. If not doing so, you could have a key pressed without sound.

    Velocity perhaps could be calculated from a delay which value could be

    if x < 2*delay_fastest

    delay = ((delay_slowest - delay_fastest)/delay_fastest2) x2 - 2((delay_slowest - delay_fastest)/delay_fastest) x + delay_slowest

    else 

    delay = delay_slowest

    where x = TimeMakeClose - TimeMakeOpen

    It could be useful if you have a keyboard with heavy keys, for example.

    Regards

  6. Hi all,

    I did some experiments, and discovered reason of this behaviour.

    First of all, I enabled debug

    set kb 1 debug on

    then I tried to play keyboard, while Mios Studio monitoring (excellent tool)

    Spoiler

    [5191.071] 90 2f 79   Chn# 1  Note On  B-1  Vel:121
    [5191.142] 90 2e 79   Chn# 1  Note On  A#1  Vel:121
    [5191.165] 90 2f 00   Chn# 1  Note Off B-1 (optimized)
    [5191.266] 90 2f 7b   Chn# 1  Note On  B-1  Vel:123
    [5191.300] 90 2e 00   Chn# 1  Note Off A#1 (optimized)
    [5191.351] 90 2e 7a   Chn# 1  Note On  A#1  Vel:122
    [5191.357] 90 2f 00   Chn# 1  Note Off B-1 (optimized)
    [5191.438] 90 2f 7d   Chn# 1  Note On  B-1  Vel:125
    [5191.472] 90 2e 00   Chn# 1  Note Off A#1 (optimized)
    [5191.531] 90 2f 00   Chn# 1  Note Off B-1 (optimized)
    [5191.597] 90 2f 7d   Chn# 1  Note On  B-1  Vel:125
    [5191.686] 90 2f 00   Chn# 1  Note Off B-1 (optimized)

    revealing last a#1 note (I was keeping it pressed for a while after last B1 note off) not being detected.

    Debug window shows that...

    Spoiler

    [5191.059] ---
    [5191.059] DOUT SR1.7:  00000000  00000000
    [5191.059] DOUT SR1.6:  00000000  00000000
    [5191.059] DOUT SR1.5:  00000000  00000000
    [5191.059] DOUT SR1.4:  00010000  00000000
    [5191.059] DOUT SR1.3:  00000000  00000000
    [5191.059] DOUT SR1.2:  00000000  00000000
    [5191.060] DOUT SR1.1:  00000000  00000000
    [5191.060] DOUT SR1.0:  00000000  00000000
    [5191.060] DOUT SR2.7:  00000000  00000000
    [5191.060] DOUT SR2.6:  00000000  00000000
    [5191.060] DOUT SR2.5:  00000000  00000000
    [5191.060] DOUT SR2.4:  00000000  00000000
    [5191.060] DOUT SR2.3:  00000000  00000000
    [5191.060] DOUT SR2.2:  00000000  00000000
    [5191.060] DOUT SR2.1:  00000000  00000000
    [5191.061] DOUT SR2.0:  00000000  00000000
    [5191.061] KB1: DOUT#1.D4 / DIN#1.D3: pressed    -->  key=11, break contact, note=B-1 (47)
    [5191.061] Entry: timestamp_break=51674 timestamp_make=0
    [5191.068] ---
    [5191.069] DOUT SR1.7:  00000000  00000000
    [5191.069] DOUT SR1.6:  00000000  00000000
    [5191.069] DOUT SR1.5:  00010000  00000000
    [5191.069] DOUT SR1.4:  00010000  00000000
    [5191.069] DOUT SR1.3:  00000000  00000000
    [5191.069] DOUT SR1.2:  00000000  00000000
    [5191.069] DOUT SR1.1:  00000000  00000000
    [5191.069] DOUT SR1.0:  00000000  00000000
    [5191.070] DOUT SR2.7:  00000000  00000000
    [5191.070] DOUT SR2.6:  00000000  00000000
    [5191.070] DOUT SR2.5:  00000000  00000000
    [5191.070] DOUT SR2.4:  00000000  00000000
    [5191.070] DOUT SR2.3:  00000000  00000000
    [5191.070] DOUT SR2.2:  00000000  00000000
    [5191.070] DOUT SR2.1:  00000000  00000000
    [5191.071] DOUT SR2.0:  00000000  00000000
    [5191.071] KB1: DOUT#1.D5 / DIN#1.D3: pressed    -->  key=11, make contact, note=B-1 (47)
    [5191.071] Entry: timestamp_break=51674 timestamp_make=51769
    [5191.071] PRESSED note=B-1, delay=95, velocity=121 (played from a white key)
    [5191.130] ---
    [5191.131] DOUT SR1.7:  00000000  00000000
    [5191.131] DOUT SR1.6:  00000000  00000000
    [5191.131] DOUT SR1.5:  00010000  00000000
    [5191.131] DOUT SR1.4:  00110000  00000000
    [5191.131] DOUT SR1.3:  00000000  00000000
    [5191.131] DOUT SR1.2:  00000000  00000000
    [5191.132] DOUT SR1.1:  00000000  00000000
    [5191.132] DOUT SR1.0:  00000000  00000000
    [5191.132] DOUT SR2.7:  00000000  00000000
    [5191.132] DOUT SR2.6:  00000000  00000000
    [5191.132] DOUT SR2.5:  00000000  00000000
    [5191.132] DOUT SR2.4:  00000000  00000000
    [5191.132] DOUT SR2.3:  00000000  00000000
    [5191.132] DOUT SR2.2:  00000000  00000000
    [5191.132] DOUT SR2.1:  00000000  00000000
    [5191.133] DOUT SR2.0:  00000000  00000000
    [5191.133] KB1: DOUT#1.D4 / DIN#1.D2: pressed    -->  key=10, break contact, note=A#1 (46)
    [5191.133] Entry: timestamp_break=52408 timestamp_make=0
    [5191.139] ---
    [5191.140] DOUT SR1.7:  00000000  00000000
    [5191.140] DOUT SR1.6:  00000000  00000000
    [5191.140] DOUT SR1.5:  00110000  00000000
    [5191.140] DOUT SR1.4:  00110000  00000000
    [5191.140] DOUT SR1.3:  00000000  00000000
    [5191.140] DOUT SR1.2:  00000000  00000000
    [5191.140] DOUT SR1.1:  00000000  00000000
    [5191.140] DOUT SR1.0:  00000000  00000000
    [5191.140] DOUT SR2.7:  00000000  00000000
    [5191.140] DOUT SR2.6:  00000000  00000000
    [5191.141] DOUT SR2.5:  00000000  00000000
    [5191.141] DOUT SR2.4:  00000000  00000000
    [5191.141] DOUT SR2.3:  00000000  00000000
    [5191.141] DOUT SR2.2:  00000000  00000000
    [5191.142] DOUT SR2.1:  00000000  00000000
    [5191.142] DOUT SR2.0:  00000000  00000000
    [5191.142] KB1: DOUT#1.D5 / DIN#1.D2: pressed    -->  key=10, make contact, note=A#1 (46)
    [5191.142] Entry: timestamp_break=52408 timestamp_make=52504
    [5191.142] PRESSED note=A#1, delay=96, velocity=121 (played from a black key)
    [5191.163] ---
    [5191.163] DOUT SR1.7:  00000000  00000000
    [5191.163] DOUT SR1.6:  00000000  00000000
    [5191.163] DOUT SR1.5:  00100000  00000000
    [5191.163] DOUT SR1.4:  00110000  00000000
    [5191.163] DOUT SR1.3:  00000000  00000000
    [5191.164] DOUT SR1.2:  00000000  00000000
    [5191.164] DOUT SR1.1:  00000000  00000000
    [5191.164] DOUT SR1.0:  00000000  00000000
    [5191.164] DOUT SR2.7:  00000000  00000000
    [5191.164] DOUT SR2.6:  00000000  00000000
    [5191.164] DOUT SR2.5:  00000000  00000000
    [5191.164] DOUT SR2.4:  00000000  00000000
    [5191.164] DOUT SR2.3:  00000000  00000000
    [5191.165] DOUT SR2.2:  00000000  00000000
    [5191.165] DOUT SR2.1:  00000000  00000000
    [5191.165] DOUT SR2.0:  00000000  00000000
    [5191.165] KB1: DOUT#1.D5 / DIN#1.D3: depressed  -->  key=11, make contact, note=B-1 (47)
    [5191.165] Entry: timestamp_break=0 timestamp_make=0
    [5191.165] RELEASED note=B-1
    [5191.174] ---
    [5191.175] DOUT SR1.7:  00000000  00000000
    [5191.175] DOUT SR1.6:  00000000  00000000
    [5191.175] DOUT SR1.5:  00100000  00000000
    [5191.175] DOUT SR1.4:  00100000  00000000
    [5191.175] DOUT SR1.3:  00000000  00000000
    [5191.175] DOUT SR1.2:  00000000  00000000
    [5191.175] DOUT SR1.1:  00000000  00000000
    [5191.175] DOUT SR1.0:  00000000  00000000
    [5191.176] DOUT SR2.7:  00000000  00000000
    [5191.176] DOUT SR2.6:  00000000  00000000
    [5191.176] DOUT SR2.5:  00000000  00000000
    [5191.176] DOUT SR2.4:  00000000  00000000
    [5191.176] DOUT SR2.3:  00000000  00000000
    [5191.176] DOUT SR2.2:  00000000  00000000
    [5191.177] DOUT SR2.1:  00000000  00000000
    [5191.177] DOUT SR2.0:  00000000  00000000
    [5191.177] KB1: DOUT#1.D4 / DIN#1.D3: depressed  -->  key=11, break contact, note=B-1 (47)
    [5191.177] Entry: timestamp_break=0 timestamp_make=0
    [5191.255] ---
    [5191.256] DOUT SR1.7:  00000000  00000000
    [5191.256] DOUT SR1.6:  00000000  00000000
    [5191.256] DOUT SR1.5:  00100000  00000000
    [5191.256] DOUT SR1.4:  00110000  00000000
    [5191.256] DOUT SR1.3:  00000000  00000000
    [5191.256] DOUT SR1.2:  00000000  00000000
    [5191.256] DOUT SR1.1:  00000000  00000000
    [5191.256] DOUT SR1.0:  00000000  00000000
    [5191.257] DOUT SR2.7:  00000000  00000000
    [5191.257] DOUT SR2.6:  00000000  00000000
    [5191.257] DOUT SR2.5:  00000000  00000000
    [5191.257] DOUT SR2.4:  00000000  00000000
    [5191.257] DOUT SR2.3:  00000000  00000000
    [5191.257] DOUT SR2.2:  00000000  00000000
    [5191.257] DOUT SR2.1:  00000000  00000000
    [5191.257] DOUT SR2.0:  00000000  00000000
    [5191.258] KB1: DOUT#1.D4 / DIN#1.D3: pressed    -->  key=11, break contact, note=B-1 (47)
    [5191.258] Entry: timestamp_break=53693 timestamp_make=0
    [5191.263] ---
    [5191.264] DOUT SR1.7:  00000000  00000000
    [5191.264] DOUT SR1.6:  00000000  00000000
    [5191.264] DOUT SR1.5:  00110000  00000000
    [5191.264] DOUT SR1.4:  00110000  00000000
    [5191.264] DOUT SR1.3:  00000000  00000000
    [5191.264] DOUT SR1.2:  00000000  00000000
    [5191.264] DOUT SR1.1:  00000000  00000000
    [5191.264] DOUT SR1.0:  00000000  00000000
    [5191.264] DOUT SR2.7:  00000000  00000000
    [5191.265] DOUT SR2.6:  00000000  00000000
    [5191.265] DOUT SR2.5:  00000000  00000000
    [5191.265] DOUT SR2.4:  00000000  00000000
    [5191.266] DOUT SR2.3:  00000000  00000000
    [5191.266] DOUT SR2.2:  00000000  00000000
    [5191.266] DOUT SR2.1:  00000000  00000000
    [5191.266] DOUT SR2.0:  00000000  00000000
    [5191.266] KB1: DOUT#1.D5 / DIN#1.D3: pressed    -->  key=11, make contact, note=B-1 (47)
    [5191.266] Entry: timestamp_break=53693 timestamp_make=53774
    [5191.266] PRESSED note=B-1, delay=81, velocity=123 (played from a white key)
    [5191.297] ---
    [5191.298] DOUT SR1.7:  00000000  00000000
    [5191.298] DOUT SR1.6:  00000000  00000000
    [5191.298] DOUT SR1.5:  00010000  00000000
    [5191.298] DOUT SR1.4:  00110000  00000000
    [5191.298] DOUT SR1.3:  00000000  00000000
    [5191.298] DOUT SR1.2:  00000000  00000000
    [5191.298] DOUT SR1.1:  00000000  00000000
    [5191.299] DOUT SR1.0:  00000000  00000000
    [5191.299] DOUT SR2.7:  00000000  00000000
    [5191.299] DOUT SR2.6:  00000000  00000000
    [5191.299] DOUT SR2.5:  00000000  00000000
    [5191.299] DOUT SR2.4:  00000000  00000000
    [5191.299] DOUT SR2.3:  00000000  00000000
    [5191.299] DOUT SR2.2:  00000000  00000000
    [5191.299] DOUT SR2.1:  00000000  00000000
    [5191.299] DOUT SR2.0:  00000000  00000000
    [5191.300] KB1: DOUT#1.D5 / DIN#1.D2: depressed  -->  key=10, make contact, note=A#1 (46)
    [5191.300] Entry: timestamp_break=0 timestamp_make=0
    [5191.300] RELEASED note=A#1
    [5191.315] ---
    [5191.316] DOUT SR1.7:  00000000  00000000
    [5191.316] DOUT SR1.6:  00000000  00000000
    [5191.316] DOUT SR1.5:  00010000  00000000
    [5191.316] DOUT SR1.4:  00010000  00000000
    [5191.316] DOUT SR1.3:  00000000  00000000
    [5191.316] DOUT SR1.2:  00000000  00000000
    [5191.316] DOUT SR1.1:  00000000  00000000
    [5191.316] DOUT SR1.0:  00000000  00000000
    [5191.316] DOUT SR2.7:  00000000  00000000
    [5191.317] DOUT SR2.6:  00000000  00000000
    [5191.317] DOUT SR2.5:  00000000  00000000
    [5191.317] DOUT SR2.4:  00000000  00000000
    [5191.317] DOUT SR2.3:  00000000  00000000
    [5191.318] DOUT SR2.2:  00000000  00000000
    [5191.318] DOUT SR2.1:  00000000  00000000
    [5191.318] DOUT SR2.0:  00000000  00000000
    [5191.318] KB1: DOUT#1.D4 / DIN#1.D2: depressed  -->  key=10, break contact, note=A#1 (46)
    [5191.318] Entry: timestamp_break=0 timestamp_make=0
    [5191.340] ---
    [5191.340] DOUT SR1.7:  00000000  00000000
    [5191.340] DOUT SR1.6:  00000000  00000000
    [5191.340] DOUT SR1.5:  00010000  00000000
    [5191.340] DOUT SR1.4:  00110000  00000000
    [5191.340] DOUT SR1.3:  00000000  00000000
    [5191.340] DOUT SR1.2:  00000000  00000000
    [5191.340] DOUT SR1.1:  00000000  00000000
    [5191.340] DOUT SR1.0:  00000000  00000000
    [5191.341] DOUT SR2.7:  00000000  00000000
    [5191.341] DOUT SR2.6:  00000000  00000000
    [5191.341] DOUT SR2.5:  00000000  00000000
    [5191.341] DOUT SR2.4:  00000000  00000000
    [5191.341] DOUT SR2.3:  00000000  00000000
    [5191.341] DOUT SR2.2:  00000000  00000000
    [5191.341] DOUT SR2.1:  00000000  00000000
    [5191.341] DOUT SR2.0:  00000000  00000000
    [5191.342] KB1: DOUT#1.D4 / DIN#1.D2: pressed    -->  key=10, break contact, note=A#1 (46)
    [5191.342] Entry: timestamp_break=54553 timestamp_make=0
    [5191.349] ---
    [5191.349] DOUT SR1.7:  00000000  00000000
    [5191.349] DOUT SR1.6:  00000000  00000000
    [5191.349] DOUT SR1.5:  00110000  00000000
    [5191.349] DOUT SR1.4:  00110000  00000000
    [5191.349] DOUT SR1.3:  00000000  00000000
    [5191.349] DOUT SR1.2:  00000000  00000000
    [5191.349] DOUT SR1.1:  00000000  00000000
    [5191.349] DOUT SR1.0:  00000000  00000000
    [5191.349] DOUT SR2.7:  00000000  00000000
    [5191.350] DOUT SR2.6:  00000000  00000000
    [5191.350] DOUT SR2.5:  00000000  00000000
    [5191.350] DOUT SR2.4:  00000000  00000000
    [5191.350] DOUT SR2.3:  00000000  00000000
    [5191.351] DOUT SR2.2:  00000000  00000000
    [5191.351] DOUT SR2.1:  00000000  00000000
    [5191.351] DOUT SR2.0:  00000000  00000000
    [5191.351] KB1: DOUT#1.D5 / DIN#1.D2: pressed    -->  key=10, make contact, note=A#1 (46)
    [5191.351] Entry: timestamp_break=54553 timestamp_make=54644
    [5191.351] PRESSED note=A#1, delay=91, velocity=122 (played from a black key)
    [5191.354] ---
    [5191.354] DOUT SR1.7:  00000000  00000000
    [5191.355] DOUT SR1.6:  00000000  00000000
    [5191.355] DOUT SR1.5:  00100000  00000000
    [5191.355] DOUT SR1.4:  00110000  00000000
    [5191.355] DOUT SR1.3:  00000000  00000000
    [5191.355] DOUT SR1.2:  00000000  00000000
    [5191.355] DOUT SR1.1:  00000000  00000000
    [5191.355] DOUT SR1.0:  00000000  00000000
    [5191.355] DOUT SR2.7:  00000000  00000000
    [5191.356] DOUT SR2.6:  00000000  00000000
    [5191.356] DOUT SR2.5:  00000000  00000000
    [5191.356] DOUT SR2.4:  00000000  00000000
    [5191.356] DOUT SR2.3:  00000000  00000000
    [5191.356] DOUT SR2.2:  00000000  00000000
    [5191.356] DOUT SR2.1:  00000000  00000000
    [5191.356] DOUT SR2.0:  00000000  00000000
    [5191.357] KB1: DOUT#1.D5 / DIN#1.D3: depressed  -->  key=11, make contact, note=B-1 (47)
    [5191.357] Entry: timestamp_break=0 timestamp_make=0
    [5191.357] RELEASED note=B-1
    [5191.363] ---
    [5191.363] DOUT SR1.7:  00000000  00000000
    [5191.364] DOUT SR1.6:  00000000  00000000
    [5191.364] DOUT SR1.5:  00100000  00000000
    [5191.364] DOUT SR1.4:  00100000  00000000
    [5191.364] DOUT SR1.3:  00000000  00000000
    [5191.364] DOUT SR1.2:  00000000  00000000
    [5191.364] DOUT SR1.1:  00000000  00000000
    [5191.364] DOUT SR1.0:  00000000  00000000
    [5191.364] DOUT SR2.7:  00000000  00000000
    [5191.365] DOUT SR2.6:  00000000  00000000
    [5191.365] DOUT SR2.5:  00000000  00000000
    [5191.365] DOUT SR2.4:  00000000  00000000
    [5191.365] DOUT SR2.3:  00000000  00000000
    [5191.366] DOUT SR2.2:  00000000  00000000
    [5191.366] DOUT SR2.1:  00000000  00000000
    [5191.366] DOUT SR2.0:  00000000  00000000
    [5191.366] KB1: DOUT#1.D4 / DIN#1.D3: depressed  -->  key=11, break contact, note=B-1 (47)
    [5191.366] Entry: timestamp_break=0 timestamp_make=0
    [5191.429] ---
    [5191.429] DOUT SR1.7:  00000000  00000000
    [5191.430] DOUT SR1.6:  00000000  00000000
    [5191.430] DOUT SR1.5:  00100000  00000000
    [5191.430] DOUT SR1.4:  00110000  00000000
    [5191.430] DOUT SR1.3:  00000000  00000000
    [5191.430] DOUT SR1.2:  00000000  00000000
    [5191.430] DOUT SR1.1:  00000000  00000000
    [5191.430] DOUT SR1.0:  00000000  00000000
    [5191.430] DOUT SR2.7:  00000000  00000000
    [5191.430] DOUT SR2.6:  00000000  00000000
    [5191.431] DOUT SR2.5:  00000000  00000000
    [5191.431] DOUT SR2.4:  00000000  00000000
    [5191.431] DOUT SR2.3:  00000000  00000000
    [5191.431] DOUT SR2.2:  00000000  00000000
    [5191.431] DOUT SR2.1:  00000000  00000000
    [5191.432] DOUT SR2.0:  00000000  00000000
    [5191.432] KB1: DOUT#1.D4 / DIN#1.D3: pressed    -->  key=11, break contact, note=B-1 (47)
    [5191.432] Entry: timestamp_break=55468 timestamp_make=0
    [5191.435] ---
    [5191.435] DOUT SR1.7:  00000000  00000000
    [5191.436] DOUT SR1.6:  00000000  00000000
    [5191.436] DOUT SR1.5:  00110000  00000000
    [5191.436] DOUT SR1.4:  00110000  00000000
    [5191.436] DOUT SR1.3:  00000000  00000000
    [5191.436] DOUT SR1.2:  00000000  00000000
    [5191.436] DOUT SR1.1:  00000000  00000000
    [5191.436] DOUT SR1.0:  00000000  00000000
    [5191.436] DOUT SR2.7:  00000000  00000000
    [5191.436] DOUT SR2.6:  00000000  00000000
    [5191.437] DOUT SR2.5:  00000000  00000000
    [5191.437] DOUT SR2.4:  00000000  00000000
    [5191.437] DOUT SR2.3:  00000000  00000000
    [5191.437] DOUT SR2.2:  00000000  00000000
    [5191.437] DOUT SR2.1:  00000000  00000000
    [5191.438] DOUT SR2.0:  00000000  00000000
    [5191.438] KB1: DOUT#1.D5 / DIN#1.D3: pressed    -->  key=11, make contact, note=B-1 (47)
    [5191.438] Entry: timestamp_break=55468 timestamp_make=55534
    [5191.438] PRESSED note=B-1, delay=66, velocity=125 (played from a white key)
    [5191.469] ---
    [5191.470] DOUT SR1.7:  00000000  00000000
    [5191.470] DOUT SR1.6:  00000000  00000000
    [5191.470] DOUT SR1.5:  00010000  00000000
    [5191.470] DOUT SR1.4:  00110000  00000000
    [5191.470] DOUT SR1.3:  00000000  00000000
    [5191.470] DOUT SR1.2:  00000000  00000000
    [5191.470] DOUT SR1.1:  00000000  00000000
    [5191.470] DOUT SR1.0:  00000000  00000000
    [5191.470] DOUT SR2.7:  00000000  00000000
    [5191.470] DOUT SR2.6:  00000000  00000000
    [5191.471] DOUT SR2.5:  00000000  00000000
    [5191.471] DOUT SR2.4:  00000000  00000000
    [5191.471] DOUT SR2.3:  00000000  00000000
    [5191.471] DOUT SR2.2:  00000000  00000000
    [5191.471] DOUT SR2.1:  00000000  00000000
    [5191.472] DOUT SR2.0:  00000000  00000000
    [5191.472] KB1: DOUT#1.D5 / DIN#1.D2: depressed  -->  key=10, make contact, note=A#1 (46)
    [5191.472] Entry: timestamp_break=0 timestamp_make=0
    [5191.472] RELEASED note=A#1
    [5191.502] ---
    [5191.503] DOUT SR1.7:  00000000  00000000
    [5191.503] DOUT SR1.6:  00000000  00000000
    [5191.503] DOUT SR1.5:  00110000  00000000
    [5191.503] DOUT SR1.4:  00110000  00000000
    [5191.503] DOUT SR1.3:  00000000  00000000
    [5191.503] DOUT SR1.2:  00000000  00000000
    [5191.503] DOUT SR1.1:  00000000  00000000
    [5191.503] DOUT SR1.0:  00000000  00000000
    [5191.504] DOUT SR2.7:  00000000  00000000
    [5191.504] DOUT SR2.6:  00000000  00000000
    [5191.504] DOUT SR2.5:  00000000  00000000
    [5191.504] DOUT SR2.4:  00000000  00000000
    [5191.504] DOUT SR2.3:  00000000  00000000
    [5191.504] DOUT SR2.2:  00000000  00000000
    [5191.504] DOUT SR2.1:  00000000  00000000
    [5191.504] DOUT SR2.0:  00000000  00000000
    [5191.505] KB1: DOUT#1.D5 / DIN#1.D2: pressed    -->  key=10, make contact, note=A#1 (46)
    [5191.505] Entry: timestamp_break=0 timestamp_make=56224
    [5191.528] ---
    [5191.529] DOUT SR1.7:  00000000  00000000
    [5191.529] DOUT SR1.6:  00000000  00000000
    [5191.529] DOUT SR1.5:  00100000  00000000
    [5191.529] DOUT SR1.4:  00110000  00000000
    [5191.529] DOUT SR1.3:  00000000  00000000
    [5191.529] DOUT SR1.2:  00000000  00000000
    [5191.529] DOUT SR1.1:  00000000  00000000
    [5191.529] DOUT SR1.0:  00000000  00000000
    [5191.529] DOUT SR2.7:  00000000  00000000
    [5191.529] DOUT SR2.6:  00000000  00000000
    [5191.530] DOUT SR2.5:  00000000  00000000
    [5191.530] DOUT SR2.4:  00000000  00000000
    [5191.530] DOUT SR2.3:  00000000  00000000
    [5191.530] DOUT SR2.2:  00000000  00000000
    [5191.531] DOUT SR2.1:  00000000  00000000
    [5191.531] DOUT SR2.0:  00000000  00000000
    [5191.531] KB1: DOUT#1.D5 / DIN#1.D3: depressed  -->  key=11, make contact, note=B-1 (47)
    [5191.531] Entry: timestamp_break=0 timestamp_make=0
    [5191.531] RELEASED note=B-1
    [5191.537] ---
    [5191.537] DOUT SR1.7:  00000000  00000000
    [5191.538] DOUT SR1.6:  00000000  00000000
    [5191.538] DOUT SR1.5:  00100000  00000000
    [5191.538] DOUT SR1.4:  00100000  00000000
    [5191.538] DOUT SR1.3:  00000000  00000000
    [5191.538] DOUT SR1.2:  00000000  00000000
    [5191.538] DOUT SR1.1:  00000000  00000000
    [5191.538] DOUT SR1.0:  00000000  00000000
    [5191.538] DOUT SR2.7:  00000000  00000000
    [5191.539] DOUT SR2.6:  00000000  00000000
    [5191.539] DOUT SR2.5:  00000000  00000000
    [5191.539] DOUT SR2.4:  00000000  00000000
    [5191.539] DOUT SR2.3:  00000000  00000000
    [5191.540] DOUT SR2.2:  00000000  00000000
    [5191.540] DOUT SR2.1:  00000000  00000000
    [5191.540] DOUT SR2.0:  00000000  00000000
    [5191.540] KB1: DOUT#1.D4 / DIN#1.D3: depressed  -->  key=11, break contact, note=B-1 (47)
    [5191.540] Entry: timestamp_break=0 timestamp_make=0
    [5191.587] ---
    [5191.588] DOUT SR1.7:  00000000  00000000
    [5191.588] DOUT SR1.6:  00000000  00000000
    [5191.588] DOUT SR1.5:  00100000  00000000
    [5191.588] DOUT SR1.4:  00110000  00000000
    [5191.588] DOUT SR1.3:  00000000  00000000
    [5191.588] DOUT SR1.2:  00000000  00000000
    [5191.588] DOUT SR1.1:  00000000  00000000
    [5191.588] DOUT SR1.0:  00000000  00000000
    [5191.589] DOUT SR2.7:  00000000  00000000
    [5191.589] DOUT SR2.6:  00000000  00000000
    [5191.589] DOUT SR2.5:  00000000  00000000
    [5191.589] DOUT SR2.4:  00000000  00000000
    [5191.589] DOUT SR2.3:  00000000  00000000
    [5191.589] DOUT SR2.2:  00000000  00000000
    [5191.590] DOUT SR2.1:  00000000  00000000
    [5191.590] DOUT SR2.0:  00000000  00000000
    [5191.590] KB1: DOUT#1.D4 / DIN#1.D3: pressed    -->  key=11, break contact, note=B-1 (47)
    [5191.590] Entry: timestamp_break=57093 timestamp_make=0
    [5191.594] ---
    [5191.595] DOUT SR1.7:  00000000  00000000
    [5191.595] DOUT SR1.6:  00000000  00000000
    [5191.595] DOUT SR1.5:  00110000  00000000
    [5191.595] DOUT SR1.4:  00110000  00000000
    [5191.595] DOUT SR1.3:  00000000  00000000
    [5191.595] DOUT SR1.2:  00000000  00000000
    [5191.595] DOUT SR1.1:  00000000  00000000
    [5191.595] DOUT SR1.0:  00000000  00000000
    [5191.595] DOUT SR2.7:  00000000  00000000
    [5191.596] DOUT SR2.6:  00000000  00000000
    [5191.596] DOUT SR2.5:  00000000  00000000
    [5191.596] DOUT SR2.4:  00000000  00000000
    [5191.596] DOUT SR2.3:  00000000  00000000
    [5191.596] DOUT SR2.2:  00000000  00000000
    [5191.597] DOUT SR2.1:  00000000  00000000
    [5191.597] DOUT SR2.0:  00000000  00000000
    [5191.597] KB1: DOUT#1.D5 / DIN#1.D3: pressed    -->  key=11, make contact, note=B-1 (47)
    [5191.597] Entry: timestamp_break=57093 timestamp_make=57159
    [5191.597] PRESSED note=B-1, delay=66, velocity=125 (played from a white key)
    [5191.638] ---
    [5191.639] DOUT SR1.7:  00000000  00000000
    [5191.639] DOUT SR1.6:  00000000  00000000
    [5191.639] DOUT SR1.5:  00010000  00000000
    [5191.639] DOUT SR1.4:  00110000  00000000
    [5191.639] DOUT SR1.3:  00000000  00000000
    [5191.639] DOUT SR1.2:  00000000  00000000
    [5191.639] DOUT SR1.1:  00000000  00000000
    [5191.639] DOUT SR1.0:  00000000  00000000
    [5191.639] DOUT SR2.7:  00000000  00000000
    [5191.640] DOUT SR2.6:  00000000  00000000
    [5191.640] DOUT SR2.5:  00000000  00000000
    [5191.640] DOUT SR2.4:  00000000  00000000
    [5191.640] DOUT SR2.3:  00000000  00000000
    [5191.641] DOUT SR2.2:  00000000  00000000
    [5191.641] DOUT SR2.1:  00000000  00000000
    [5191.641] DOUT SR2.0:  00000000  00000000
    [5191.641] KB1: DOUT#1.D5 / DIN#1.D2: depressed  -->  key=10, make contact, note=A#1 (46)
    [5191.641] Entry: timestamp_break=0 timestamp_make=56224
    [5191.664] ---
    [5191.664] DOUT SR1.7:  00000000  00000000
    [5191.664] DOUT SR1.6:  00000000  00000000
    [5191.664] DOUT SR1.5:  00110000  00000000
    [5191.664] DOUT SR1.4:  00110000  00000000
    [5191.664] DOUT SR1.3:  00000000  00000000
    [5191.664] DOUT SR1.2:  00000000  00000000
    [5191.664] DOUT SR1.1:  00000000  00000000
    [5191.664] DOUT SR1.0:  00000000  00000000
    [5191.664] DOUT SR2.7:  00000000  00000000
    [5191.665] DOUT SR2.6:  00000000  00000000
    [5191.665] DOUT SR2.5:  00000000  00000000
    [5191.665] DOUT SR2.4:  00000000  00000000
    [5191.665] DOUT SR2.3:  00000000  00000000
    [5191.665] DOUT SR2.2:  00000000  00000000
    [5191.665] DOUT SR2.1:  00000000  00000000
    [5191.665] DOUT SR2.0:  00000000  00000000
    [5191.667] KB1: DOUT#1.D5 / DIN#1.D2: pressed    -->  key=10, make contact, note=A#1 (46)
    [5191.667] Entry: timestamp_break=0 timestamp_make=56224
    [5191.683] ---
    [5191.684] DOUT SR1.7:  00000000  00000000
    [5191.684] DOUT SR1.6:  00000000  00000000
    [5191.684] DOUT SR1.5:  00100000  00000000
    [5191.684] DOUT SR1.4:  00110000  00000000
    [5191.684] DOUT SR1.3:  00000000  00000000
    [5191.684] DOUT SR1.2:  00000000  00000000
    [5191.684] DOUT SR1.1:  00000000  00000000
    [5191.684] DOUT SR1.0:  00000000  00000000
    [5191.684] DOUT SR2.7:  00000000  00000000
    [5191.685] DOUT SR2.6:  00000000  00000000
    [5191.685] DOUT SR2.5:  00000000  00000000
    [5191.685] DOUT SR2.4:  00000000  00000000
    [5191.685] DOUT SR2.3:  00000000  00000000
    [5191.685] DOUT SR2.2:  00000000  00000000
    [5191.685] DOUT SR2.1:  00000000  00000000
    [5191.686] DOUT SR2.0:  00000000  00000000
    [5191.686] KB1: DOUT#1.D5 / DIN#1.D3: depressed  -->  key=11, make contact, note=B-1 (47)
    [5191.686] Entry: timestamp_break=0 timestamp_make=0
    [5191.686] RELEASED note=B-1
    [5191.688] ---
    [5191.688] DOUT SR1.7:  00000000  00000000
    [5191.689] DOUT SR1.6:  00000000  00000000
    [5191.689] DOUT SR1.5:  00100000  00000000
    [5191.689] DOUT SR1.4:  00100000  00000000
    [5191.689] DOUT SR1.3:  00000000  00000000
    [5191.689] DOUT SR1.2:  00000000  00000000
    [5191.689] DOUT SR1.1:  00000000  00000000
    [5191.689] DOUT SR1.0:  00000000  00000000
    [5191.689] DOUT SR2.7:  00000000  00000000
    [5191.689] DOUT SR2.6:  00000000  00000000
    [5191.690] DOUT SR2.5:  00000000  00000000
    [5191.690] DOUT SR2.4:  00000000  00000000
    [5191.690] DOUT SR2.3:  00000000  00000000
    [5191.690] DOUT SR2.2:  00000000  00000000
    [5191.691] DOUT SR2.1:  00000000  00000000
    [5191.691] DOUT SR2.0:  00000000  00000000
    [5191.691] KB1: DOUT#1.D4 / DIN#1.D3: depressed  -->  key=11, break contact, note=B-1 (47)
    [5191.691] Entry: timestamp_break=0 timestamp_make=0
    [5192.328] ---
    [5192.328] DOUT SR1.7:  00000000  00000000
    [5192.329] DOUT SR1.6:  00000000  00000000
    [5192.329] DOUT SR1.5:  00000000  00000000
    [5192.329] DOUT SR1.4:  00100000  00000000
    [5192.329] DOUT SR1.3:  00000000  00000000
    [5192.329] DOUT SR1.2:  00000000  00000000
    [5192.329] DOUT SR1.1:  00000000  00000000
    [5192.329] DOUT SR1.0:  00000000  00000000
    [5192.329] DOUT SR2.7:  00000000  00000000
    [5192.329] DOUT SR2.6:  00000000  00000000
    [5192.330] DOUT SR2.5:  00000000  00000000
    [5192.330] DOUT SR2.4:  00000000  00000000
    [5192.330] DOUT SR2.3:  00000000  00000000
    [5192.330] DOUT SR2.2:  00000000  00000000
    [5192.331] DOUT SR2.1:  00000000  00000000
    [5192.331] DOUT SR2.0:  00000000  00000000
    [5192.331] KB1: DOUT#1.D5 / DIN#1.D2: depressed  -->  key=10, make contact, note=A#1 (46)
    [5192.331] Entry: timestamp_break=0 timestamp_make=56224
    [5192.336] ---
    [5192.336] DOUT SR1.7:  00000000  00000000
    [5192.337] DOUT SR1.6:  00000000  00000000
    [5192.337] DOUT SR1.5:  00000000  00000000
    [5192.337] DOUT SR1.4:  00000000  00000000
    [5192.337] DOUT SR1.3:  00000000  00000000
    [5192.337] DOUT SR1.2:  00000000  00000000
    [5192.337] DOUT SR1.1:  00000000  00000000
    [5192.337] DOUT SR1.0:  00000000  00000000
    [5192.338] DOUT SR2.7:  00000000  00000000
    [5192.338] DOUT SR2.6:  00000000  00000000
    [5192.338] DOUT SR2.5:  00000000  00000000
    [5192.338] DOUT SR2.4:  00000000  00000000
    [5192.338] DOUT SR2.3:  00000000  00000000
    [5192.338] DOUT SR2.2:  00000000  00000000
    [5192.338] DOUT SR2.1:  00000000  00000000
    [5192.338] DOUT SR2.0:  00000000  00000000
    [5192.339] KB1: DOUT#1.D4 / DIN#1.D2: depressed  -->  key=10, break contact, note=A#1 (46)
    [5192.339] Entry: timestamp_break=0 timestamp_make=56224

    at 5191.503 I pressed the a#1 key after partially depressing, so make contact was briefly open while break contact was closed. 

    No more A#1 sound while key A#1 is pressed.

    Workaround #1: disable velocity

    set kb 1 break_is_make on

    Workaround #2: debounce

    set kb 1 make_debounced on

    And all works, more or less.

    Imho when key is pressed, corresponding note should play, with low velocity, but I cannot imagine how to calculate it (perhaps double of time passed from make contact open and make contact close). 

     

    Regards,

    Cristiano

  7. Hi all,

    I quickly searched if someone else detected this behaviour, but I did not find anything similar, in case please forgive.

    The environment is MBHP_CORE_STM32F4, one MBHP_DIO_MATRIX connected with two 61 keys Fatar keyboards, with velocity.

    Default.ngc is 

    RESET_HW
    
    LCD "%CKeyboard Test"
    
    # reduce number of SRs for faster scan
    # with 2 SRs the scan takes ca. 500 uS instead of 2.5 mS
    SRIO num_sr=4
    
    # keyboard configuration
    KEYBOARD n=1   rows=8  dout_sr1=1  dout_sr2=2  din_sr1=1  din_sr2=2 \
                   din_inverted=0  break_inverted=0  din_key_offset=32 \
                   scan_velocity=1  scan_optimized=0  note_offset=36 \
                   delay_fastest=50  delay_fastest_black_keys=0  delay_slowest=1000
    
    KEYBOARD n=2   rows=8  dout_sr1=3  dout_sr2=4  din_sr1=3  din_sr2=4 \
                   din_inverted=0  break_inverted=0  din_key_offset=32 \
                   scan_velocity=1  scan_optimized=0  note_offset=36 \
                   delay_fastest=50  delay_fastest_black_keys=0  delay_slowest=1000
    
    EVENT_KB id=1  type=NoteOn chn=1 key=any use_key_number=1 range=0:127  lcd_pos=1:1:1 label="Note %n"
    
    EVENT_KB id=2  type=NoteOn chn=2 key=any use_key_number=1 range=0:127  lcd_pos=1:2:1 label="Note %n"
    
    
    ROUTER n=1 src_port=USB1 src_chn=17 dst_port=OUT1 dst_chn=17
    ROUTER n=2 src_port=IN1 src_chn=17 dst_port=USB1 dst_chn=17

    If I play a trill (with or without scanning optimisation), more or less one time on four I lose some noteOn.
    When connected with a synthesizer, it is simple to hear that sometimes one note (tipically lower of two, but I am not sure) does not play. If I am lucky, I can stop playing keeping the lower key pressed, but no sound comes from synth.

    I tried to see what happens with MIOS Studio if I play (for example) e2 d#2 e2 d#2 e2 d#2 e2 d#2 (e2 d#2 4 times)

    [22240.513] 90 34 7c   Chn# 1  Note On  E-2  Vel:124
    [22240.606] 90 33 7d   Chn# 1  Note On  D#2  Vel:125
    [22240.636] 90 34 00   Chn# 1  Note Off E-2 (optimized)
    [22240.714] 90 33 00   Chn# 1  Note Off D#2 (optimized)
    [22240.727] 90 34 7b   Chn# 1  Note On  E-2  Vel:123
    [22240.813] 90 33 7d   Chn# 1  Note On  D#2  Vel:125
    [22240.819] 90 34 00   Chn# 1  Note Off E-2 (optimized)
    [22240.911] 90 33 00   Chn# 1  Note Off D#2 (optimized)
    [22240.911] 90 34 7c   Chn# 1  Note On  E-2  Vel:124
    [22240.999] 90 33 7d   Chn# 1  Note On  D#2  Vel:125
    [22241.004] 90 34 00   Chn# 1  Note Off E-2 (optimized)
    [22241.060] 90 34 66   Chn# 1  Note On  E-2  Vel:102
    [22241.097] 90 33 00   Chn# 1  Note Off D#2 (optimized)
    [22241.137] 90 34 00   Chn# 1  Note Off E-2 (optimized)

    I tried also with Midibox_KB, only with scanning optimisation off (it seems that scan_optimized=1 directive is not processed), verified on terminal with command "kb 1", but it seems that the problem still occurs.
    I tried also with couple of white keys, and it happens as well.

    Anyone can suggest a solution, if there is something to modify in NGC file, or if I am disregarding something?

    Thanks to all and regards,

    Cristiano

  8. On 6/1/2018 at 10:24 PM, TK. said:

    Hi Christiano,

    very nice first posting with so many detailed information! Welcome on board! :)

    Actually providing a proper solution for keyboard transpose (and velocity map) changes was still on my TODO list.

    It's implemented now, please try this version:
    http://www.ucapps.de/mios32/midibox_ng_v1_036_pre4.zip

    A configuration example (for a single keyboard) can be found under:
    http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_ng_v1%2Fcfg%2Ftests%2Fkb_6.ngc
    http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_ng_v1%2Fcfg%2Ftests%2Fkb_6.ngr

    As you can see, I preferred to use .NGR commands instead of meta events, because we want to change parameters of an event (KB:1) instead of a physical device (KB)

    I tested this with a Fatar keyboard (donated by FantomXR! :)) - works fine! I can even change the transpose value with the SCS encoder while playing some keys, the corresponding note-off events are matching so that we won't get hanging notes.

     

    Wunderbar!

    I want a poster of you to hang up in my bedroom (and many thanks to FantomXR, too) ;)

    On 6/1/2018 at 10:24 PM, TK. said:

     

     

    We've many solutions for this case

    1) the most simple: I could increase the number of supported keyboards from 2 to 4, because I think that especially for organs the slightly increased latency (a couple of uS, not more!) doesn't really matter. This would mean that you could control all keyboards from a single core

     

    Hmm.

    Ok for keyboard support increase, but I noticed some keys pressure being lost executing trillos on velocity enabled keyboard with midibox_NG project. I would like to examine in depth this behaviour (I am not sure this happens at synth or keyboard level), but probably I would be more comfortable with a midibox_KB board to scan only keyboards (pedalboard being slowly played).

    Furthermore, soon or late I would like to substitute current synthesizer, and I will probably need to manage also combinations' buttons and expression pedal, hence it could be necessary to split work on two boards.

    I have very few time to made experiments during this period, so I will try as soon as possible to understand where and if there is a problem with single core approach.

    On 6/1/2018 at 10:24 PM, TK. said:

     

    2) for reacting on a single CC number multiple times, just define EVENT_* with different IDs

     

    Thank you, I will try. The problem should be to send multiple CC numbers, following a sequence (CC 101 and 100 being a preliminary instruction to tell which is registered parameter, and CC 6 the value to write).

    In any case, I am not sure this being the better way to obtain transposition message because:

    1. it is not atomic (with two midi message interleaving writing CC 101 or 100 before CC 6, we will not be able to predict what will happen),
    2. another device could try to send this command to a synth thru midibox. If both midibox_NG and synthesizer manage that command, transposition will double its value

    I have to study these aspects a bit more (maybe a SysEx message could be better).

    For the moment many thanks, I will update when ready.

    Best regards, Cristiano

  9. Hi All,

    first of all, many thanks to Thorsten for his great work!

    Excuse me if this is a trivial question, but I looked for a while at the forum without reaching key information.

    I have already prepared one MBHP_CORE_STM32F4, one MBHP_DIO_MATRIX (connected with a FATAR keyboard), a SCS, a DOGM display, and all seems working correctly.

    I am trying to substitute two broken keyboards of a midi church organ using two new 61 keys Fatar keyboards and midibox_NG project. I would like to control also pedalboard using a midibox_NG (having midibox NG or KB a keyboard number limit of 2), and control actual synthesizer completely by midi messages (perhaps in the future I will substitute also synthesizer with a PC based or other synth, I do not know).

    I need to transpose two keyboards and pedalboard using only one encoder, and I have to do this by transposing EVENT_KB (having the synth a mechanical transposition encoder, not perfectly working).

    I read about kb_transpose parameter of EVENT_KB, but how can I modify it runtime according with SCS encoder rotation?
    Perhaps I should introduce a meta like KbBreakIsMake (say KbTranspose), but It seems being a bit more complicated...

    Furthermore, I would like to send transposition request to another device (for the third keyboard), but I am not sure of how to do this, and how to capture that information on receiver.
    I suspect having to use Registered Parameter 2 setting (https://www.midi.org/specifications/item/table-3-control-change-messages-data-bytes-2), sending three CC (101 : 0, 100 : 2, 6 : transposition + 64), but NGC cc directives processing allow to send only one CC per event. On receiver side I do not know how to retrieve this registered parameter.

    If anyone has a suggestion, at least to point me on the right direction, I will appreciate it.

    Thanks to all, regards,

    Cristiano

     

×
×
  • Create New...