Интерфейс 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 | Объект |
Вложенные классы/интерфейсы, объявленные в интерфейсе 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