Класс MidiSystem

public class MidiSystem
extends Object

Класс MidiSystem предоставляет доступ к ресурсам установленной MIDI-системы, включая устройства, такие как синтезаторы, секвенсоры и порты MIDI-ввода и -вывода. Типичное простое MIDI-приложение может начать с вызова одного или нескольких методов MidiSystem, чтобы узнать, какие устройства установлены и получить необходимые в этом приложении.

Класс также содержит методы для чтения файлов, потоков и URL-адресов, содержащих стандартные MIDI-файлы данных или звуковые банки. Можно запросить формат указанного MIDI-файла у MidiSystem.

Нельзя создать экземпляр MidiSystem; все методы являются статическими.

Свойства могут использоваться для задания стандартных MIDI-устройств. Рассматриваются как системные свойства, так и файл свойств. Файл свойств "sound.properties" читается из места, зависящего от реализации (обычно это каталог conf в каталоге установки Java). Необязательное системное свойство "javax.sound.config.file" может быть использовано для задания файла свойств, который будет считаться начальной конфигурацией. Если свойство существует как системное свойство, так и в файле свойств, то приоритет отдаётся системному свойству. Если ни то, ни другое не указано, среди доступных устройств выбирается подходящий по умолчанию. Синтаксис файла свойств указан в Properties.load. В следующей таблице перечислены доступные ключи свойств и методы, которые их учитывают:

Ключ свойства Интерфейс Затронутый метод
javax.sound.midi.Receiver Receiver getReceiver()
javax.sound.midi.Sequencer Sequencer getSequencer()
javax.sound.midi.Synthesizer Synthesizer getSynthesizer()
javax.sound.midi.Transmitter Transmitter getTransmitter()
Значение свойства состоит из имени класса поставщика и имени устройства, разделённых символом «#». Имя класса поставщика — полное имя конкретного класса MIDI device provider. Имя устройства сопоставляется с именем, возвращаемым методом getName класса MidiDevice.Info. Можно опустить либо имя класса, либо имя устройства. Если указано только имя класса, символ «#» в конце необязателен.

Если указан класс поставщика, и его можно успешно получить из установленных поставщиков, список объектов MidiDevice.Info извлекается из поставщика. В противном случае или когда эти устройства не обеспечивают последующего соответствия, список извлекается из getMidiDeviceInfo() для включения всех доступных объектов MidiDevice.Info.

Если указано имя устройства, результат поиска объектов MidiDevice.Info: возвращается первый объект с совпадающим именем, и чьё MidiDevice реализует соответствующий интерфейс. Если соответствующий объект MidiDevice.Info не найден или имя устройства не указано, возвращается первое подходящее устройство из полученного списка. Для секвенсора и синтезатора устройство подходит, если оно реализует соответствующий интерфейс; для приёмника и передатчика — если оно не реализует ни секвенсор, ни синтезатор и предоставляет по крайней мере один приёмник или передатчик соответственно.

Например, свойство javax.sound.midi.Receiver со значением "com.sun.media.sound.MidiProvider#SunMIDI1" при вызове getReceiver будет иметь следующие последствия: если класс com.sun.media.sound.MidiProvider существует в списке установленных поставщиков MIDI-устройств, возвращается первое устройство Receiver с именем "SunMIDI1". Если его найти не удаётся, возвращается первое устройство Receiver от этого поставщика, независимо от имени. Если их нет, возвращается первое устройство Receiver с именем "SunMIDI1" в списке всех устройств (как возвращается методом getMidiDeviceInfo), или, если и это не найдено, возвращается первое устройство Receiver, которое найдено в списке всех устройств. Если и это не удаётся, выбрасывается исключение MidiUnavailableException.

Методы

Модификатор и тип Метод Описание
static MidiDevice getMidiDevice​(MidiDevice.Info info)

Получает запрашиваемое MIDI-устройство.

static MidiDevice.Info[] getMidiDeviceInfo()

Получает массив объектов информации, представляющих набор всех MIDI-устройств, доступных в системе.

static MidiFileFormat getMidiFileFormat​(File file)

Получает формат MIDI-файла указанного File.

static MidiFileFormat getMidiFileFormat​(InputStream stream)

Получает формат MIDI-файла данных в указанном входном потоке.

static MidiFileFormat getMidiFileFormat​(URL url)

Получает формат MIDI-файла данных в указанном URL-адресе.

static int[] getMidiFileTypes()

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

static int[] getMidiFileTypes​(Sequence sequence)

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

static Receiver getReceiver()

