File size: 726 Bytes
e07621b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""Inference-side data models. Mirrored in web/shared-types/."""
from __future__ import annotations

from dataclasses import dataclass, field
from enum import Enum
from typing import Optional


class JobStatus(str, Enum):
    PENDING = "pending"
    QUEUED = "queued"
    PROCESSING = "processing"
    COMPLETED = "completed"
    FAILED = "failed"
    CANCELLED = "cancelled"


@dataclass
class TrackInfo:
    label: str
    program: int
    is_drum: bool
    note_count: int
    pitch_range: tuple[int, int]


@dataclass
class TranscriptionResult:
    midi_bytes: bytes
    status: str
    tracks: list[dict] = field(default_factory=list)
    total_notes: int = 0
    processing_time: float = 0.0
    file_type: str = "audio"