Интерфейс Sequencer

Все суперинтерфейсы:
AutoCloseable, MidiDevice
public interface Sequencer
extends MidiDevice

Устройство, аппаратное или программное, которое воспроизводит MIDI sequence, называется секвенсором. MIDI-последовательность содержит списки MIDI-данных с отметками времени, такие как могут быть прочитаны из стандартного MIDI-файла. Большинство секвенсоров также предоставляют функции для создания и редактирования последовательностей.

Интерфейс Sequencer включает методы для следующих основных операций MIDI-секвенсора:

  • получение последовательности из данных MIDI-файла
  • начало и остановка воспроизведения
  • переход к произвольной позиции в последовательности
  • изменение темпа (скорости) воспроизведения
  • синхронизация воспроизведения с внутренними часами или с принятыми MIDI-сообщениями
  • управление временем работы другого устройства
Кроме того, поддерживаются следующие операции, либо напрямую, либо косвенно через объекты, к которым имеет доступ Sequencer:
  • редактирование данных путем добавления или удаления отдельных MIDI-событий или целых дорожек
  • выключение или включение звука отдельных дорожек в последовательности
  • уведомление объектов-слушателей о любых мета-событиях или событиях изменения управления, встречающихся при воспроизведении последовательности
См. также:
Sequencer.SyncMode, addMetaEventListener(javax.sound.midi.MetaEventListener), ControllerEventListener, Receiver, Transmitter, MidiDevice

Вложенные классы

Модификатор и тип Интерфейс Описание
static class  Sequencer.SyncMode

Объект SyncMode представляет один из способов синхронизации понятия времени MIDI-секвенсора с устройством-мастером или устройством-рабочим.

Вложенные классы/интерфейсы, объявленные в интерфейсе javax.sound.midi.MidiDevice

MidiDevice.Info

Поля

Модификатор и тип Поле Описание
static int LOOP_CONTINUOUSLY

Значение, указывающее, что циклическое воспроизведение должно продолжаться неопределённо, а не завершаться после определённого количества повторений.

Методы

Модификатор и тип Метод Описание
int[] addControllerEventListener​(ControllerEventListener listener, int[] controllers)

Регистрирует слушатель событий управления, чтобы получать уведомления всякий раз, когда секвенсор обрабатывает событие изменения управления запрошенного типа или типов.

boolean addMetaEventListener​(MetaEventListener listener)

Регистрирует слушателя мета-событий для получения уведомлений всякий раз, когда в последовательности встречается мета-событие и обрабатывается секвенсором.

int getLoopCount()

Получает количество повторений для воспроизведения.

long getLoopEndPoint()

Получает конечную позицию цикла в MIDI-тиках.

long getLoopStartPoint()

Получает начальную позицию цикла в MIDI-тиках.

Sequencer.SyncMode getMasterSyncMode()

Получает текущий режим синхронизации мастера для этого секвенсора.

Sequencer.SyncMode[] getMasterSyncModes()

Получает набор режимов синхронизации мастера, поддерживаемых этим секвенсором.

long getMicrosecondLength()

Получает длину текущей последовательности, выраженную в микросекундах, или 0, если последовательность не установлена.

long getMicrosecondPosition()

Получает текущую позицию в последовательности, выраженную в микросекундах.

Sequence getSequence()

Получает последовательность, с которой в настоящее время работает секвенсор.

Sequencer.SyncMode getSlaveSyncMode()

Получает текущий режим синхронизации раба для этого секвенсора.

Sequencer.SyncMode[] getSlaveSyncModes()

Получает набор режимов синхронизации раба, поддерживаемых секвенсором.

float getTempoFactor()

Возвращает текущий коэффициент темпа для секвенсора.

float getTempoInBPM()

Получает текущий темп, выраженный в ударах в минуту.

float getTempoInMPQ()

Получает текущий темп, выраженный в микросекундах на четверть ноты.

long getTickLength()

Получает длину текущей последовательности, выраженную в MIDI-тиках, или 0, если последовательность не установлена.

long getTickPosition()

Получает текущую позицию в последовательности, выраженную в MIDI-тиках.

