Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface Sequencer extends MidiDevice
sequence
известен как секвенсер. Последовательность MIDI содержит списки данных MIDI с меткой времени, те, которые могли бы быть считаны из стандартного файла MIDI. Большинство секвенсеров также обеспечивает функции для создания и редактирования последовательностей. Sequencer
интерфейс включает методы для следующих основных операций секвенсера MIDI:
Sequencer
имеет доступ к: Модификатор и Тип | Интерфейс и Описание |
---|---|
static class |
Секвенсер. SyncMode
A
SyncMode объект представляет один из путей, которыми понятие секвенсера MIDI времени может синхронизироваться с ведущим или ведомым устройством. |
MidiDevice. Информация
Модификатор и Тип | Поле и Описание |
---|---|
static int |
LOOP_CONTINUOUSLY
Значение, указывающее, что цикличное выполнение должно продолжаться неопределенно, а не полный после определенного числа циклов.
|
Модификатор и Тип | Метод и Описание |
---|---|
int[] |
addControllerEventListener(ControllerEventListener listener, int[] controllers)
Регистрирует слушателя события контроллера, чтобы получить уведомление всякий раз, когда секвенсер обрабатывает событие изменения управления требуемого типа или типов.
|
boolean |
addMetaEventListener(MetaEventListener listener)
Регистрирует слушателя метасобытия, чтобы получить уведомление всякий раз, когда с метасобытием встречаются в последовательности и обрабатывается секвенсером.
|
int |
getLoopCount()
Получает число повторений для воспроизведения.
|
long |
getLoopEndPoint()
Получает позицию конца цикла, в галочках MIDI.
|
long |
getLoopStartPoint()
Получает позицию запуска цикла, в галочках MIDI.
|
Секвенсер. SyncMode |
getMasterSyncMode()
Получает текущий основной режим синхронизации для этого секвенсера.
|
Секвенсер. SyncMode[] |
getMasterSyncModes()
Получает набор основных режимов синхронизации, поддерживаемых этим секвенсером.
|
long |
getMicrosecondLength()
Получает длину текущей последовательности, выраженной в микросекундах, или 0, если никакая последовательность не устанавливается.
|
long |
getMicrosecondPosition()
Получает текущую позицию в последовательности, выраженной в микросекундах.
|
Последовательность |
getSequence()
Получает последовательность, на которой Секвенсер является в настоящий момент операционным.
|
Секвенсер. SyncMode |
getSlaveSyncMode()
Получает текущий ведомый режим синхронизации для этого секвенсера.
|
Секвенсер. 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()
Запись остановок, если активный.
|
close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getReceiver, getReceivers, getTransmitter, getTransmitters, isOpen, open
static final int LOOP_CONTINUOUSLY
setLoopCount(int)
, Постоянные Значения полейvoid setSequence(Sequence sequence) throws InvalidMidiDataException
Этот метод можно вызвать даже если Sequencer
закрывается.
sequence
- последовательность, которая будет загружена.InvalidMidiDataException
- если последовательность содержит недопустимые данные MIDI, или не поддерживается.void setSequence(InputStream stream) throws IOException, InvalidMidiDataException
Этот метод можно вызвать даже если Sequencer
закрывается.
stream
- поток, содержащий данные файла MIDI.IOException
- если исключение ввода-вывода происходит во время чтения потока.InvalidMidiDataException
- если с недопустимыми данными встречаются в потоке, или поток не поддерживается.Sequence getSequence()
Этот метод можно вызвать даже если Sequencer
закрывается.
null
если никакая последовательность в настоящий момент не устанавливается.void start()
setLoopCount
. После того, как это, или если количество цикла 0, воспроизведение, будет продолжать играть до конца последовательности. Реализация гарантирует, что синтезатор приносится к непротиворечивому состоянию, переходя к стартовой точке цикла, отправляя соответствующие контроллеры, изгиб подачи, и события изменения программы.
IllegalStateException
- если Sequencer
закрывается.setLoopStartPoint(long)
, setLoopEndPoint(long)
, setLoopCount(int)
, stop()
void stop()
IllegalStateException
- если Sequencer
закрывается.start()
, isRunning()
boolean isRunning()
false
. Секвенсер начинает работать когда также start()
или startRecording()
вызывается. isRunning
тогда возвраты true
пока воспроизведение последовательности не завершается или stop()
вызывается.true
если Секвенсер работает, иначе false
void startRecording()
Отметьте, что дорожки по умолчанию не включаются для того, чтобы записать. Чтобы записать данные MIDI, по крайней мере одна дорожка должна быть определенно включена для того, чтобы записать.
IllegalStateException
- если Sequencer
закрывается.startRecording()
, recordEnable(javax.sound.midi.Track, int)
, recordDisable(javax.sound.midi.Track)
void stopRecording()
IllegalStateException
- если Sequencer
закрывается.startRecording()
, isRecording()
boolean isRecording()
false
. Секвенсер начинает записывать когда startRecording()
вызывается, и затем возвращается true
до stop()
или stopRecording()
вызывается.true
если Секвенсер записывает, иначе false
void recordEnable(Track track, int channel)
track
- дорожка, к которой будут записаны событияchannel
- канал, на котором будут получены события. Если-1 будет определен для значения канала, то дорожка получит данные от всех каналов.IllegalArgumentException
- брошенный, если дорожка не является частью текущей последовательности.void recordDisable(Track track)
track
- дорожка, чтобы отключить для того, чтобы записать, или null
отключить запись для всех дорожек.float getTempoInBPM()
getTempoFactor()
, setTempoInBPM(float)
, getTempoInMPQ()
void setTempoInBPM(float bpm)
bpm
- требуемый новый темп в ударах в минутуgetTempoFactor()
, setTempoInMPQ(float)
, getTempoInBPM()
float getTempoInMPQ()
getTempoFactor()
, setTempoInMPQ(float)
, getTempoInBPM()
void setTempoInMPQ(float mpq)
mpq
- требуемый новый темп в микросекундах на четвертную ноту.getTempoFactor()
, setTempoInBPM(float)
, getTempoInMPQ()
void setTempoFactor(float factor)
getTempoInMPQ()
и getTempoInBPM()
. Те значения указывают на темп до масштабирования. Отметьте, что фактор темпа не может быть скорректирован, когда внешняя синхронизация используется. В той ситуации, setTempoFactor
всегда устанавливает фактор темпа в 1.0.
factor
- требуемый скаляр темпаgetTempoFactor()
float getTempoFactor()
setTempoFactor(float)
long getTickLength()
long getTickPosition()
Sequence
.)setTickPosition(long)
void setTickPosition(long tick)
tick
- требуемая позиция галочкиgetTickPosition()
long getMicrosecondLength()
long getMicrosecondPosition()
getMicrosecondPosition
в интерфейсе MidiDevice
setMicrosecondPosition(long)
void setMicrosecondPosition(long microseconds)
microseconds
- требуемая позиция в микросекундахgetMicrosecondPosition()
void setMasterSyncMode(Sequencer.SyncMode sync)
sync
. sync
параметром должен быть один из поддерживаемых режимов, как возвращено getMasterSyncModes()
.sync
- требуемый основной режим синхронизацииSequencer.SyncMode.INTERNAL_CLOCK
, Sequencer.SyncMode.MIDI_SYNC
, Sequencer.SyncMode.MIDI_TIME_CODE
, getMasterSyncMode()
Sequencer.SyncMode getMasterSyncMode()
setMasterSyncMode(Sequencer.SyncMode)
, getMasterSyncModes()
Sequencer.SyncMode[] getMasterSyncModes()
Sequencer.SyncMode.INTERNAL_CLOCK
, Sequencer.SyncMode.MIDI_SYNC
, Sequencer.SyncMode.MIDI_TIME_CODE
, getMasterSyncMode()
, setMasterSyncMode(Sequencer.SyncMode)
void setSlaveSyncMode(Sequencer.SyncMode sync)
sync
параметром должен быть один из поддерживаемых режимов, как возвращено getSlaveSyncModes()
.sync
- требуемый ведомый режим синхронизацииSequencer.SyncMode.MIDI_SYNC
, Sequencer.SyncMode.MIDI_TIME_CODE
, Sequencer.SyncMode.NO_SYNC
, getSlaveSyncModes()
Sequencer.SyncMode getSlaveSyncMode()
setSlaveSyncMode(Sequencer.SyncMode)
, getSlaveSyncModes()
Sequencer.SyncMode[] getSlaveSyncModes()
Sequencer.SyncMode.MIDI_SYNC
, Sequencer.SyncMode.MIDI_TIME_CODE
, Sequencer.SyncMode.NO_SYNC
void setTrackMute(int track, boolean mute)
getTrackMute(int)
.track
- номер дорожки. Дорожки в текущей последовательности нумеруются от 0 до числа дорожек в последовательности минус 1.mute
- новое бесшумное состояние для дорожки. true
подразумевает, что дорожка должна быть отключена звук, false
подразумевает, что дорожка должна быть нес отключенным звуком.getSequence()
boolean getTrackMute(int track)
track
- номер дорожки. Дорожки в текущей последовательности нумеруются от 0 до числа дорожек в последовательности минус 1.true
если отключено звук, false
если нет.void setTrackSolo(int track, boolean solo)
solo
true
только эта дорожка и другие дорожки solo'd будут звучать. Если solo
false
тогда только другие дорожки solo'd будут звучать, если никакие дорожки не будут solo'd, когда все дорожки нес отключенным звуком будут звучать. Этот метод может перестать работать по ряду причин. Например, определенный номер дорожки, возможно, не допустим для текущей последовательности, или секвенсер, возможно, не поддерживает эту функциональность. Приложение, которое должно проверить, должна ли эта работа, за которой следуют, следовать за этим вызовом со звонком
.getTrackSolo(int)
track
- номер дорожки. Дорожки в текущей последовательности нумеруются от 0 до числа дорожек в последовательности минус 1.solo
- новое соло утверждает для дорожки. true
подразумевает, что дорожка должна быть solo'd, false
подразумевает, что дорожка не должна быть solo'd.getSequence()
boolean getTrackSolo(int track)
track
- номер дорожки. Дорожки в текущей последовательности нумеруются от 0 до числа дорожек в последовательности минус 1.true
если solo'd, false
если нет.boolean addMetaEventListener(MetaEventListener listener)
listener
- слушатель, чтобы добавитьtrue
если слушатель был успешно добавлен, иначе false
removeMetaEventListener(javax.sound.midi.MetaEventListener)
, MetaEventListener
, MetaMessage
void removeMetaEventListener(MetaEventListener listener)
listener
- слушатель метасобытия, чтобы удалитьaddMetaEventListener(javax.sound.midi.MetaEventListener)
int[] addControllerEventListener(ControllerEventListener listener, int[] controllers)
controllers
параметр, который должен содержать массив чисел MIDI-контроллера. (Каждое число должно быть между 0 и 127, включительно. См. MIDI 1.0 Спецификации для чисел, которые соответствуют различным типам контроллеров.) Возвращенный массив содержит числа MIDI-контроллера, для которых слушатель теперь получит события. Некоторые секвенсеры не могли бы поддерживать уведомление о событии контроллера, когда у массива есть длина 0. Другие секвенсеры могли бы поддерживать уведомление для некоторых контроллеров, но не всех. Этот метод может неоднократно вызываться. Каждый раз возвращенный массив указывает на все контроллеры, что слушатель будет уведомлен о, не только контроллеры, которые требуют в том определенном вызове.
listener
- слушатель события контроллера, чтобы добавить к списку зарегистрированных слушателейcontrollers
- числа MIDI-контроллера, на которые требуют уведомление об измененииremoveControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
, ControllerEventListener
int[] removeControllerEventListener(ControllerEventListener listener, int[] controllers)
controllers
параметром является массив чисел MIDI, соответствующих контроллерам, для которых слушатель больше не должен получить уведомления об изменении. Чтобы полностью удалить этого слушателя из списка зарегистрированных слушателей, передайте в null
для controllers
. Возвращенный массив содержит числа MIDI-контроллера, для которых слушатель теперь получит события. У массива есть длина 0, если слушатель не будет получать уведомления об изменении для каких-либо контроллеров.listener
- старый слушательcontrollers
- числа MIDI-контроллера, для которых уведомление об изменении должно быть отменено, или null
отменять для всех контроллеровaddControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
void setLoopStartPoint(long tick)
Значение 0 для начальной точки означает начало загруженной последовательности. Начальная точка должна быть ниже чем или равной конечной точке, и это должно находиться в пределах размера загруженной последовательности.
Значения по умолчанию стартовой точки цикла секвенсера, чтобы запуститься последовательности.
tick
- стартовая позиция цикла, в (основанных на нуле) галочках MIDIIllegalArgumentException
- если требуемая стартовая точка цикла не может быть установлена, обычно потому что она падает вне продолжительности последовательности или потому что стартовая точка после конечной точкиsetLoopEndPoint(long)
, setLoopCount(int)
, getLoopStartPoint()
, start()
long getLoopStartPoint()
setLoopStartPoint(long)
void setLoopEndPoint(long tick)
Значение-1 для конечной точки указывает на последнюю галочку последовательности. Иначе, конечная точка должна быть больше чем или равной начальной точке, и это должно находиться в пределах размера загруженной последовательности.
Значения по умолчанию конечной точки цикла секвенсера к-1, означая конец последовательности.
tick
- конечная позиция цикла, в (основанных на нуле) галочках MIDI, или-1 указать на заключительную галочкуIllegalArgumentException
- если требуемая точка цикла не может быть установлена, обычно потому что она падает вне продолжительности последовательности или потому что конечная точка перед начальной точкойsetLoopStartPoint(long)
, setLoopCount(int)
, getLoopEndPoint()
, start()
long getLoopEndPoint()
setLoopEndPoint(long)
void setLoopCount(int count)
count
времена, после которых воспроизведение будет продолжать играть до конца последовательности. Если текущая позиция, когда этот метод вызывается, больше чем конечная точка цикла, воспроизведение продолжается до конца последовательности без цикличного выполнения, если конечная точка цикла не изменяется впоследствии.
A count
значение 0 отключает цикличное выполнение: воспроизведение будет продолжаться в конечной точке цикла, и это не будет циклично выполняться назад к стартовой точке цикла. Это - значение по умолчанию секвенсера.
Если воспроизведение останавливается во время цикличного выполнения, текущее состояние цикла очищается; на последующие запросы запуска не влияет прерванная работа цикла.
count
- воспроизведение числа раз должно циклично выполниться назад от позиции конца цикла до позиции запуска цикла, или LOOP_CONTINUOUSLY
указать, что цикличное выполнение должно продолжаться пока не прерваноIllegalArgumentException
- если count
отрицательно и не равен LOOP_CONTINUOUSLY
setLoopStartPoint(long)
, setLoopEndPoint(long)
, getLoopCount()
, start()
int getLoopCount()
setLoopCount(int)
, start()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92