    import {Agent} from 'music-tempo-js/src/BeatTracking.js'

public class | source

# Agent

Агент, производящий отслеживание битов

## Constructor Summary

Public Constructor
public | constructor(tempo: Number, firstBeatTime: Number, firsteventScore: Number, agentList: Array, params: Object) Конструктор |

## Member Summary

Public Members
public | agentListRef: Array Ссылка на список агентов |
public | beatInterval: Number Темп агента |
public | beatTime: Number Время последненго бита |
public | correctionFactor: Number коэффициент для обновления темпа бита |
public | events: Array Массив времен битов |
public | expiryTime: Number Время после которого агент не принявший ни одного бита уничтожается |
public | initialBeatInterval: Number Первоначальный темп агента |
public | maxChange: Number коэффициент максимального изменения темпа от первоначального |
public | penaltyFactor: Number коэффициент для рассчета штрафа за отклонение от реального от предполагаемого времени бита |
public | score: Number Количество очков агента |
public | toleranceWndInner: Number внутреннее окно допустимого отклонения от предполагаемого времени бита |
public | toleranceWndPost: Number внешнее окно допустимого отклонения (после бита) |
public | toleranceWndPre: Number внешнее окно допустимого отклонения (перед битом) |
public | totalBeatCount: Number Общее количество битов агента |

## Method Summary

Public Methods
public | acceptEvent(eventTime: Number, eventScore: Number, err: Number, beatCount: Number) Добавления нового времени бита и обновления состояния агента |
public | clone(): Agent Клонирование агента |
public | considerEvent(eventTime: Number, eventScore: Number): Boolean Проверка является время временем бита |
public | fillBeats() Заполнение пропусков между битами |

## Public Constructors

### public constructor(tempo: Number, firstBeatTime: Number, firsteventScore: Number, agentList: Array, params: Object) source

Конструктор

#### Params:

Name | Type | Attribute | Description
tempo | Number |  | значение темпа агента
firstBeatTime | Number |  | временная точка с которой агент отсчитывает биты
firsteventScore | Number |  | значение спектрального потока в этой точке
agentList | Array |  | ссылка на массив агентов

params

Object

- optional
- default: {}

параметры

params.expiryTime

Number

- optional
- default: 10

время после которого агент не принявший ни одного бита уничтожается

params.toleranceWndInner

Number

- optional
- default: 0.04

внутреннее окно допустимого отклонения от предполагаемого времени бита

params.toleranceWndPre

Number

- optional
- default: 0.15

внешнее окно допустимого отклонения (перед битом)

params.toleranceWndPost

Number

- optional
- default: 0.3

внешнее окно допустимого отклонения (после бита)

params.correctionFactor

Number

- optional
- default: 50

коэффициент для обновления темпа бита

params.maxChange

Number

- optional
- default: 0.2

коэффициент максимального изменения темпа от первоначального

params.penaltyFactor

Number

- optional
- default: 0.5

коэффициент для рассчета штрафа за отклонение от реального от предполагаемого времени бита

## Public Members

### public agentListRef: Array source

Ссылка на список агентов

### public beatInterval: Number source

Темп агента

### public beatTime: Number source

Время последненго бита

### public correctionFactor: Number source

коэффициент для обновления темпа бита

### public events: Array source

Массив времен битов

### public expiryTime: Number source

Время после которого агент не принявший ни одного бита уничтожается

### public initialBeatInterval: Number source

Первоначальный темп агента

### public maxChange: Number source

коэффициент максимального изменения темпа от первоначального

### public penaltyFactor: Number source

коэффициент для рассчета штрафа за отклонение от реального от предполагаемого времени бита

### public score: Number source

Количество очков агента

### public toleranceWndInner: Number source

внутреннее окно допустимого отклонения от предполагаемого времени бита

### public toleranceWndPost: Number source

внешнее окно допустимого отклонения (после бита)

### public toleranceWndPre: Number source

внешнее окно допустимого отклонения (перед битом)

### public totalBeatCount: Number source

Общее количество битов агента

## Public Methods

### public acceptEvent(eventTime: Number, eventScore: Number, err: Number, beatCount: Number) source

Добавления нового времени бита и обновления состояния агента

#### Params:

Name | Type | Attribute | Description
eventTime | Number |  | рассматриваемая временная точка
eventScore | Number |  | значение спектрального потока в этой точке
err | Number |  | отклонение от предсказанного времени бита
beatCount | Number |  | количество битов которое было между новым и последним битом

### public clone(): Agent source

Клонирование агента

#### Return:

Agent | клонированный агент

### public considerEvent(eventTime: Number, eventScore: Number): Boolean source

Проверка является время временем бита

#### Params:

Name | Type | Attribute | Description
eventTime | Number |  | рассматриваемая временная точка
eventScore | Number |  | значение спектрального потока в этой точке

#### Return:

Boolean | принято или нет это время как время бита

### public fillBeats() source

Заполнение пропусков между битами