boolean getTrackMute​(int track)

Получает текущее состояние выключения звука для дорожки.

boolean getTrackSolo​(int track)

Получает текущее состояние активации звука для дорожки.

boolean isRecording()

Указывает, записывает ли в данный момент секвенсор.

boolean isRunning()

Указывает, воспроизводит ли в данный момент секвенсор.

void recordDisable​(Track track)

Отключает запись на указанную дорожку.

void recordEnable​(Track track, int channel)

Подготавливает указанную дорожку к записи событий, полученных на определённом канале.

int[] removeControllerEventListener​(ControllerEventListener listener, int[] controllers)

Удаляет интерес слушателя событий управления к одному или нескольким типам событий управления.

void removeMetaEventListener​(MetaEventListener listener)

Удаляет указанного слушателя мета-событий из списка зарегистрированных слушателей этого секвенсора, если слушатель зарегистрирован.

void setLoopCount​(int count)

Устанавливает количество повторений цикла для воспроизведения.

void setLoopEndPoint​(long tick)

Устанавливает последнюю MIDI-метку, которая будет воспроизведена в цикле.

void setLoopStartPoint​(long tick)

Устанавливает первую MIDI-метку, которая будет воспроизведена в цикле.

void setMasterSyncMode​(Sequencer.SyncMode sync)

Устанавливает источник информации о времени, используемый этим секвенсором.

void setMicrosecondPosition​(long microseconds)

Устанавливает текущую позицию в последовательности, выраженную в микросекундах.

void setSequence​(InputStream stream)

Устанавливает текущую последовательность, с которой работает секвенсор.

void setSequence​(Sequence sequence)

Устанавливает текущую последовательность, с которой работает секвенсор.

void setSlaveSyncMode​(Sequencer.SyncMode sync)

Устанавливает режим синхронизации раба для секвенсора.

void setTempoFactor​(float factor)

Масштабирует фактический темп воспроизведения секвенсора на заданный коэффициент.

void setTempoInBPM​(float bpm)

Устанавливает темп в ударах в минуту.

void setTempoInMPQ​(float mpq)

Устанавливает темп в микросекундах на четверть ноты.

void setTickPosition​(long tick)

Устанавливает текущую позицию секвенсора в MIDI-тиках.

void setTrackMute​(int track, boolean mute)

Устанавливает состояние выключения звука для дорожки.

void setTrackSolo​(int track, boolean solo)

Устанавливает состояние активации звука для дорожки.

void start()

Запускает воспроизведение MIDI-данных в загруженной в данный момент последовательности.

void startRecording()

Запускает запись и воспроизведение MIDI-данных.

void stop()

Останавливает запись, если она активна, и воспроизведение текущей загруженной последовательности, если она есть.

void stopRecording()

Останавливает запись, если она активна.

Методы, объявленные в интерфейсе javax.sound.midi.MidiDevice

close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getReceiver, getReceivers, getTransmitter, getTransmitters, isOpen, open

Поля

LOOP_CONTINUOUSLY

static final int LOOP_CONTINUOUSLY

Значение, указывающее, что циклическое воспроизведение должно продолжаться неопределённо, а не завершаться после определённого количества повторений.

Since:
1.5
См. также:
setLoopCount(int), Постоянные значения полей

Методы

setSequence

void setSequence(Sequence sequence)
          throws InvalidMidiDataException

Устанавливает текущую последовательность, на которой работает секвенсор.

Этот метод можно вызывать, даже если секвенсор Sequencer закрыт.

Параметры:
sequence - загружаемая последовательность
Исключения:
InvalidMidiDataException - если последовательность содержит недопустимые данные MIDI или не поддерживается

setSequence

void setSequence(InputStream stream)
          throws IOException,
                 InvalidMidiDataException

Устанавливает текущую последовательность, на которой работает секвенсор. Поток должен указывать на данные файла MIDI.

Этот метод можно вызывать, даже если секвенсор Sequencer закрыт.

Параметры:
stream - поток, содержащий данные файла MIDI
Исключения:
IOException - если при чтении потока произошла ошибка ввода-вывода
InvalidMidiDataException - если в потоке встречены неверные данные или поток не поддерживается

