Upgrade to OPENRNDR 0.4 snapshot
This commit is contained in:
59
orx-jvm/orx-midi/src/main/kotlin/MidiEvent.kt
Normal file
59
orx-jvm/orx-midi/src/main/kotlin/MidiEvent.kt
Normal file
@@ -0,0 +1,59 @@
|
||||
package org.openrndr.extra.midi
|
||||
|
||||
enum class MidiEventType {
|
||||
NOTE_ON,
|
||||
NOTE_OFF,
|
||||
CONTROL_CHANGED,
|
||||
PROGRAM_CHANGE
|
||||
}
|
||||
|
||||
class MidiEvent(val eventType: MidiEventType) {
|
||||
var origin = Origin.DEVICE
|
||||
var control: Int = 0
|
||||
var program: Int = 0
|
||||
var note: Int = 0
|
||||
var channel: Int = 0
|
||||
var value: Int = 0
|
||||
var velocity: Int = 0
|
||||
|
||||
enum class Origin {
|
||||
DEVICE,
|
||||
USER
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun noteOn(channel: Int, note: Int, velocity: Int): MidiEvent {
|
||||
val midiEvent = MidiEvent(MidiEventType.NOTE_ON)
|
||||
midiEvent.velocity = velocity
|
||||
midiEvent.note = note
|
||||
midiEvent.channel = channel
|
||||
return midiEvent
|
||||
}
|
||||
|
||||
fun noteOff(channel: Int, note: Int): MidiEvent {
|
||||
val midiEvent = MidiEvent(MidiEventType.NOTE_OFF)
|
||||
midiEvent.note = note
|
||||
midiEvent.channel = channel
|
||||
return midiEvent
|
||||
}
|
||||
|
||||
fun controlChange(channel:Int, control: Int, value: Int): MidiEvent {
|
||||
val midiEvent = MidiEvent(MidiEventType.CONTROL_CHANGED)
|
||||
midiEvent.channel = channel
|
||||
midiEvent.control = control
|
||||
midiEvent.value = value
|
||||
return midiEvent
|
||||
}
|
||||
|
||||
fun programChange(channel:Int, program: Int): MidiEvent {
|
||||
val midiEvent = MidiEvent(MidiEventType.PROGRAM_CHANGE)
|
||||
midiEvent.channel = channel
|
||||
midiEvent.program = program
|
||||
return midiEvent
|
||||
}
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "MidiEvent(eventType=$eventType, origin=$origin, program=$program, control=$control, note=$note, channel=$channel, value=$value, velocity=$velocity)"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user