MIDIPacketのdataのポインタを取得する

体重の減り方が緩やか過ぎて、今年の目標を下方修正したいです。
それはそうと、エクスクルーシブメッセージとか送る時など、
どうしたら良いのか気になっていたので他の方法を探してみました。

NoteOn/NoteOffとかコントロールチェンジとかでは困らないのですが、
バイト列が引数の場合とか、ObjCでAPIを用意する必要があって、
Swiftだけで書きたいという理由で試行錯誤してたのですが、
出来たのでメモしておきます。

import CoreMIDI

var packet = MIDIPacket()

print(packet.data.0) // => 0
print(packet.data.1) // => 0
print(packet.data.2) // => 0

let buf = UnsafeMutableBufferPointer(start: UnsafeMutablePointer<UInt8>(&packet.data.0), count: 256)
buf[0] = 10
buf[1] = 20
buf[2] = 30

print(packet.data.0) // => 10
print(packet.data.1) // => 20
print(packet.data.2) // => 30

おしまい。

Leave a Comment