Класс Sequence
- java.lang.Object
-
- javax.sound.midi.Sequence
public class Sequence extends Object
Объект Sequence — это структура данных, содержащая музыкальную информацию (часто целую песню или композицию), которую можно воспроизвести с помощью объекта Sequencer. В частности, Sequence содержит информацию о временных метках и один или несколько треков. Каждый track состоит из последовательности событий MIDI (например, включения/выключения нот, изменения программы и мета-событий). Информация о временных метках последовательности указывает тип единиц, используемых для временной маркировки событий в последовательности.
Объект Sequence может быть создан из файла MIDI путём считывания файла в поток ввода и вызова одного из методов getSequence объекта MidiSystem. Последовательность также может быть построена с нуля путём добавления новых Tracks в пустую Sequence, а также добавления объектов MidiEvent в эти Tracks.
- См. также:
-
Sequencer.setSequence(java.io.InputStream stream),Sequencer.setSequence(Sequence sequence),Track.add(MidiEvent),MidiFileFormat
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected float |
divisionType |
Тип деления по времени последовательности. |
static float |
PPQ |
Тип временной метки, основанный на темпе, для которого разрешение выражается в импульсах (тиках) на четверть ноты. |
protected int |
resolution |
Разрешение по времени последовательности. |
static float |
SMPTE_24 |
Тип временной метки, основанный на SMPTE с 24 кадрами в секунду (разрешение выражается в тиках на кадр). |
static float |
SMPTE_25 |
Тип временной метки, основанный на SMPTE с 25 кадрами в секунду (разрешение выражается в тиках на кадр). |
static float |
SMPTE_30 |
Тип временной метки, основанный на SMPTE с 30 кадрами в секунду (разрешение выражается в тиках на кадр). |
static float |
SMPTE_30DROP |
Тип временной метки, основанный на SMPTE с 29,97 кадрами в секунду (разрешение выражается в тиках на кадр). |
protected Vector<Track> |
tracks |
MIDI-треки в этой последовательности. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Sequence(float divisionType,
int resolution) |
Создаёт новую MIDI-последовательность с указанным типом деления по времени и разрешением. |
Sequence(float divisionType,
int resolution,
int numTracks) |
Создаёт новую MIDI-последовательность с указанным типом деления по времени, разрешением и количеством треков. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Track |
createTrack() |
Создаёт новый, изначально пустой трек как часть этой последовательности. |
boolean |
deleteTrack(Track track) |
Удаляет указанный трек из последовательности. |
float |
getDivisionType() |
Получает тип деления по времени для этой последовательности. |
long |
getMicrosecondLength() |
Получает продолжительность этой последовательности, выраженную в микросекундах. |
Patch[] |
getPatchList() |
Получает список используемых в этой последовательности патчей. |
int |
getResolution() |
Получает разрешение по времени для этой последовательности. |
long |
getTickLength() |
Получает продолжительность этой последовательности, выраженную в тиках MIDI. |
Track[] |
getTracks() |
Получает массив, содержащий все треки в этой последовательности. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Поля
PPQ
public static final float PPQ
Тип временной привязки, основанный на темпе, для которого разрешение выражается в импульсах (тиках) на четверть ноту.
- См. также:
-
Sequence(float, int), Значения константных полей
SMPTE_24
public static final float SMPTE_24
Тип временной привязки, основанный на SMPTE, с 24 кадрами в секунду (разрешение выражается в тиках на кадр).
- См. также:
-
Sequence(float, int), Значения константных полей
SMPTE_25
public static final float SMPTE_25
Тип временной привязки, основанный на SMPTE, с 25 кадрами в секунду (разрешение выражается в тиках на кадр).
- См. также:
-
Sequence(float, int), Значения константных полей
SMPTE_30DROP
public static final float SMPTE_30DROP
Тип временной привязки, основанный на SMPTE, с 29,97 кадрами в секунду (разрешение выражается в тиках на кадр).
- См. также:
-
Sequence(float, int), Значения константных полей
SMPTE_30
public static final float SMPTE_30
Тип временной привязки, основанный на SMPTE, с 30 кадрами в секунду (разрешение выражается в тиках на кадр).
- См. также:
-
Sequence(float, int), Значения константных полей
divisionType
protected float divisionType
Тип временного деления последовательности.
- См. также:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,getDivisionType()
resolution
protected int resolution
Разрешение временной привязки последовательности.
- См. также:
getResolution()
tracks
protected Vector<Track> tracks
MIDI-дорожки в этой последовательности.
- См. также:
getTracks()
Конструкторы
Sequence
public Sequence(float divisionType,
int resolution)
throws InvalidMidiDataException Создаёт новую MIDI-последовательность с указанным типом временной привязки и разрешением. Тип деления должен быть одним из распознаваемых типов временной привязки MIDI. Для временной привязки на основе темпа, divisionType — это PPQ (импульсы на четверть ноты), а разрешение указывается в тиках на удар. Для временной привязки SMPTE, divisionType указывает количество кадров в секунду, а разрешение указывается в тиках на кадр. Последовательность не будет содержать начальных дорожек. Дорожки могут быть добавлены или удалены из последовательности с помощью createTrack() и deleteTrack(javax.sound.midi.Track).
- Параметры:
-
divisionType— тип временного деления (PPQ или один из типов SMPTE) -
resolution— разрешение временной привязки - Исключения:
-
InvalidMidiDataException— еслиdivisionTypeнедействителен - См. также:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,getDivisionType(),getResolution(),getTracks()
Sequence
public Sequence(float divisionType,
int resolution,
int numTracks)
throws InvalidMidiDataException Создаёт новую MIDI-последовательность с указанным типом временной привязки, разрешением и количеством дорожек. Тип деления должен быть одним из распознаваемых типов временной привязки MIDI. Для временной привязки на основе темпа, divisionType — это PPQ (импульсы на четверть ноты), а разрешение указывается в тиках на удар. Для временной привязки SMPTE, divisionType указывает количество кадров в секунду, а разрешение указывается в тиках на кадр. Последовательность будет инициализирована количеством дорожек, указанным numTracks. Эти дорожки изначально пустые (т. е. они содержат только мета-событие Конец дорожки). Дорожки могут быть получены для редактирования с помощью метода getTracks(). Дополнительные дорожки могут быть добавлены, а существующие дорожки удалены с помощью createTrack() и deleteTrack(javax.sound.midi.Track).
- Параметры:
-
divisionType— тип временного деления (PPQ или один из типов SMPTE) -
resolution— разрешение временной привязки -
numTracks— начальное количество дорожек в последовательности - Исключения:
-
InvalidMidiDataException— еслиdivisionTypeнедействителен - См. также:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,getDivisionType(),getResolution()
Методы
getDivisionType
public float getDivisionType()
Получает тип временного деления для этой последовательности.
- Возвращает:
- тип деления (PPQ или один из типов SMPTE)
- См. также:
-
PPQ,SMPTE_24,SMPTE_25,SMPTE_30DROP,SMPTE_30,Sequence(float, int),MidiFileFormat.getDivisionType()
getResolution
public int getResolution()
Получает разрешение временной привязки для этой последовательности. Если тип деления последовательности — PPQ, разрешение указывается в тиках на удар. Для временной привязки SMPTE разрешение указывается в тиках на кадр.
- Возвращает:
- количество тиков на удар (PPQ) или на кадр (SMPTE)
- См. также:
-
getDivisionType(),Sequence(float, int),MidiFileFormat.getResolution()
createTrack
public Track createTrack()
Создаёт новую, изначально пустую дорожку в рамках этой последовательности. Дорожка изначально содержит мета-событие Конец дорожки. Возвращается созданная дорожка. Все дорожки в последовательности могут быть получены с помощью getTracks(). Дорожки могут быть удалены из последовательности с помощью deleteTrack(javax.sound.midi.Track).
- Возвращает:
- созданная дорожка
deleteTrack
public boolean deleteTrack(Track track)
Удаляет указанную дорожку из последовательности.
- Параметры:
-
track— дорожка для удаления - Возвращает:
-
true, если дорожка существовала в последовательности и была удалена, в противном случаеfalse - См. также:
-
createTrack(),getTracks()
getTracks
public Track[] getTracks()
Получает массив, содержащий все дорожки в этой последовательности. Если последовательность не содержит дорожек, возвращается массив длиной 0.
- Возвращает:
- массив дорожек
- См. также:
-
createTrack(),deleteTrack(javax.sound.midi.Track)
getMicrosecondLength
public long getMicrosecondLength()
Получает длительность этой последовательности, выраженную в микросекундах.
- Возвращает:
- длительность последовательности в микросекундах
getTickLength
public long getTickLength()
Получает длительность этой последовательности, выраженную в тиках MIDI.
- Возвращает:
- длительность последовательности в тиках
- См. также:
getMicrosecondLength()
getPatchList
public Patch[] getPatchList()
Получает список патчей, на которые ссылается эта последовательность. Этот список патчей можно использовать для загрузки необходимых объектов Instrument в объект Synthesizer.
- Возвращает:
- массив объектов
Patch, используемых в этой последовательности - См. также:
Synthesizer.loadInstruments(Soundbank, Patch[])
© 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/Sequence.html