getSequence

Sequence getSequence()

Получает последовательность, на которой в настоящее время работает секвенсор.

Этот метод можно вызывать, даже если секвенсор Sequencer закрыт.

Возвращает:
текущую последовательность или null, если последовательность не установлена

start

void start()

Запускает воспроизведение данных MIDI в загруженной последовательности. Воспроизведение начнется с текущей позиции. Если позиция воспроизведения достигнет конечной точки цикла, а количество циклов больше 0, воспроизведение возобновится в точке начала цикла на заданное количество повторов с помощью setLoopCount. После этого или если количество циклов равно 0, воспроизведение продолжится до конца последовательности.

Реализация гарантирует, что синтезатор переведён в согласованное состояние при переходе к началу цикла, отправляя соответствующие события контроллеров, изменения высоты тона и смены программы.

Исключения:
IllegalStateException - если секвенсор Sequencer закрыт
См. также:
setLoopStartPoint(long), setLoopEndPoint(long), setLoopCount(int), stop()

stop

void stop()

Останавливает запись (если она активна) и воспроизведение текущей загруженной последовательности (если она есть).

Исключения:
IllegalStateException - если секвенсор Sequencer закрыт
См. также:
start(), isRunning()

isRunning

boolean isRunning()

Указывает, работает ли в данный момент секвенсор. По умолчанию false. Секвенсор начинает работать при вызове либо start(), либо startRecording(). isRunning затем возвращает true до тех пор, пока воспроизведение последовательности не завершится или не будет вызван stop().

Возвращает:
true если секвенсор работает, иначе false

startRecording

void startRecording()

Начинает запись и воспроизведение данных MIDI. Данные записываются во все включённые дорожки на канале(ах), для которых они были включены. Запись начинается с текущей позиции секвенсора. Любые события, уже присутствующие в дорожке, перезаписываются на время сессии записи. События из текущей загруженной последовательности, если таковая имеется, передаются передатчику секвенсора вместе с сообщениями, полученными во время записи.

Обратите внимание, что дорожки по умолчанию не включены для записи. Для записи данных MIDI по крайней мере одна дорожка должна быть специально включена для записи.

Исключения:
IllegalStateException - если секвенсор Sequencer закрыт
См. также:
recordEnable(javax.sound.midi.Track, int), recordDisable(javax.sound.midi.Track)

stopRecording

void stopRecording()

Останавливает запись (если она активна). Воспроизведение текущей последовательности продолжается.

Исключения:
IllegalStateException - если секвенсор Sequencer закрыт
См. также:
startRecording(), isRecording()

isRecording

boolean isRecording()

Указывает, находится ли секвенсор в режиме записи. По умолчанию false. Секвенсор начинает запись при вызове startRecording(), и затем возвращает true до вызова stop() или stopRecording().

Возвращает:
true если секвенсор записывает, иначе false

recordEnable

void recordEnable(Track track,
                  int channel)

Подготавливает указанную дорожку для записи событий, полученных на определённом канале. После включения дорожка будет получать события при активной записи.

Параметры:
track - дорожка, в которую будут записываться события
channel - канал, на котором будут приниматься события. Если для значения канала указано -1, дорожка будет получать данные со всех каналов.
Исключения:
IllegalArgumentException - выбрасывается, если дорожка не входит в текущую последовательность

recordDisable

void recordDisable(Track track)

Отключает запись в указанную дорожку. События больше не будут записываться в эту дорожку.

Параметры:
track - дорожка, которую нужно отключить для записи, или null для отключения записи для всех дорожек

getTempoInBPM

float getTempoInBPM()

Получает текущее темпо, выраженное в ударах в минуту. Фактическое темпо воспроизведения является произведением возвращаемого значения и коэффициента темпо.

Возвращает:
текущее темпо в ударах в минуту
См. также:
getTempoFactor(), setTempoInBPM(float), getTempoInMPQ()

setTempoInBPM

void setTempoInBPM(float bpm)

Устанавливает темпо в ударах в минуту. Фактическое темпо воспроизведения является произведением указанного значения и коэффициента темпо.