Получает MIDI-приёмник из внешнего MIDI-порта или другого устройства по умолчанию.

static Sequence getSequence​(File file)

Получает MIDI-последовательность из указанного File.

static Sequence getSequence​(InputStream stream)

Получает MIDI-последовательность из указанного входного потока.

static Sequence getSequence​(URL url)

Получает MIDI-последовательность из указанного URL-адреса.

static Sequencer getSequencer()

Получает по умолчанию Sequencer, подключённый к устройству по умолчанию.

static Sequencer getSequencer​(boolean connected)

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

static Soundbank getSoundbank​(File file)

Создаёт Soundbank, считывая его из указанного File.

static Soundbank getSoundbank​(InputStream stream)

Создаёт MIDI-звуковой банк, считывая его из указанного потока.

static Soundbank getSoundbank​(URL url)

Создаёт Soundbank, считывая его из указанного URL-адреса.

static Synthesizer getSynthesizer()

Получает синтезатор по умолчанию.

static Transmitter getTransmitter()

Получает MIDI-передатчик из внешнего MIDI-порта или другого источника по умолчанию.

static boolean isFileTypeSupported​(int fileType)

Указывает, предоставляется ли поддержка записи файлов для указанного типа MIDI-файлов системой.

static boolean isFileTypeSupported​(int fileType, Sequence sequence)

Указывает, может ли система записать MIDI-файл указанного типа из указанной последовательности.

static int write​(Sequence in, int type, File out)

Записывает поток байтов, представляющий файл указанного типа MIDI-файла, во внешний файл.

static int write​(Sequence in, int fileType, OutputStream out)

Записывает поток байтов, представляющий файл указанного типа MIDI-файла, в указанный выходной поток.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы

getMidiDeviceInfo

public static MidiDevice.Info[] getMidiDeviceInfo()

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

Возвращает:
массив объектов MidiDevice.Info, по одному для каждого установленного устройства MIDI. Если таких устройств нет, возвращается массив длиной 0.

getMidiDevice

public static MidiDevice getMidiDevice(MidiDevice.Info info)
                                throws MidiUnavailableException

Получает запрашиваемое устройство MIDI.

Параметры:
info - объект информации о устройстве, представляющий нужное устройство
Возвращает:
запрашиваемое устройство
Исключения:
MidiUnavailableException - если запрашиваемое устройство недоступно из-за ограничений ресурсов
IllegalArgumentException - если объект info не представляет устройство MIDI, установленное в системе
NullPointerException - если info является null
См. также:
getMidiDeviceInfo()

getReceiver

public static Receiver getReceiver()
                            throws MidiUnavailableException

Получает приемник MIDI из внешнего порта MIDI или другого устройства по умолчанию. Возвращаемый приемник всегда реализует интерфейс MidiDeviceReceiver.

Если системная переменная javax.sound.midi.Receiver определена, или она определена в файле "sound.properties", она используется для идентификации устройства, предоставляющего приемник по умолчанию. Подробнее см. class description.

Если подходящий порт MIDI недоступен, приемник извлекается из установленного синтезатора.

Если родной приемник, предоставляемый устройством по умолчанию, не реализует интерфейс MidiDeviceReceiver, он будет обернут в класс-обёртку, реализующий интерфейс MidiDeviceReceiver. Соответствующие вызовы метода Receiver будут перенаправлены на родной приемник.

Если этот метод выполняется успешно, MidiDevice, к которому принадлежит Receiver, открывается неявно, если он ещё не открыт. Закрыть неявное открытое устройство можно, вызвав close на возвращённом Receiver. Все открытые экземпляры Receiver должны быть закрыты, чтобы освободить системные ресурсы, удерживаемые MidiDevice. Подробное описание поведения открывания/закрытия см. в описании класса MidiDevice.

Возвращает:
приемник MIDI по умолчанию
Исключения:
MidiUnavailableException - если приемник по умолчанию недоступен из-за ограничений ресурсов или устройство, предоставляющее приемники, не установлено в системе

getTransmitter

public static Transmitter getTransmitter()
                                  throws MidiUnavailableException

Получает передатчик MIDI из внешнего порта MIDI или другого источника по умолчанию. Возвращаемый передатчик всегда реализует интерфейс MidiDeviceTransmitter.

Если системная переменная javax.sound.midi.Transmitter определена, или она определена в файле "sound.properties", она используется для идентификации устройства, предоставляющего передатчик по умолчанию. Подробнее см. class description.

