midi_out.bmx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. ' Simple program to test MIDI output.
  2. SuperStrict
  3. Framework Audio.Midi
  4. Import BRL.StandardIO
  5. Local midiOut:TMidiOut = New TMidiOut.Create()
  6. If midiOut.getPortCount() = 0 Then
  7. Print "No Output Ports"
  8. End
  9. End If
  10. For Local i:Int = 0 Until midiOut.getPortCount()
  11. Print " Output port #" + i + " : " + midiOut.getPortName(i)
  12. Next
  13. Print "Opening " + midiOut.getPortName()
  14. midiOut.openPort(0)
  15. Local message:Byte[] = New Byte[3]
  16. ' Send out a series of MIDI messages.
  17. ' Program change: 192, 5
  18. message[0] = 192
  19. message[1] = 5
  20. midiout.putMessage(message, 2)
  21. message = New Byte[3]
  22. ' Control Change: 176, 7, 100 (volume)
  23. message[0] = 176
  24. message[1] = 7
  25. message[2] = 100
  26. midiout.putMessage(message, 3)
  27. ' Note On: 144, 64, 90
  28. message[0] = 144
  29. message[1] = 64
  30. message[2] = 90
  31. midiout.putMessage(message, 3)
  32. Delay(500)
  33. ' Note Off: 128, 64, 40
  34. message[0] = 128
  35. message[1] = 64
  36. message[2] = 40
  37. midiout.putMessage(message, 3)
  38. message = New Byte[6]
  39. ' Sysex: 240, 67, 4, 3, 2, 247
  40. message[0] = 240
  41. message[1] = 67
  42. message[2] = 4
  43. message[3] = 3
  44. message[4] = 2
  45. message[5] = 247
  46. midiout.putMessage(message, 6)
  47. midiout.free()