Параметры:
bpm - желаемое новое темпо в ударах в минуту
См. также:
getTempoFactor(), setTempoInMPQ(float), getTempoInBPM()

getTempoInMPQ

float getTempoInMPQ()

Получает текущее темпо, выраженное в микросекундах на четверть ноты. Фактическое темпо воспроизведения является произведением возвращаемого значения и коэффициента темпо.

Возвращает:
текущее темпо в микросекундах на четверть ноты
См. также:
getTempoFactor(), setTempoInMPQ(float), getTempoInBPM()

setTempoInMPQ

void setTempoInMPQ(float mpq)

Устанавливает темпо в микросекундах на четверть ноты. Фактическое темпо воспроизведения является произведением указанного значения и коэффициента темпо.

Параметры:
mpq - желаемое новое темпо в микросекундах на четверть ноты
См. также:
getTempoFactor(), setTempoInBPM(float), getTempoInMPQ()

setTempoFactor

void setTempoFactor(float factor)

Изменяет фактическое темпо воспроизведения секвенсора с помощью указанного коэффициента. По умолчанию 1.0. Значение 1.0 соответствует естественной скорости (темпо, указанному в последовательности), 2.0 — в два раза быстрее и т. д. Коэффициент темпо не влияет на значения, возвращаемые getTempoInMPQ() и getTempoInBPM(). Эти значения указывают темпо до масштабирования.

Обратите внимание, что коэффициент темпо нельзя изменить при использовании внешней синхронизации. В этом случае setTempoFactor всегда устанавливает коэффициент темпо в 1.0.

Параметры:
factor - требуемый множитель темпо
См. также:
getTempoFactor()

getTempoFactor

float getTempoFactor()

Возвращает текущий коэффициент темпо для секвенсора. По умолчанию 1.0.

Возвращает:
коэффициент темпо
См. также:
setTempoFactor(float)

getTickLength

long getTickLength()

Получает длительность текущей последовательности в тактах MIDI или 0, если последовательность не установлена.

Возвращает:
длительность последовательности в тактах

getTickPosition

long getTickPosition()

Получает текущую позицию в последовательности в тактах MIDI. (Продолжительность такта в секундах определяется как темпом, так и разрешением синхронизации, хранящимся в Sequence).

Возвращает:
текущий такт
См. также:
setTickPosition(long)

setTickPosition

void setTickPosition(long tick)

Устанавливает текущую позицию секвенсора в тактах MIDI.

Параметры:
tick - желаемая позиция в тактах
См. также:
getTickPosition()

getMicrosecondLength

long getMicrosecondLength()

Получает длительность текущей последовательности в микросекундах или 0, если последовательность не установлена.

Возвращает:
длительность последовательности в микросекундах

getMicrosecondPosition

long getMicrosecondPosition()

Получает текущую позицию в последовательности в микросекундах.

Определено в:
getMicrosecondPosition в интерфейсе MidiDevice
Возвращает:
текущая позиция в микросекундах
См. также:
setMicrosecondPosition(long)

setMicrosecondPosition

void setMicrosecondPosition(long microseconds)

Устанавливает текущую позицию в последовательности в микросекундах.

Параметры:
microseconds - желаемое положение в микросекундах
См. также:
getMicrosecondPosition()

setMasterSyncMode

void setMasterSyncMode(Sequencer.SyncMode sync)

Устанавливает источник информации о времени, используемый этим секвенсором. Секвенсор синхронизируется с главным источником, которым является внутренний таймер, MIDI-таймер или MIDI-код времени, в зависимости от значения sync. Аргумент sync должен быть одним из поддерживаемых режимов, возвращаемых getMasterSyncModes().

Параметры:
sync - желаемый режим синхронизации главного источника
См. также:
Sequencer.SyncMode.INTERNAL_CLOCK, Sequencer.SyncMode.MIDI_SYNC, Sequencer.SyncMode.MIDI_TIME_CODE, getMasterSyncMode()

getMasterSyncMode

Sequencer.SyncMode getMasterSyncMode()

Получает текущий режим синхронизации главного источника для этого секвенсора.