Если родной передатчик, предоставляемый устройством по умолчанию, не реализует интерфейс MidiDeviceTransmitter, он будет обернут в класс-обёртку, реализующий интерфейс MidiDeviceTransmitter. Соответствующие вызовы метода Transmitter будут перенаправлены на родной передатчик.

Если этот метод выполняется успешно, MidiDevice, к которому принадлежит Transmitter, открывается неявно, если он ещё не открыт. Закрыть неявное открытое устройство можно, вызвав close на возвращённом Transmitter. Все открытые экземпляры Transmitter должны быть закрыты, чтобы освободить системные ресурсы, удерживаемые MidiDevice. Подробное описание поведения открывания/закрытия см. в описании класса MidiDevice.

Возвращает:
передатчик MIDI по умолчанию
Исключения:
MidiUnavailableException - если передатчик по умолчанию недоступен из-за ограничений ресурсов или устройство, предоставляющее передатчики, не установлено в системе

getSynthesizer

public static Synthesizer getSynthesizer()
                                  throws MidiUnavailableException

Получает синтезатор по умолчанию.

Если системная переменная javax.sound.midi.Synthesizer определена, или она определена в файле "sound.properties", она используется для идентификации синтезатора по умолчанию. Подробнее см. class description.

Возвращает:
синтезатор по умолчанию
Исключения:
MidiUnavailableException - если синтезатор недоступен из-за ограничений ресурсов или синтезатор не установлен в системе

getSequencer

public static Sequencer getSequencer()
                              throws MidiUnavailableException

Получает последователь Sequencer, подключённый к устройству по умолчанию. Возвращённый экземпляр Sequencer подключается к умолчанию Synthesizer, как возвращает getSynthesizer(). Если последователь Synthesizer недоступен или умолчанию Synthesizer нельзя открыть, последователь подключается к умолчанию Receiver, как возвращает getReceiver(). Подключение производится путём получения экземпляра Transmitter из Sequencer и установки его Receiver. Закрытие и повторное открытие последователя восстановит подключение к устройству по умолчанию.

Этот метод эквивалентен вызову getSequencer(true).

Если системная переменная javax.sound.midi.Sequencer определена, или она определена в файле "sound.properties", она используется для идентификации последователя по умолчанию. Подробнее см. class description.

Возвращает:
последователь по умолчанию, подключённый к приемнику по умолчанию
Исключения:
MidiUnavailableException - если последователь недоступен из-за ограничений ресурсов, или последователь недоступен ни в одном из установленных MidiDevice, или последователь не установлен в системе
См. также:
getSequencer(boolean), getSynthesizer(), getReceiver()

getSequencer

public static Sequencer getSequencer(boolean connected)
                              throws MidiUnavailableException

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

Если connected равно true, возвращаемый экземпляр Sequencer подключается к умолчанию Synthesizer, как возвращает getSynthesizer(). Если последователь Synthesizer недоступен или умолчанию Synthesizer нельзя открыть, последователь подключается к умолчанию Receiver, как возвращает getReceiver(). Подключение производится путём получения экземпляра Transmitter из Sequencer и установки его Receiver. Закрытие и повторное открытие последователя восстановит подключение к устройству по умолчанию.

Если connected равно false, возвращаемый экземпляр Sequencer не подключён, он не имеет открытых Transmitters. Чтобы запустить последователь на устройстве MIDI или Synthesizer, необходимо получить Transmitter и установить его Receiver.

Если системная переменная javax.sound.midi.Sequencer определена, или она определена в файле "sound.properties", она используется для идентификации последователя по умолчанию. Подробнее см. class description.

Параметры:
connected - нужно ли подключать возвращаемый Sequencer к умолчанию Synthesizer
Возвращает:
последователь по умолчанию
Исключения:
MidiUnavailableException - если последователь недоступен из-за ограничений ресурсов, или последователь не установлен в системе, или если connected равно true, и нет последователя Receiver в каком-либо из установленных MidiDevice
С тех пор как:
1.5
См. также:
getSynthesizer(), getReceiver()

getSoundbank

public static Soundbank getSoundbank(InputStream stream)
                              throws InvalidMidiDataException,
                                     IOException

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

Параметры:
stream - источник данных звуковой библиотеки
Возвращает:
звуковую библиотеку
Исключения:
InvalidMidiDataException - если поток не указывает на допустимые данные звуковой библиотеки MIDI, распознаваемые системой
IOException - если произошла ошибка ввода-вывода при загрузке звуковой библиотеки
NullPointerException - если stream является null
См. также:
InputStream.markSupported(), InputStream.mark(int)

