@@ -40,14 +40,15 @@ class Input extends EventEmitter {
40
40
this . _pendingSysex = false ;
41
41
this . _sysex = [ ] ;
42
42
this . name = name ;
43
+ this . inputPortNumberedNames = getInputs ( ) ;
43
44
44
45
if ( virtual ) {
45
46
this . _input . openVirtualPort ( name ) ;
46
47
} else {
47
48
const numInputs = this . _input . getPortCount ( ) ;
48
49
let found = false ;
49
50
for ( let i = 0 ; i < numInputs ; i ++ ) {
50
- if ( name === this . _input . getPortName ( i ) ) {
51
+ if ( name === this . inputPortNumberedNames [ i ] ) {
51
52
found = true ;
52
53
this . _input . openPort ( i ) ;
53
54
}
@@ -196,14 +197,15 @@ class Output {
196
197
constructor ( name , virtual ) {
197
198
this . _output = new midi . output ( ) ;
198
199
this . name = name ;
200
+ this . outputPortNumberedNames = getOutputs ( ) ;
199
201
200
202
if ( virtual ) {
201
203
this . _output . openVirtualPort ( name ) ;
202
204
} else {
203
205
const numOutputs = this . _output . getPortCount ( ) ;
204
206
let found = false ;
205
207
for ( let i = 0 ; i < numOutputs ; i ++ ) {
206
- if ( name === this . _output . getPortName ( i ) ) {
208
+ if ( name === this . outputPortNumberedNames [ i ] ) {
207
209
found = true ;
208
210
this . _output . openPort ( i ) ;
209
211
}
@@ -282,7 +284,14 @@ const getInputs = () => {
282
284
const input = new midi . input ( ) ;
283
285
const inputs = [ ] ;
284
286
for ( let i = 0 ; i < input . getPortCount ( ) ; i ++ ) {
285
- inputs . push ( input . getPortName ( i ) ) ;
287
+ var counter = 0 ;
288
+ const portName = input . getPortName ( i ) ;
289
+ var numberedPortName = portName ;
290
+ while ( inputs . includes ( numberedPortName ) ) {
291
+ counter ++ ;
292
+ numberedPortName = portName + counter ;
293
+ }
294
+ inputs . push ( numberedPortName ) ;
286
295
}
287
296
input . closePort ( ) ;
288
297
return inputs ;
@@ -292,7 +301,14 @@ const getOutputs = () => {
292
301
const output = new midi . output ( ) ;
293
302
const outputs = [ ] ;
294
303
for ( let i = 0 ; i < output . getPortCount ( ) ; i ++ ) {
295
- outputs . push ( output . getPortName ( i ) ) ;
304
+ var counter = 0 ;
305
+ const portName = output . getPortName ( i ) ;
306
+ var numberedPortName = portName ;
307
+ while ( outputs . includes ( numberedPortName ) ) {
308
+ counter ++ ;
309
+ numberedPortName = portName + counter ;
310
+ }
311
+ outputs . push ( numberedPortName ) ;
296
312
}
297
313
output . closePort ( ) ;
298
314
return outputs ;
0 commit comments