COMING SOON

Production-ready, cost-effective solution

on

Olimex A20 OLinuXino Micro

 
 
 
 
 
 

GPIO CONNECTION DIAGRAM

 

 

Pressing a key activates two contacts: first A(0,1,2,3,4,5,6,7), then B(0,1,2,3,4,5,6,7).
P0 = MIDI CH0, 8x(4+4) Pedal0, A0=(PD24,PD25,PD26,PD27), B0=(null)
K1 = MIDI CH1, 8x(8+8) Keyboard1, A1=(PG0,PG1,PE0,PE1,PH16,PH17,PB4,PB5), B1=(PG2,PG3,PE2,PE3,PH18,PH19,PB6,PB7)
K2 = MIDI CH2, 8x(8+8) Keyboard2, A2=(PG4,PG5,PE4,PE5,PH20,PH21,PB10,PB11), B2=(PG6,PG7,PE6,PE7,PH22,PH23,PB12,PB13)
K3 = MIDI CH3, 8x(8+8) Keyboard3, A3=(PG8,PG9,PE8,PE9,PH24,PH25,PH12,PH13), B3=(PG10,PG11,PE10,PE11,PH26,PH27,PH14,PH15)
K4 = MIDI CH4, 8x(8+8) Keyboard4, A4=(PI0,PI1,PI10,PI11,PC17,PC18,PH9,PH0), B4=(PI2,PI3,PI14,PI15,PC23,PC24,PH10,PB3)

The diode matrix is driven by the output lines. There are 3 equivalent synchronous outputs O(0,1,2,3,4,5,6,7). The electrical resistance must be added according to need. In each case the pulse is very short (~10us) but can be adjusted via software with a MIDI configuration command.
O0=(PD16,PD17,PD18,PD19,PD20,PD21,PD22,PD23)
O1=(PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15)
O2=(PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7)

 

 

 

 

BenckmarkMIDI check MIDI performance on

USB OTG port as

"Linux Gadget" USB MIDI virtual device

 
#alsa-midi-latency-test -o 24:0 -i 24:0 -R -S 1000000 -3 -r -w 0.5 -x
 