Возвращает:
текущий режим синхронизации главного источника
См. также:
setMasterSyncMode(SyncMode), getMasterSyncModes()

getMasterSyncModes

Sequencer.SyncMode[] getMasterSyncModes()

Получает набор режимов синхронизации главного источника, поддерживаемых этим секвенсором.

Возвращает:
доступные режимы синхронизации главного источника
См. также:
Sequencer.SyncMode.INTERNAL_CLOCK, Sequencer.SyncMode.MIDI_SYNC, Sequencer.SyncMode.MIDI_TIME_CODE, getMasterSyncMode(), setMasterSyncMode(SyncMode)

setSlaveSyncMode

void setSlaveSyncMode(Sequencer.SyncMode sync)

Устанавливает режим синхронизации подчиненного источника для секвенсора. Это указывает на тип информации о времени, отправляемой секвенсором получателю. Аргумент sync должен быть одним из поддерживаемых режимов, как возвращается getSlaveSyncModes().

Параметры:
sync - желаемый режим синхронизации подчиненного источника
См. также:
Sequencer.SyncMode.MIDI_SYNC, Sequencer.SyncMode.MIDI_TIME_CODE, Sequencer.SyncMode.NO_SYNC, getSlaveSyncModes()

getSlaveSyncMode

Sequencer.SyncMode getSlaveSyncMode()

Получает текущий режим синхронизации подчиненного источника для данного секвенсора.

Возвращает:
текущий режим синхронизации подчиненного источника
См. также:
setSlaveSyncMode(SyncMode), getSlaveSyncModes()

getSlaveSyncModes

Sequencer.SyncMode[] getSlaveSyncModes()

Получает набор режимов синхронизации подчиненного источника, поддерживаемых секвенсором.

Возвращает:
доступные режимы синхронизации подчиненного источника
См. также:
Sequencer.SyncMode.MIDI_SYNC, Sequencer.SyncMode.MIDI_TIME_CODE, Sequencer.SyncMode.NO_SYNC

setTrackMute

void setTrackMute(int track,
                  boolean mute)

Устанавливает состояние отключения для дорожки. Этот метод может завершиться ошибкой по ряду причин. Например, указанный номер дорожки может быть недействительным для текущей последовательности, или секвенсор может не поддерживать эту функциональность. Приложение, которое нужно проверить, успешно ли выполнена эта операция, должно выполнить вызов getTrackMute(int) после этого вызова.

Параметры:
track - номер дорожки. Дорожки в текущей последовательности пронумерованы от 0 до числа дорожек в последовательности минус 1.
mute - новое состояние отключения для дорожки. true означает, что дорожка должна быть отключена, false означает, что дорожка должна быть включена.
См. также:
getSequence()

getTrackMute

boolean getTrackMute(int track)

Получает текущее состояние отключения для дорожки. Значение по умолчанию для всех дорожек, которые не были отключены, — false. В любом случае, если указанная дорожка не была отключена, этот метод должен вернуть false. Это относится к случаям, когда секвенсор не поддерживает отключение дорожек и если указанный индекс дорожки недействителен.

Параметры:
track - номер дорожки. Дорожки в текущей последовательности пронумерованы от 0 до числа дорожек в последовательности минус 1.
Возвращает:
true если отключено, false если нет

setTrackSolo

void setTrackSolo(int track,
                  boolean solo)

Устанавливает состояние соло для дорожки. Если solo равно true, то только эта дорожка и другие дорожки в режиме соло будут звучать. Если solo равно false, то будут звучать только другие дорожки в режиме соло, если нет дорожек в режиме соло, то будут звучать все неотключенные дорожки.

Этот метод может завершиться ошибкой по ряду причин. Например, указанный номер дорожки может быть недействительным для текущей последовательности, или секвенсор может не поддерживать эту функциональность. Приложение, которое нужно проверить, успешно ли выполнена эта операция, должно выполнить вызов getTrackSolo(int) после этого вызова.

Параметры:
track - номер дорожки. Дорожки в текущей последовательности пронумерованы от 0 до числа дорожек в последовательности минус 1.
solo - новое состояние соло для дорожки. true означает, что дорожка должна быть в режиме соло, false означает, что дорожка не должна быть в режиме соло.
См. также:
getSequence()

