Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface MidiChannel
MidiChannel
объект представляет единственный канал MIDI. Обычно, каждый MidiChannel
метод обрабатывает подобно-именованный MIDI "речь канала" или "сообщение" режима канала как определено спецификацией MIDI. Однако, MidiChannel
добавляет, что некоторые "получают" методы, которые получают значение, последний раз установленное одним из стандартных сообщений канала MIDI. Точно так же методы для соло на канал и бесшумный были добавлены. A
у объекта есть набор Synthesizer
MidiChannels
, обычно один для каждого из 16 каналов, предписанных MIDI 1.0 спецификации. Synthesizer
генерирует звук когда MidiChannels
получить noteOn
сообщения.
См. MIDI 1.0 Спецификации для получения дополнительной информации о предписанном поведении сообщений канала MIDI, которые исчерпывающе не документируются здесь. Спецификация называется MIDI Reference: The Complete MIDI 1.0 Detailed Specification
, и публикуется Ассоциацией Производителя MIDI
MIDI был первоначально протоколом для того, чтобы сообщить о жестах музыканта клавиатуры. Это происхождение видимо в MidiChannel
API, который сохраняет такие понятия MIDI как ключевое число, ключевая скорость, и ключевое давление. Нужно подразумевать, что данные MIDI не обязательно происходят с клавишником (источник мог быть различным видом музыканта, или программным обеспечением). Некоторые устройства могли бы генерировать постоянные величины для скорости и давления, независимо от того, как примечание выполнялось. Кроме того, спецификация MIDI часто листы это до синтезатора, чтобы использовать данные в пути конструктор считает целесообразным. Например, скоростные данные не должны всегда отображаться на объем и/или яркость.
Synthesizer.getChannels()
Модификатор и Тип | Метод и Описание |
---|---|
void |
allNotesOff()
Выключает все примечания, которые в настоящий момент звучат на этом канале.
|
void |
allSoundOff()
Сразу выключает все звучащие примечания по этому каналу, игнорируя состояние Педали Хранения и внутренний уровень затухания тока
Instrument . |
void |
controlChange(int controller, int value)
Реагирует на изменение в значении указанного контроллера.
|
int |
getChannelPressure()
Получает давление клавиатуры канала.
|
int |
getController(int controller)
Получает текущую стоимость указанного контроллера.
|
boolean |
getMono()
Получает текущий моно режим / режим поликристаллического кремния.
|
boolean |
getMute()
Получает текущее бесшумное состояние для этого канала.
|
boolean |
getOmni()
Получает ток omni режим.
|
int |
getPitchBend()
Получает восходящее или нисходящее смещение подачи для этого канала.
|
int |
getPolyPressure(int noteNumber)
Получает давление, с которым подавляется указанный ключ.
|
int |
getProgram()
Получает текущее число программы для этого канала.
|
boolean |
getSolo()
Получает текущее сольное состояние для этого канала.
|
boolean |
localControl(boolean on)
Включает или выключает локальное управление.
|
void |
noteOff(int noteNumber)
Выключает указанное примечание.
|
void |
noteOff(int noteNumber, int velocity)
Выключает указанное примечание.
|
void |
noteOn(int noteNumber, int velocity)
Запускает указанное звучание примечания.
|
void |
programChange(int program)
Изменяет программу (патч).
|
void |
programChange(int bank, int program)
Изменяет банк использования программы и программу (патч) числа.
|
void |
resetAllControllers()
Сбросы все реализованные контроллеры к их значениям по умолчанию.
|
void |
setChannelPressure(int pressure)
Реагирует на изменение в давлении клавиатуры.
|
void |
setMono(boolean on)
Включает или выключает моно режим.
|
void |
setMute(boolean mute)
Устанавливает бесшумное состояние для этого канала.
|
void |
setOmni(boolean on)
Включает или выключает omni режим.
|
void |
setPitchBend(int bend)
Изменяет смещение подачи для всех примечаний по этому каналу.
|
void |
setPolyPressure(int noteNumber, int pressure)
Реагирует на изменение в ключевом давлении указанного примечания.
|
void |
setSolo(boolean soloState)
Устанавливает сольное состояние для этого канала.
|
void noteOn(int noteNumber, int velocity)
velocity
нуль, этот метод вместо этого действует как noteOff(int)
, завершение примечания.noteNumber
- число примечания MIDI, от 0 до 127 (60 = Середина C)velocity
- скорость, с которой был подавлен ключnoteOff(int, int)
void noteOff(int noteNumber, int velocity)
Instrument
. Если Педаль Хранения (контроллер; см. controlChange
) снижается, эффект этого метода задерживается, пока педаль не выпускается.noteNumber
- число примечания MIDI, от 0 до 127 (60 = Середина C)velocity
- скорость, с которой была отпущена клавишаnoteOff(int)
, noteOn(int, int)
, allNotesOff()
, allSoundOff()
void noteOff(int noteNumber)
noteNumber
- число примечания MIDI, от 0 до 127 (60 = Середина C)noteOff(int, int)
void setPolyPressure(int noteNumber, int pressure)
setPolyPressure
было успешно, использовать getPolyPressure
.noteNumber
- число примечания MIDI, от 0 до 127 (60 = Середина C)pressure
- значение для указанного ключа, от 0 до 127 (127 = максимальное давление)getPolyPressure(int)
int getPolyPressure(int noteNumber)
noteNumber
- число примечания MIDI, от 0 до 127 (60 = Середина C), Если устройство не поддерживает давление поликристаллического кремния установки, этот метод всегда, возвращается 0. Вызов setPolyPressure
не будет иметь никакого эффекта тогда.setPolyPressure(int, int)
void setChannelPressure(int pressure)
setPolyPressure
. Более обычно это - измерение единственного датчика на устройстве, которое не реализует полифоническое ключевое давление. Давление может использоваться, чтобы управлять различными аспектами звука, как описано под setPolyPressure
. Возможно, что базовый синтезатор не поддерживает это сообщение MIDI. Чтобы проверить это setChannelPressure
было успешно, использовать getChannelPressure
.pressure
- давление, с которым клавиатура подавляется, от 0 до 127 (127 = максимальное давление)setPolyPressure(int, int)
, getChannelPressure()
int getChannelPressure()
setChannelPressure
не будет иметь никакого эффекта тогда.setChannelPressure(int)
void controlChange(int controller, int value)
Instrument
реагирует на изменение контроллера, может быть определенным для Instrument
. MIDI 1.0 Спецификации определяет и 7-разрядные контроллеры и 14-разрядные контроллеры. У непрерывных контроллеров, таких как колеса и ползунки, обычно есть 14 битов (два байта MIDI), в то время как у дискретных контроллеров, таких как переключатели, обычно есть 7 битов (один байт MIDI). Обратитесь к спецификации, чтобы видеть ожидаемое разрешение для каждого типа управления.
Контроллеры 64 - 95 (0x40 - 0x5F) позволяют 7-разрядную точность. Значение 7-разрядного контроллера устанавливается полностью value
параметр. Дополнительный набор контроллеров обеспечивает 14-разрядную точность при использовании двух чисел контроллера, один для старших значащих 7 битов и другого для младших значащих 7 битов. Числа контроллера 0 до 31 (0x00 - 0x1F) управляют старшими значащими 7 битами 14-разрядных контроллеров; контроллер номера 32 - 63 (0x20 - 0x3F) управляет младшими значащими 7 битами этих контроллеров. Например, контроллер номер 7 (0x07) управляет верхними 7 битами контроллера объема канала, и контроллер номер 39 (0x27) управляет более низкими 7 битами. Значение 14-разрядного контроллера определяется взаимодействием этих двух половин. Когда старшие значащие 7 битов контроллера устанавливаются (использование чисел контроллера 0 до 31), более низкие 7 битов автоматически устанавливаются в 0. Соответствующее число контроллера для более низких 7 битов может тогда использоваться, чтобы далее модулировать значение контроллера. Возможно, что базовый синтезатор не поддерживает определенное сообщение контроллера. Чтобы проверить что звонок controlChange
было успешно, использовать getController
.
controller
- число контроллера (от 0 до 127; см. MIDI 1.0 Спецификации для интерпретации),value
- значение, на которое указанный контроллер изменяется (от 0 до 127)getController(int)
int getController(int controller)
controlChange
не будет иметь никакого эффекта тогда.controller
- число контроллера, значение которого требуется. Позволенный диапазон 0-127; см. MIDI 1.0 Спецификации для интерпретации.controlChange(int, int)
void programChange(int program)
Спецификация MIDI не диктует, должны ли примечания, которые уже звучат, переключиться на новый инструмент (тембр) или продолжаться с их исходным тембром пока не завершено примечанием - прочь.
Число программы основано на нуле (выраженный от 0 до 127). Отметьте, что аппаратные дисплеи MIDI и литература о MIDI обычно используют диапазон 1 - 128 вместо этого. Возможно, что базовый синтезатор не поддерживает определенную программу. Чтобы проверить что звонок programChange
было успешно, использовать getProgram
.
program
- число программы, чтобы переключиться на (от 0 до 127)programChange(int, int)
, getProgram()
void programChange(int bank, int program)
programChange
было успешно, использовать getProgram
и getController
. Так как банки изменяются посредством изменений управления, можно проверить текущий банк со следующим оператором: int bank = (getController(0) * 128) + getController(32);
bank
- число банка, чтобы переключиться на (от 0 до 16383)program
- программа (патч), чтобы использовать в указанном банке (от 0 до 127)programChange(int)
, getProgram()
int getProgram()
Patch.getProgram()
, Synthesizer.loadInstrument(javax.sound.midi.Instrument)
, programChange(int)
void setPitchBend(int bend)
Спецификация MIDI предусматривает, что подача изгибается быть 14-разрядным значением, где нуль является максимальным нисходящим изгибом, 16383 максимальный восходящий изгиб, и 8192 центр (никакой изгиб подачи). Фактическое количество изменения подачи не определяется; это может быть изменено установкой чувствительности изгиба подачи. Однако, Общая спецификация MIDI говорит, что диапазон значения по умолчанию должен быть двумя полутонами вверх и вниз от центра. Возможно, что базовый синтезатор не поддерживает это сообщение MIDI. Чтобы проверить это setPitchBend
было успешно, использовать getPitchBend
.
bend
- количество изменения подачи, как неотрицательное 14-разрядное значение (8192 = никакой изгиб)getPitchBend()
int getPitchBend()
setPitchBend
не будет иметь никакого эффекта тогда.setPitchBend(int)
void resetAllControllers()
controlChange(int, int)
void allNotesOff()
Instrument
. Если контроллер Педали Хранения (см. controlChange
) снижается, эффект этого метода задерживается, пока педаль не выпускается.allSoundOff()
, noteOff(int)
void allSoundOff()
Instrument
.allNotesOff()
boolean localControl(boolean on)
localControl
было успешно, проверьте возвращаемое значение.on
- true
включать локальное управление, false
выключить локальное управлениеvoid setMono(boolean on)
"Моно" коротко для "монофонического" слова, который в этом контексте настроен против "полифонического" слова и обращается к единственной речи синтезатора на канал MIDI. Это не имеет никакого отношения к сколько звуковых каналов, там мог бы быть (как в "монофоническом" против "стереофонических" записей). Возможно, что базовый синтезатор не поддерживает моно режим. Чтобы проверить что звонок setMono
было успешно, использовать getMono
.
on
- true
включать моно режим, false
выключить это (что означает включать режим поликристаллического кремния).getMono()
, VoiceStatus
boolean getMono()
setMono
.true
если моно режим идет, иначе false
(значение режима поликристаллического кремния идет).setMono(boolean)
void setOmni(boolean on)
setOmni
было успешно, использовать getOmni
.on
- true
включать omni режим, false
выключить это.getOmni()
, VoiceStatus
boolean getOmni()
setOmni
.true
если omni режим идет, иначе false
(значение omni режим выключено).setOmni(boolean)
void setMute(boolean mute)
true
означает, что канал должен быть отключен звук, false
означает, что канал может звучать (если другие каналы не являются soloed). В отличие от этого allSoundOff()
, этот метод применяется к только определенному каналу, не ко всем каналам. Далее, это заставляет замолчать не только в настоящий момент звучащие примечания, но также и впоследствии полученные примечания. Возможно, что базовый синтезатор не поддерживает каналы отключения звука. Чтобы проверить что звонок setMute
было успешно, использовать getMute
.
mute
- новое бесшумное состояниеgetMute()
, setSolo(boolean)
boolean getMute()
false
.true
канал отключается звук, или false
если нетsetMute(boolean)
void setSolo(boolean soloState)
solo
true
только этот канал и другие каналы soloed будут звучать. Если solo
false
тогда только другие каналы soloed будут звучать, если никакие каналы не будут soloed, когда все каналы нес отключенным звуком будут звучать. Возможно, что базовый синтезатор не поддерживает сольные каналы. Чтобы проверить что звонок setSolo
было успешно, использовать getSolo
.soloState
- новое сольное состояние для каналаgetSolo()
boolean getSolo()
false
.true
канал является соло, или false
если нетsetSolo(boolean)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92