jazz-midi icon indicating copy to clipboard operation
jazz-midi copied to clipboard

Add support for Linux/arm64

Open RubenVerborgh opened this issue 1 year ago • 0 comments

I tried some initial compilation on a Raspberry Pi 4 (Linux/arm64). Compilation succeeds and the resulting binary seems to work, but there are some funny effects:

  • It finds two extra non-existent input devices named input
  • It finds two extra non-existent output devices also named input
  • the change event keeps on triggering, alternating between adding and removing an output named my_port

Test output:

> [email protected] test
> node test && mocha

jazz: {
  MIDI: [Function: MIDI],
  isJazz: true,
  version: '1.5.2',
  MidiInInfo: [Function: MidiInInfo],
  MidiInList: [Function: MidiInList],
  MidiOutInfo: [Function: MidiOutInfo],
  MidiOutList: [Function: MidiOutList],
  Support: [Function: Support],
  Time: [Function: Time]
}
midi: MIDI {}
System: linux arm64
jazz.version: 1.5.2
midi.version: undefined
jazz.isJazz: true
midi.isJazz: undefined
jazz.MidiOutList(): [ 'Midi Through Port-0', 'input', 'input' ]
midi.MidiOutList(): [ 'Midi Through Port-0', 'input', 'input' ]
jazz.MidiInList(): [ 'Midi Through Port-0', 'input', 'input' ]
midi.MidiInList(): [ 'Midi Through Port-0', 'input', 'input' ]
jazz.Support(): [
  'ClearMidiIn',  'MidiInClose',
  'MidiInInfo',   'MidiInList',
  'MidiInOpen',   'MidiOut',
  'MidiOutClose', 'MidiOutInfo',
  'MidiOutList',  'MidiOutLong',
  'MidiOutOpen',  'MidiOutRaw',
  'Support',      'Time'
]
midi.Support(): [
  'ClearMidiIn',  'MidiInClose',
  'MidiInInfo',   'MidiInList',
  'MidiInOpen',   'MidiOut',
  'MidiOutClose', 'MidiOutInfo',
  'MidiOutList',  'MidiOutLong',
  'MidiOutOpen',  'MidiOutRaw',
  'Support',      'Time'
]
midi.out: true
midi.in: true
Out: 0 [ 'Midi Through Port-0', '', '0.0' ]
Out: 0 [ 'Midi Through Port-0', '', '0.0' ]
Out: 1 [ 'input', '', '0.0' ]
Out: 1 [ 'input', '', '0.0' ]
Out: 2 [ 'input', '', '0.0' ]
Out: 2 [ 'input', '', '0.0' ]
In: 0 [ 'Midi Through Port-0', '', '0.0' ]
In: 0 [ 'Midi Through Port-0', '', '0.0' ]
In: 1 [ 'input', '', '0.0' ]
In: 1 [ 'input', '', '0.0' ]
In: 2 [ 'input', '', '0.0' ]
In: 2 [ 'input', '', '0.0' ]
Testing: Midi Through Port-0 - OK!
   Manufacturer:
   version: 0.0
Testing: input - Cannot open!
Testing: input - Cannot open!


Node: 20.16.0
process.platform: linux
process.arch: arm64
jazz: {
  MIDI: [Function: MIDI],
  isJazz: true,
  version: '1.5.2',
  MidiInInfo: [Function: MidiInInfo],
  MidiInList: [Function: MidiInList],
  MidiOutInfo: [Function: MidiOutInfo],
  MidiOutList: [Function: MidiOutList],
  Support: [Function: Support],
  Time: [Function: Time]
}
midi: MIDI {}
MT: {
  MidiSrc: [Function: MidiSrc],
  MidiDst: [Function: MidiDst],
  version: '1.3.1'
}
  ✔ Info

  1 passing (17ms)

Change events:

{
  "inputs": {
    "added": [],
    "removed": []
  },
  "outputs": {
    "added": [
      {
        "id": "my_port",
        "name": "my_port",
        "manufacturer": "",
        "version": "0.0",
        "engine": "node"
      }
    ],
    "removed": []
  }
}
{
  "inputs": {
    "added": [],
    "removed": []
  },
  "outputs": {
    "added": [],
    "removed": []
  }
}
{
  "inputs": {
    "added": [],
    "removed": []
  },
  "outputs": {
    "added": [],
    "removed": [
      {
        "id": "my_port",
        "name": "my_port",
        "manufacturer": "",
        "version": "0.0",
        "engine": "node"
      },
      {
        "id": "my_port",
        "name": "my_port",
        "manufacturer": "",
        "version": "0.0",
        "engine": "node"
      }
    ]
  }
}

RubenVerborgh avatar Aug 12 '24 23:08 RubenVerborgh