getTrackSolo

boolean getTrackSolo(int track)

Получает текущее состояние соло для дорожки. Значение по умолчанию для всех дорожек, которые не были в режиме соло, — false. В любом случае, если указанная дорожка не была в режиме соло, этот метод должен вернуть false. Это относится к случаям, когда секвенсор не поддерживает режим соло для дорожек и если указанный индекс дорожки недействителен.

Параметры:
track - номер дорожки. Дорожки в текущей последовательности пронумерованы от 0 до числа дорожек в последовательности минус 1.
Возвращает:
true если в режиме соло, false если нет

addMetaEventListener

boolean addMetaEventListener(MetaEventListener listener)

Регистрирует прослушиватель событий мета-событий для получения уведомлений всякий раз, когда в последовательности встречается мета-событие и оно обрабатывается секвенсором. Этот метод может завершиться ошибкой, если, например, этот класс секвенсора не поддерживает уведомления о мета-событиях.

Параметры:
listener - добавляемый прослушиватель
Возвращает:
true если прослушиватель был успешно добавлен, в противном случае false
См. также:
removeMetaEventListener(javax.sound.midi.MetaEventListener), MetaEventListener, MetaMessage

removeMetaEventListener

void removeMetaEventListener(MetaEventListener listener)

Удаляет указанного прослушивателя мета-событий из списка зарегистрированных прослушивателей этого секвенсора, если прослушиватель, в действительности, зарегистрирован.

Параметры:
listener - удаляемый прослушиватель мета-событий
См. также:
addMetaEventListener(javax.sound.midi.MetaEventListener)

addControllerEventListener

int[] addControllerEventListener(ControllerEventListener listener,
                                 int[] controllers)

Регистрирует прослушиватель событий контроллера для получения уведомлений всякий раз, когда секвенсор обрабатывает событие изменения контроллера запрошенного типа или типов. Типы задаются аргументом controllers, который должен содержать массив номеров MIDI-контроллеров. (Каждое число должно быть от 0 до 127 включительно. Обратитесь к спецификации MIDI 1.0 для номеров, соответствующих различным типам контроллеров.)

Возвращаемый массив содержит номера MIDI-контроллеров, для которых прослушиватель теперь будет получать события. Некоторые секвенсоры могут не поддерживать уведомление об изменениях событий контроллера, в этом случае массив имеет длину 0. Другие секвенсоры могут поддерживать уведомления для некоторых контроллеров, но не для всех. Этот метод может вызываться многократно. Каждый раз возвращаемый массив указывает все контроллеры, о которых будет уведомлен прослушиватель, а не только контроллеры, запрошенные в этом конкретном вызове.

Параметры:
listener - прослушиватель событий контроллера, который добавляется в список зарегистрированных прослушивателей
controllers - номера MIDI-контроллеров, для которых запрашивается уведомление об изменениях
Возвращает:
номера всех MIDI-контроллеров, изменения которых теперь будут сообщены указанному прослушивателю
См. также:
removeControllerEventListener(javax.sound.midi.ControllerEventListener, int[]), ControllerEventListener

removeControllerEventListener

int[] removeControllerEventListener(ControllerEventListener listener,
                                    int[] controllers)

Удаляет интерес прослушивателя событий контроллера к одному или нескольким типам событий контроллера. Аргумент controllers — массив номеров MIDI, соответствующих контроллерам, для которых прослушиватель больше не должен получать уведомления об изменениях. Для полного удаления этого прослушивателя из списка зарегистрированных прослушивателей передайте null для controllers. Возвращаемый массив содержит номера MIDI-контроллеров, для которых прослушиватель теперь будет получать события. Длина массива равна 0, если прослушиватель не будет получать уведомления об изменениях для каких-либо контроллеров.

Параметры:
listener - старый прослушиватель
controllers - номера MIDI-контроллеров, для которых уведомления об изменениях должны быть отменены, или null для отмены для всех контроллеров
Возвращает:
номера всех MIDI-контроллеров, изменения которых теперь будут сообщены указанному прослушивателю
См. также:
addControllerEventListener(javax.sound.midi.ControllerEventListener, int[])

