Audio Models

Data models for audio file management and metadata.

Core Audio Models

AudioMetadata

class idtap.AudioMetadata(title: str | None = None, musicians: List[Musician] = <factory>, location: Location | None = None, date: RecordingDate | None = None, ragas: Dict[str, ~typing.Any]]=<factory>, sa_estimate: float | None = None, permissions: Permissions = <factory>)[source]

Bases: object

Complete metadata for an audio recording.

Parameters:
  • title – Optional title for the recording

  • musicians – List of Musician objects

  • location – Optional Location object

  • date – Optional RecordingDate object

  • ragas – List of raga specifications. Accepts multiple formats: - AudioRaga objects: AudioRaga(name=”Rageshree”) (recommended) - Strings: “Rageshree” (auto-converted to AudioRaga) - Name dicts: {“name”: “Rageshree”} (auto-converted to AudioRaga) - Legacy format: {“Rageshree”: {“performance_sections”: {}}} (auto-converted)

  • sa_estimate – Optional fundamental frequency estimate in Hz

  • permissions – Permissions object for access control

title: str | None = None
musicians: List[Musician]
location: Location | None = None
date: RecordingDate | None = None
ragas: List[Raga | str | Dict[str, Any]]
sa_estimate: float | None = None
permissions: Permissions
to_json() Dict[str, Any][source]

Convert to JSON format for API.

__init__(title: str | None = None, musicians: List[Musician] = <factory>, location: Location | None = None, date: RecordingDate | None = None, ragas: Dict[str, ~typing.Any]]=<factory>, sa_estimate: float | None = None, permissions: Permissions = <factory>) None

AudioUploadResult

class idtap.AudioUploadResult(audio_id: str, success: bool, file_info: FileInfo, processing_status: ProcessingStatus)[source]

Bases: object

Result of an audio upload operation.

audio_id: str
success: bool
file_info: FileInfo
processing_status: ProcessingStatus
classmethod from_api_response(response_data: Dict[str, Any]) AudioUploadResult[source]

Create from API response.

__init__(audio_id: str, success: bool, file_info: FileInfo, processing_status: ProcessingStatus) None

AudioEventConfig

class idtap.AudioEventConfig(mode: Literal['add', 'create', 'none'] = 'none', event_id: str | None = None, name: str | None = None, event_type: str | None = None)[source]

Bases: object

Configuration for audio event association.

mode: Literal['add', 'create', 'none'] = 'none'
event_id: str | None = None
name: str | None = None
event_type: str | None = None
to_json() Dict[str, Any][source]

Convert to JSON format for API.

__init__(mode: Literal['add', 'create', 'none'] = 'none', event_id: str | None = None, name: str | None = None, event_type: str | None = None) None

Musician Information

Musician

class idtap.Musician(name: str, role: Literal['Soloist', 'Accompanist', 'Percussionist', 'Drone'], instrument: str, gharana: str | None = None)[source]

Bases: object

Represents a musician in a recording.

name: str
role: Literal['Soloist', 'Accompanist', 'Percussionist', 'Drone']
instrument: str
gharana: str | None = None
to_json() Dict[str, Any][source]

Convert to JSON format for API.

__init__(name: str, role: Literal['Soloist', 'Accompanist', 'Percussionist', 'Drone'], instrument: str, gharana: str | None = None) None

Location

class idtap.Location(continent: str, country: str, city: str | None = None)[source]

Bases: object

Represents a geographic location.

continent: str
country: str
city: str | None = None
to_json() Dict[str, Any][source]

Convert to JSON format for API.

__init__(continent: str, country: str, city: str | None = None) None

RecordingDate

class idtap.RecordingDate(year: int | None = None, month: str | None = None, day: int | None = None)[source]

Bases: object

Represents a recording date.

year: int | None = None
month: str | None = None
day: int | None = None
to_json() Dict[str, Any][source]

Convert to JSON format for API.

__init__(year: int | None = None, month: str | None = None, day: int | None = None) None

Musical Context

AudioRaga

idtap.AudioRaga

alias of Raga

PerformanceSection

class idtap.PerformanceSection(name: str, start: float = 0.0, end: float = 0.0)[source]

Bases: object

Represents a performance section within a raga.

name: str
start: float = 0.0
end: float = 0.0
to_json() Dict[str, Any][source]

Convert to JSON format for API.

__init__(name: str, start: float = 0.0, end: float = 0.0) None

System Models

Permissions

class idtap.Permissions(public_view: bool = True, edit: List[str] = <factory>, view: List[str] = <factory>)[source]

Bases: object

Represents access permissions for a recording.

public_view: bool = True
edit: List[str]
view: List[str]
to_json() Dict[str, Any][source]

Convert to JSON format for API.

__init__(public_view: bool = True, edit: List[str] = <factory>, view: List[str] = <factory>) None

ValidationResult

class idtap.ValidationResult(is_valid: bool, errors: List[str] = <factory>, warnings: List[str] = <factory>)[source]

Bases: object

Result of metadata validation.

is_valid: bool
errors: List[str]
warnings: List[str]
__init__(is_valid: bool, errors: List[str] = <factory>, warnings: List[str] = <factory>) None

LocationHierarchy

class idtap.LocationHierarchy(data: Dict[str, Dict[str, List[str]]])[source]

Bases: object

Geographic location hierarchy.

data: Dict[str, Dict[str, List[str]]]
get_continents() List[str][source]

Get available continents.

get_countries(continent: str) List[str][source]

Get countries for a continent.

get_cities(continent: str, country: str) List[str][source]

Get cities for a country.

classmethod from_api_response(data: Dict[str, Any]) LocationHierarchy[source]

Create from API response.

__init__(data: Dict[str, Dict[str, List[str]]]) None

FileInfo

class idtap.FileInfo(name: str, mimetype: str, size: int)[source]

Bases: object

Information about an uploaded file.

name: str
mimetype: str
size: int
__init__(name: str, mimetype: str, size: int) None

ProcessingStatus

class idtap.ProcessingStatus(audio_processed: bool = False, melograph_generated: bool = False, spectrogram_generated: bool = False)[source]

Bases: object

Status of audio processing operations.

audio_processed: bool = False
melograph_generated: bool = False
spectrogram_generated: bool = False
__init__(audio_processed: bool = False, melograph_generated: bool = False, spectrogram_generated: bool = False) None