getSoundbank

public static Soundbank getSoundbank(URL url)
                              throws InvalidMidiDataException,
                                     IOException

Создаёт звуковую библиотеку Soundbank, считывая её из указанного URL. URL должен указывать на допустимый файл звуковой библиотеки MIDI.

Параметры:
url - источник данных звуковой библиотеки
Возвращает:
звуковую библиотеку
Исключения:
InvalidMidiDataException - если URL не указывает на допустимые данные звуковой библиотеки MIDI, распознаваемые системой
IOException - если произошла ошибка ввода-вывода при загрузке звуковой библиотеки
NullPointerException - если url является null

getSoundbank

public static Soundbank getSoundbank(File file)
                              throws InvalidMidiDataException,
                                     IOException

Создаёт звуковую библиотеку Soundbank путём считывания из указанного File. File должен указывать на допустимый файл звуковой библиотеки MIDI.

Parameters:
file - источник данных звукового банка
Returns:
звуковой банк
Throws:
InvalidMidiDataException - если File не указывает на действительные данные звукового банка MIDI, распознаваемые системой
IOException - если произошла ошибка ввода-вывода при загрузке звукового банка
NullPointerException - если file является null

getMidiFileFormat

public static MidiFileFormat getMidiFileFormat(InputStream stream)
                                        throws InvalidMidiDataException,
                                               IOException

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

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

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

Parameters:
stream - входной поток, из которого следует извлечь информацию о формате файла
Returns:
объект MidiFileFormat, описывающий формат файла MIDI
Throws:
InvalidMidiDataException - если поток не указывает на действительные данные файла MIDI, распознаваемые системой
IOException - если при доступе к потоку возникает исключение ввода-вывода
NullPointerException - если stream является null
See Also:
getMidiFileFormat(URL), getMidiFileFormat(File), InputStream.markSupported(), InputStream.mark(int)

getMidiFileFormat

public static MidiFileFormat getMidiFileFormat(URL url)
                                        throws InvalidMidiDataException,
                                               IOException

Получает формат файла MIDI данных из указанного URL-адреса. URL-адрес должен указывать на действительные данные файла MIDI для типа файла, распознаваемого системой.

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

Parameters:
url - URL-адрес, из которого следует извлечь информацию о формате файла
Returns:
объект MidiFileFormat, описывающий формат файла MIDI
Throws:
InvalidMidiDataException - если URL-адрес не указывает на действительные данные файла MIDI, распознаваемые системой
IOException - если при доступе к URL-адресу возникает исключение ввода-вывода
NullPointerException - если url является null
See Also:
getMidiFileFormat(InputStream), getMidiFileFormat(File)

getMidiFileFormat

public static MidiFileFormat getMidiFileFormat(File file)
                                        throws InvalidMidiDataException,
                                               IOException

Получает формат файла MIDI указанного File. File должен указывать на действительные данные файла MIDI для типа файла, распознаваемого системой.

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

Parameters:
file - File, из которого следует извлечь информацию о формате файла
Returns:
объект MidiFileFormat, описывающий формат файла MIDI
Throws:
InvalidMidiDataException - если File не указывает на действительные данные файла MIDI, распознаваемые системой
IOException - если при доступе к файлу возникает исключение ввода-вывода
NullPointerException - если file является null
See Also:
getMidiFileFormat(InputStream), getMidiFileFormat(URL)

getSequence

public static Sequence getSequence(InputStream stream)
                            throws InvalidMidiDataException,
                                   IOException

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

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

Эта операция может завершиться успешно только для файлов типа, который может быть разобран установленным средством чтения файлов. Она может завершиться ошибкой с InvalidMidiDataException даже для действительных файлов, если не установлено совместимое средство чтения файлов. Она также завершится ошибкой с InvalidMidiDataException, если установлено совместимое средство чтения файлов, но при создании объекта Sequence из данных файла возникают ошибки.

Parameters:
stream - входной поток, из которого следует создать Sequence
Returns:
объект Sequence, основанный на данных файла MIDI, содержащихся во входном потоке
Throws:
InvalidMidiDataException - если поток не указывает на действительные данные файла MIDI, распознаваемые системой
IOException - если при доступе к потоку возникает исключение ввода-вывода
NullPointerException - если stream является null
See Also:
InputStream.markSupported(), InputStream.mark(int)

getSequence

public static Sequence getSequence(URL url)
                            throws InvalidMidiDataException,
                                   IOException

