package vecosek-scene

  1. Overview
  2. Docs
type bpm_operation = [
  1. | `Set of int
  2. | `Incr of int
  3. | `Decr of int
  4. | `Mul of float
]
type id = string
type midi_event = {
  1. port : int;
  2. status : int;
  3. channel : int;
  4. data1 : int;
  5. data2 : int option;
}
type event =
  1. | Track_ends of id
  2. | Track_starts of id
  3. | Midi_input of midi_event
type action =
  1. | Raw_midi of midi_event
  2. | Track_on of id * int
  3. | Track_off of id
  4. | Bpm_operation of bpm_operation
  5. | Add_event_handler of event_handler
  6. | Remove_event_handler of event_handler
  7. | Remove_event_handler_by_event of event
  8. | All_tracks_off
  9. | Stop
and event_handler = {
  1. name : string;
  2. events : event list;
  3. actions : action list;
}
type ticked_action = {
  1. tick : int;
  2. action : action;
}
type track = {
  1. id : id;
  2. events : ticked_action list;
  3. length : int;
  4. name : string;
}
type scene = {
  1. active : id list;
  2. handlers : event_handler list;
  3. bpm : int;
  4. ppqn : int;
  5. tracks : track list;
}