> alsa-midi-latency-test 0.0.5
> running on Linux release 4.1.5-rt5 (version #1 SMP PREEMPT RT Fri Sep 11 03:20:44 CEST 2015) on x86_64
> set_realtime_priority(SCHED_FIFO, 99).. done.
> clock resolution: 0.000000001 s
> interval between measurements: 0.500 .. 1.000 ms

> sampling 1000000 midi latency values - please wait ...
> press Ctrl+C to abort test

> done.

> latency distribution:
...
  0.059 -  0.060 ms:       75 #
  0.060 -  0.061 ms:     4781 ######
  0.061 -  0.062 ms:    10766 #############
  0.062 -  0.063 ms:     8139 ##########
  0.063 -  0.064 ms:    19781 ########################
  0.064 -  0.065 ms:    20799 #########################
  0.065 -  0.066 ms:    20535 #########################
  0.066 -  0.067 ms:    20687 #########################
  0.067 -  0.068 ms:    20491 #########################
  0.068 -  0.069 ms:    20061 ########################
  0.069 -  0.070 ms:    20034 ########################
  0.070 -  0.071 ms:    20140 ########################
  0.071 -  0.072 ms:    20848 #########################
  0.072 -  0.073 ms:    24566 ##############################
  0.073 -  0.074 ms:    27959 ##################################
  0.074 -  0.075 ms:    30584 #####################################
  0.075 -  0.076 ms:    33069 ########################################
  0.076 -  0.077 ms:    36450 ############################################
  0.077 -  0.078 ms:    37557 ##############################################
  0.078 -  0.079 ms:    39061 ###############################################
  0.079 -  0.080 ms:    38794 ###############################################
  0.080 -  0.081 ms:    39553 ################################################
  0.081 -  0.082 ms:    41265 ##################################################
  0.082 -  0.083 ms:    38730 ###############################################
  0.083 -  0.084 ms:    22118 ###########################
  0.084 -  0.085 ms:    23029 ############################
  0.085 -  0.086 ms:    23170 ############################
  0.086 -  0.087 ms:    22896 ############################
  0.087 -  0.088 ms:    22775 ############################
  0.088 -  0.089 ms:    23106 ############################
  0.089 -  0.090 ms:    22956 ############################
  0.090 -  0.091 ms:    23344 ############################
  0.091 -  0.092 ms:    22948 ############################
  0.092 -  0.093 ms:    22661 ###########################
  0.093 -  0.094 ms:    20392 #########################
  0.094 -  0.095 ms:    17507 #####################
  0.095 -  0.096 ms:    15593 ###################
  0.096 -  0.097 ms:    13152 ################
  0.097 -  0.098 ms:    10093 ############
  0.098 -  0.099 ms:     7286 #########
  0.099 -  0.100 ms:     7438 #########
  0.100 -  0.101 ms:     7595 #########
  0.101 -  0.102 ms:     7531 #########
  0.102 -  0.103 ms:     7406 #########
  0.103 -  0.104 ms:     6494 ########
  0.104 -  0.105 ms:     4312 #####
  0.105 -  0.106 ms:     4094 #####
  0.106 -  0.107 ms:     4345 #####
  0.107 -  0.108 ms:     4112 #####
  0.108 -  0.109 ms:     4225 #####
  0.109 -  0.110 ms:     4163 #####
  0.110 -  0.111 ms:     4272 #####
  0.111 -  0.112 ms:     4223 #####
  0.112 -  0.113 ms:     4193 #####
  0.113 -  0.114 ms:     4088 #####
  0.114 -  0.115 ms:     3847 #####
  0.115 -  0.116 ms:     3246 ####
  0.116 -  0.117 ms:     2400 ###
  0.117 -  0.118 ms:     1517 ##
  0.118 -  0.119 ms:      644 #
  0.119 -  0.120 ms:      176 #
  0.120 -  0.121 ms:      162 #
  0.121 -  0.122 ms:      120 #
  0.122 -  0.123 ms:      162 #
  0.123 -  0.124 ms:      151 #
  0.124 -  0.125 ms:      145 #
  0.125 -  0.126 ms:      112 #
  0.126 -  0.127 ms:       96 #
  0.127 -  0.128 ms:       84 #
  0.128 -  0.129 ms:       95 #
  0.129 -  0.130 ms:       87 #
  0.130 -  0.131 ms:       80 #
  0.131 -  0.132 ms:       86 #
  0.132 -  0.133 ms:       78 #
  0.133 -  0.134 ms:       89 #
  0.134 -  0.135 ms:       67 #
  0.135 -  0.136 ms:       62 #
  0.136 -  0.137 ms:       60 #
  0.137 -  0.138 ms:       43 #
  0.138 -  0.139 ms:       30 #
  0.139 -  0.140 ms:       14 #
  0.140 -  0.141 ms:       13 #
  0.141 -  0.142 ms:        6 #
  0.142 -  0.143 ms:       11 #
  0.143 -  0.144 ms:        7 #
  0.144 -  0.145 ms:        5 #
  0.145 -  0.146 ms:        5 #
  0.146 -  0.147 ms:        6 #
  0.147 -  0.148 ms:        8 #
  0.148 -  0.149 ms:        8 #
  0.149 -  0.150 ms:        7 #
  0.150 -  0.151 ms:        6 #
  0.151 -  0.152 ms:        7 #
  0.152 -  0.153 ms:        6 #
  0.153 -  0.154 ms:        5 #
  0.154 -  0.155 ms:        3 #
  0.155 -  0.156 ms:        1 #
...
  0.163 -  0.164 ms:        1 #

> SUCCESS

 best latency was 0.059 ms
 worst latency was 0.163 ms, which is great.