Получает последовательность MIDI из указанного URL-адреса. URL-адрес должен указывать на действительные данные файла MIDI для типа файла, распознаваемого системой.

Эта операция может завершиться успешно только для файлов типа, который может быть разобран установленным средством чтения файлов. Она может завершиться ошибкой с InvalidMidiDataException даже для действительных файлов, если не установлено совместимое средство чтения файлов. Она также завершится ошибкой с InvalidMidiDataException, если установлено совместимое средство чтения файлов, но при создании объекта Sequence из данных файла возникают ошибки.

Parameters:
url - URL-адрес, из которого следует создать Sequence
Returns:
объект Sequence, основанный на данных файла MIDI, на которые указывает URL-адрес
Throws:
InvalidMidiDataException - если URL-адрес не указывает на действительные данные файла MIDI, распознаваемые системой
IOException - если при доступе к URL-адресу возникает исключение ввода-вывода
NullPointerException - если url является null

getSequence

public static Sequence getSequence(File file)
                            throws InvalidMidiDataException,
                                   IOException

Получает последовательность MIDI из указанного File. File должен указывать на действительные данные файла MIDI для типа файла, распознаваемого системой.

Эта операция может завершиться успешно только для файлов типа, который может быть разобран установленным средством чтения файлов. Она может завершиться ошибкой с InvalidMidiDataException даже для действительных файлов, если не установлено совместимое средство чтения файлов. Она также завершится ошибкой с InvalidMidiDataException, если установлено совместимое средство чтения файлов, но при создании объекта Sequence из данных файла возникают ошибки.

Parameters:
file - File, из которого следует создать Sequence
Returns:
объект Sequence, основанный на данных файла MIDI, на которые указывает File
Throws:
InvalidMidiDataException - если File не указывает на действительные данные файла MIDI, распознаваемые системой
IOException - если возникает исключение ввода-вывода
NullPointerException - если file является null

getMidiFileTypes

public static int[] getMidiFileTypes()

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

Returns:
массив уникальных типов файлов. Если типы файлов не поддерживаются, возвращается массив длиной 0.

isFileTypeSupported

public static boolean isFileTypeSupported(int fileType)

Указывает, поддерживает ли система запись файлов для указанного типа файла MIDI.

Parameters:
fileType - тип файла, для которого запрашиваются возможности записи
Returns:
true если тип файла поддерживается, в противном случае false

getMidiFileTypes

public static int[] getMidiFileTypes(Sequence sequence)

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

Parameters:
sequence - последовательность, для которой запрашивается поддержка типа файла MIDI
Returns:
набор уникальных поддерживаемых типов файлов. Если типы файлов не поддерживаются, возвращается массив длиной 0.
Throws:
NullPointerException - если sequence является null

isFileTypeSupported

public static boolean isFileTypeSupported(int fileType,
                                          Sequence sequence)

Указывает, можно ли записать файл MIDI указанного типа из указанной последовательности.

Parameters:
fileType - тип файла, для которого запрашиваются возможности записи
sequence - последовательность, для которой запрашивается поддержка записи файлов
Returns:
true если тип файла поддерживается для этой последовательности, в противном случае false
Throws:
NullPointerException - если sequence является null

write

public static int write(Sequence in,
                        int fileType,
                        OutputStream out)
                 throws IOException

Записывает поток байтов, представляющий файл типа MIDI, указанного в предоставленном выходном потоке.

Параметры:
in - последовательность, содержащая данные MIDI, которые будут записаны в файл
fileType - тип файла, который будет записан в выходной поток
out - поток, в который должны быть записаны данные файла
Возвращает:
количество байтов, записанных в выходной поток
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
IllegalArgumentException - если формат файла не поддерживается системой
NullPointerException - если in или out являются null
См. также:
isFileTypeSupported(int, Sequence), getMidiFileTypes(Sequence)

write

public static int write(Sequence in,
                        int type,
                        File out)
                 throws IOException

Записывает поток байтов, представляющий файл типа MIDI, указанного в предоставленном внешнем файле.

Параметры:
in - последовательность, содержащая данные MIDI, которые будут записаны в файл
type - тип файла, который будет записан в выходной поток
out - внешний файл, в который должны быть записаны данные файла
Возвращает:
количество байтов, записанных в файл
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
IllegalArgumentException - если тип файла не поддерживается системой
NullPointerException - если in или out являются null
См. также:
isFileTypeSupported(int, Sequence), getMidiFileTypes(Sequence)

© 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/MidiSystem.html

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