setLoopStartPoint

void setLoopStartPoint(long tick)

Устанавливает первую метку MIDI, которая будет воспроизводиться в цикле. Если количество циклов больше 0, воспроизведение перейдёт к этой точке при достижении конечной точки цикла.

Значение 0 для начальной точки означает начало загруженной последовательности. Начальная точка должна быть меньше или равна конечной точке и должна находиться в пределах загруженной последовательности.

Начальная точка цикла секвенсора по умолчанию устанавливается в начало последовательности.

Параметры:
tick - начальная позиция цикла в метках MIDI (нумерация с нуля)
Исключения:
IllegalArgumentException - если заданную начальную точку цикла невозможно установить, обычно из-за того, что она выходит за пределы длительности последовательности или потому, что начальная точка находится после конечной точки
С:
1.5
См. также:
setLoopEndPoint(long), setLoopCount(int), getLoopStartPoint(), start()

getLoopStartPoint

long getLoopStartPoint()

Получает начальную позицию цикла в метках MIDI.

Возвращает:
начальная позиция цикла в метках MIDI (нумерация с нуля)
С:
1.5
См. также:
setLoopStartPoint(long)

setLoopEndPoint

void setLoopEndPoint(long tick)

Устанавливает последнюю метку MIDI, которая будет воспроизводиться в цикле. Если количество циклов равно 0, конечная точка цикла не оказывает никакого влияния, и воспроизведение продолжается после достижения конечной точки цикла.

Значение -1 для конечной точки указывает на последнюю метку последовательности. В противном случае конечная точка должна быть больше или равна начальной точке и должна находиться в пределах загруженной последовательности.

Конечная точка цикла секвенсора по умолчанию устанавливается в -1, что означает конец последовательности.

Параметры:
tick - конечная позиция цикла в метках MIDI (нумерация с нуля), или -1, чтобы указать на последнюю метку
Исключения:
IllegalArgumentException - если заданную конечную точку цикла невозможно установить, обычно из-за того, что она выходит за пределы длительности последовательности или потому, что конечная точка находится перед начальной точкой
С:
1.5
См. также:
setLoopStartPoint(long), setLoopCount(int), getLoopEndPoint(), start()

getLoopEndPoint

long getLoopEndPoint()

Получает конечную позицию цикла в метках MIDI.

Возвращает:
конечная позиция цикла в метках MIDI (нумерация с нуля), или -1, чтобы указать на конец последовательности
С:
1.5
См. также:
setLoopEndPoint(long)

setLoopCount

void setLoopCount(int count)

Устанавливает количество повторений цикла для воспроизведения. Когда позиция воспроизведения достигает конечной точки цикла, она возвращается к начальной точке цикла count раз, после чего воспроизведение продолжается до конца последовательности.

Если текущая позиция при вызове этого метода больше конечной точки цикла, воспроизведение продолжается до конца последовательности без циклов, если только конечная точка цикла не изменится впоследствии.

Значение count 0 отключает циклы: воспроизведение будет продолжено в конечной точке цикла, и не вернётся к начальной точке цикла. Это значение по умолчанию для секвенсора.

Если воспроизведение остановлено во время цикла, текущий статус цикла очищается; последующие запросы запуска не затрагиваются прерванной операцией цикла.

Параметры:
count - количество раз, когда воспроизведение должно возвращаться из конечной точки цикла в начальную точку цикла, или LOOP_CONTINUOUSLY, чтобы указать, что цикл должен продолжаться до его прерывания
Исключения:
IllegalArgumentException - если count отрицательно и не равно LOOP_CONTINUOUSLY
С:
1.5
См. также:
setLoopStartPoint(long), setLoopEndPoint(long), getLoopCount(), start()

getLoopCount

int getLoopCount()

Получает количество повторений для воспроизведения.

Возвращает:
количество циклов, после которых воспроизведение переходит к концу последовательности
С:
1.5
См. также:
setLoopCount(int), start()

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/sound/midi/Sequencer.html

Spec-Zone .ru
спецификации, руководства, описания, API