Spaces:
Running
Running
File size: 892 Bytes
f23825d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import { AnyEvent } from "midifile-ts"
import { DistributiveOmit } from "../types"
import { AnySignalEvent } from "./signalEvents"
export interface TickProvider {
tick: number
}
export interface DeltaTimeProvider {
deltaTime: number
}
export type TrackEventRequired = TickProvider & {
id: number
// Mark as recording in progress
// Do not playback in Player
isRecording?: boolean
}
export type TrackEventOf<T> = DistributiveOmit<T, "deltaTime" | "channel"> &
TrackEventRequired
type NoteEventContent = {
type: "channel"
subtype: "note"
duration: number
noteNumber: number
velocity: number
}
export type NoteEvent = TrackEventOf<NoteEventContent>
export type TrackEvent = TrackEventOf<
AnyEvent | NoteEventContent | AnySignalEvent
>
export type FeatureOf<T> = DistributiveOmit<T, "deltaTime" | "tick" | "id">
export type AnyEventFeature = FeatureOf<AnyEvent>
|