Миди-сервис Bluetooth, что это такое

Обновлено: 21.11.2024

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

Что означает Bluetooth MIDI?

MIDI – это аббревиатура, обозначающая цифровой интерфейс музыкальных инструментов. Это способ подключения устройств, которые создают звук и управляют им, таких как синтезаторы, сэмплеры и компьютеры, чтобы они могли взаимодействовать друг с другом с помощью MIDI-сообщений.

Как использовать MIDI Bluetooth?

Нажмите «MIDI-устройства Bluetooth», чтобы открыть настройки Bluetooth-MIDI-устройств. В App Store найдите «Bluetooth MIDI Connect» и установите его. Запустите Bluetooth MIDI Connect и в появившемся списке нажмите на Bluetooth MIDI-устройство, которое вы хотите использовать; соединение будет установлено.

Что такое MIDI на Android?

Цифровой интерфейс музыкальных инструментов (MIDI) – это стандартный протокол для соединения компьютеров с музыкальными инструментами, сценическим освещением и другими мультимедийными средствами, ориентированными на время.

Каковы преимущества использования MIDI?

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

Как использовать MIDI на телефоне?

На устройстве Android А:

  1. Проведите пальцем вниз от верхней части экрана.
  2. Выберите USB для значка зарядки.
  3. Выберите MIDI.
  4. Запустите приложение MidiKeyboard.
  5. Выберите периферийный USB-порт Android в меню Receiver for Keys вверху.

Есть ли у Bluetooth Midi задержка?

Bluetooth MIDI имеет задержку от нескольких миллисекунд до нескольких десятков миллисекунд по сравнению с USB. Когда расстояние между microKEY и компьютером или устройством iOS увеличивается, задержка может увеличиваться. Попробуйте разместить устройства Bluetooth рядом с компьютером или устройством iOS.

Что значит использовать устройство как MIDI?

Обычно параметр «Использовать устройство как MIDI» предназначен для приема/передачи MIDI через USB из/в приложения Android (которые поддерживают MIDI) или внешние MIDI-устройства (подключенные напрямую к устройству Android через USB).

В чем недостаток MIDI?

Недостатки MIDI зависят от качества звуковой карты, формирующей общий звук, MIDI не может хранить вокал, эффекты очень ограничены, а инструменты звучат менее реалистично.

Как включить Bluetooth на компьютере?

Как активировать Bluetooth?

Можно ли установить Bluetooth в Windows 10?

Какой лучший драйвер Bluetooth?

Список лучшего программного обеспечения Bluetooth для Windows 10 в 2021 г. Установщик драйвера Bluetooth. Это, несомненно, один из лучших драйверов Bluetooth, который может помочь вам решить проблемы с подключением устройств Bluetooth и решить другие проблемы за считанные секунды. Беспроводная связь Intel® Bluetooth®. Вы не можете говорить о лучших драйверах Bluetooth для Windows 10, не включив это отличное программное обеспечение. БлюСолей. Программное обеспечение Bluetooth WIDCOMM.

Некоторые новые MIDI-устройства и большинство персональных компьютеров могут отправлять и получать MIDI-данные через Bluetooth LE. MIDI через Bluetooth включен в качестве стандартного профиля Bluetooth в MacOS и Android, а недавно также был включен в Windows 10. Спецификацию Bluetooth MIDI можно найти на сайте Ассоциации MIDI, и признаки ее долговечности обнадеживают.

Платы MKR 1010, Nano 33 IoT и Nano 33 BLE могут обмениваться данными с помощью Bluetooth LE. Вы можете сделать это с некоторыми производными Arduino, которые также обмениваются данными с помощью Bluetooth LE, но эти примеры были протестированы только с библиотекой ArduinoBLE на MKR 1010, Nano 33 IoT и Nano 33 BLE. У SParkfun есть руководство по MIDI BLE, которое работает с библиотекой BLEPeripheral для некоторых производных плат, таких как их плата nRF52832.

Библиотека ArduinoBLE

Чтобы использовать эти примеры, вам необходимо включить библиотеку ArduinoBLE для использования с MKR 1010, Nano 33 BLE и Nano 33 BLE. В Arduino IDE щелкните меню «Скетч», затем выберите «Включить библиотеку…», затем «Управление библиотеками». Это откроет менеджер библиотек. Отфильтруйте ArduinBLE, и вы должны увидеть библиотеку под названием «ArduinoBLE by Arduino». Установите его. Тогда вы готовы начать.

Краткое введение в концепцию Bluetooth LE

Подробнее о Bluetooth LE см. в статье Make: Bluetooth авторов Alasdair Allan, Don Coleman и Sandeep Mistry или в этом наборе заметок по Bluetooth LE.

Радиопротокол Bluetooth состоит из нескольких профилей приложений: аудио, передача файлов и т. д. В более ранних версиях также был профиль последовательного порта, который включал виртуальный последовательный порт через Bluetooth. Начиная с версии 4.0 (также известный как Bluetooth Low Energy или Bluteooth LE) протокол претерпел некоторые изменения. Профиль последовательного порта больше не является частью протокола. Вместо этого Bluetooth LE использует модель публикации и подписки, в которой одни устройства публикуют службы, а другие подписываются на эти службы.

Устройства Bluetooth LE делятся на два класса: центральные устройства и периферийные устройства. Периферийные устройства, такие как фитнес-устройство, смарт-тег или MIDI-контроллер, предлагают услуги передачи данных, которые могут быть прочитаны другими устройствами. Центральные устройства, такие как портативный компьютер, мобильный телефон или планшет, подписываются на услуги и считывают их с периферийных устройств. Когда центральное устройство подключается к периферийному устройству, оно просматривает доступные службы, а затем может читать, записывать или подписываться на изменения в службе.

Сервисы периферийного устройства представляют собой наборы информации. Например, периферийное устройство с подключенным джойстиком может предлагать службу джойстика, которая включает в себя данные, поступающие от самого джойстика. Каждая услуга состоит из характеристик. Например, джойстик может иметь характеристику X, характеристику перемещения Y и характеристику кнопки. Каждая характеристика имеет определенное значение, которое может меняться. Например, кнопка может измениться с 0 на 1.

Характеристики могут иметь разные свойства. Они могут быть доступны для чтения центральным сервером, для записи центральным сервером или для подписки. Когда центральный сервер подписывается на характеристику, он автоматически уведомляется об изменении значения.

Bluetooth LE MIDI, первоначально разработанный Apple, является новой частью спецификации MIDI. Короче говоря, он заключает MIDI-сообщения в характеристику Bluetooth LE.

Настройка Bluetooth LE MIDI

Чтобы настроить Bluetooth LE MIDI на MKR 1010, Nano 33 IoT или Nano 33 BLE с помощью библиотеки ArduinoBLE, необходимо выполнить несколько шагов. Во-первых, включите библиотеку ArduinBLE в начало кода. Затем создайте массив MIDI-данных и создайте переменные для службы BLE MIDI и характеристики сообщения:

Вы заметите, что и услуга, и характеристики имеют UUID. Эти номера относятся к MIDI BLE и не могут быть изменены. Массив midiData используется для создания пакета данных Bluetooth в характеристике. Первые два байта никогда не изменятся, но последние три будут тремя байтами вашего MIDI-сообщения.

Далее в setup() вам нужно запустить BLE-радио с помощью BLE.begin() , а затем установить локальное имя устройства. Это может быть что угодно. Затем установите службу MIDI в качестве рекламируемой службы и добавьте характеристику сообщения к службе. Наконец, начните рекламировать сервис.

В вашей функции loop() вы будете ждать подключения центральных устройств, а когда они это сделают, вы будете действовать. Вы можете писать в свою характеристику, а в этом случае и в центральную, так как характеристика доступна для записи.

Как и в других упражнениях с MIDI, вы должны создать функцию MIDICommand(). Здесь вы фактически измените характеристику с новыми значениями MIDI.

Теперь, когда вы знаете основные шаги приложения MIDI BLE, давайте посмотрим на них в действии. Здесь вы продублируете простой MIDI-плеер, созданный вами в других упражнениях с MIDI.

Простой MIDI-плеер

Начнем с простого MIDI-проигрывателя мелодий. Мы будем использовать мелодию Piano Phase Стива Райха, которую вы использовали в упражнении с мелодией. Начните новый скетч так же, как вы видели в предыдущем разделе, включив библиотеку ArduinoBLE и настроив массив midiData, а также сервис и характеристики, которые вам понадобятся.

Песня будет воспроизводиться со скоростью 72 удара в минуту, а мелодия будет такой же, как и в упражнении с мелодией, поэтому добавьте следующее к своим глобальным переменным после переменных BLE:

В setup() инициализируйте MIDI BLE точно так же, как вы видели в предыдущем разделе.

В функции loop() вы будете ждать подключения центрального устройства. Когда это произойдет, вы включите встроенный светодиод, указывающий на подключение.

Далее вы отправите MIDI-команду для воспроизведения ноты на канале 0 (это MIDI-команда 0x90) на полной громкости (это 127 или 0x7F в шестнадцатеричном формате). Вы напишете функцию midiCommand() позже, но с этой информацией вы можете написать вызов функции:

Все ноты в этой мелодии - шестнадцатые, что составляет 1/4 доли, так что задержитесь так долго. Затем отправьте команду отключения ноты (0x80) для той же высоты:

Наконец, добавьте единицу в счетчик нот и убедитесь, что она не превышает длину мелодии (12 нот). Это закроет блок if (central) <. После этого вы можете выключить встроенный светодиод, потому что центральный отключен, и вы можете закрыть функцию loop():

Теперь вам нужно написать функцию midiCommand(), которую вы вызвали в цикле. Это выглядит так:

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

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

Вы можете подключиться через BLE к компьютеру MacOS с помощью приложения Audio MIDI Setup, которое входит в состав операционной системы. Откройте его и найдите значок Bluetooth. На рис. 1 показана панель с выделенным значком.

Рис. 1. Панель MacOS Audio MIDI Studio с кнопкой Bluetooth

Если щелкнуть значок Bluetooth, откроется сканер Bluetooth. Если приведенный выше скетч загружен, Arduino должен отображаться как новое MIDI-устройство, как показано на рисунке 2. Нажмите «подключиться», и устройство станет доступным для всех ваших MIDI-приложений.

Рис. 2. Панель MacOS Audio MIDI Bluetooth Configuration. Ваше устройство BLE должно появиться в списке внизу, и вы сможете подключиться к нему, нажав кнопку Подключить.

Даже если ваше устройство отправляет MIDI-сообщения, их никто не слушает. Если у вас есть цифровая звуковая рабочая станция, такая как Ableton или GarageBand, вы можете открыть ее, настроить MIDI-вход для поиска вашего Arduino, и ноты будут воспроизводиться. Подробнее об этом см. в этом руководстве по MIDI to DAW. Если вы не используете DAW, загрузите бесплатный проигрыватель MIDI-синтезаторов, например Sforzando. Вам также может понадобиться руководство пользователя Sforzando. Затем загрузите файл инструмента. Этот рояль Yamaha Disklavier довольно хорош, как и некоторые другие шрифты SoundFonts на этой странице.

Запустите Sforzando. При первом запуске он должен предложить вам установить параметры ввода MIDI. Выберите Arduino в качестве MIDI-входа. Разархивируйте звуковые файлы, затем нажмите «Импорт» в Sforzando, чтобы открыть файлы SoundFont. Затем вы должны услышать, как играет мелодия. Поздравляем, у вас есть MIDI!

Теперь вы готовы приступить к созданию MIDI-инструмента.

Примечание. Вы также можете подключить программные синтезаторы Android к контроллеру с помощью приложения MIDI BLE Connect, которое можно загрузить из магазина приложений Android.

Управляющие сообщения MIDI

Если вы хотите использовать BLE MIDI для отправки данных, отличных от сообщений noteon и noteoff, ознакомьтесь с примером сообщения ArduinBLE MIDI Control Change. В этом примере используются MIDI-контроллеры 14 и 15, которые не определены в спецификации MIDI, поэтому их использование вряд ли будет конфликтовать с другими контроллерами, такими как изменение высоты тона. В этом примере показано, как отправить два аналоговых входа, но его можно настроить для любых входов датчиков.

Ограничения на непрерывную отправку.

Если вы постоянно отправляете управляющие сообщения, подобные этому, вам следует быть осторожным и не отправлять их слишком часто. Bluetooth LE MIDI, по крайней мере, реализованный в MacOS, по-видимому, имеет некоторые ограничения буфера, и отправка управляющих сообщений как можно быстрее может вызвать проблемы. Приведенный выше пример ограничивает отправку двумя управляющими сообщениями каждые 20 миллисекунд, что работает достаточно хорошо. Вы можете настроить интервал времени в соответствии с вашими потребностями и ограничениями вашей системы.

Подробнее о сообщениях об изменении управления MIDI см. на странице MIDI Association об изменениях управления.

Подключение через Bluetooth LE

Для этого требуется Android 6 или выше с полной поддержкой MIDI!

MIDI через Bluetooth LE де-факто стандартизирован Apple в OS X 10.10 (Yosemite) и iOS 8.
Android частично поддерживает этот стандарт, начиная с версии 6 (Marshmallow), но для этого потребуется ПЗУ вашего устройства. для поддержки собственных MIDI API.

Однако на Android есть одна серьезная проблема: Bluetooth привязан к разрешению "Местоположение". Чтобы иметь возможность сканировать периферийные устройства Bluetooth LE MIDI и связываться с ними, общесистемная настройка Android «Местоположение» должна быть включена, а приложение, которое выполняет сканирование и сопряжение, должно иметь разрешение на доступ к информации о местоположении пользователя. У TouchDAW нет такого разрешения, и я не собираюсь его запрашивать.

Теперь это не означает, что TouchDAW не будет работать с устройствами Bluetooth MIDI. Каждое приложение может использовать периферийные устройства BLE MIDI после их обнаружения и сопряжения, независимо от запрашиваемых разрешений. Если вы хотите сообщить свое местоположение, предоставить разрешения другому приложению и использовать это приложение для подключения периферийного устройства BLE, вы все равно можете использовать его в TouchDAW, несмотря на то, что его автор — какой-то глупый и чрезмерно заботящийся о конфиденциальности немец.

В настоящее время есть два специальных бесплатных приложения, которые находят и подключаются к периферийным устройствам Bluetooth MIDI, доступным в Google Play:

Оба устройства прекрасно справятся со своей задачей, и после подключения периферийного устройства BLE к любому из них вы сможете выбрать его в настройках MIDI-портов TouchDAW, как показано на рисунке выше.


Примечания, известные проблемы:

Общая системная опция «Местоположение» обязательно должна быть включена, чтобы BLE MIDI работал. Android автоматически предоставит разрешение на определение местоположения некоторым приложениям Google. Прежде чем продолжить, вы можете подробнее изучить разрешения приложений.

НЕ пытайтесь выполнить сопряжение устройства BLE в настройках Bluetooth системы. Используйте только приложение коннектора.

Используйте переключатель задач, чтобы вернуться в TouchDAW после использования приложения Connector. Если вы откажетесь от него, соединение с устройством может быть разорвано до того, как TouchDAW сможет получить к нему доступ.

Большинство MIDI-устройств BLE предоставляют только один порт и могут обслуживать только одно из MIDI-соединений TouchDAW.

Bluetooth по-прежнему работает странно, глючит и сильно зависит от аппаратного обеспечения Android.

Bluetooth LE никоим образом не "быстрее", чем традиционный Bluetooth. Задержка может стать проблемой, особенно при высокой скорости управляющего трафика DAW.

MIDI API Android работает только в «центральном» режиме. Он не может быть периферийным по отношению к другим «центральным». Чтобы подключиться к Mac, Mac должен рекламировать свои услуги. Он не увидит устройство Android.

Не позволяйте ничему заснуть. Если вы это сделаете, вы можете получить мертвое MIDI-соединение, и у вас не будет возможности разорвать и восстановить сопряжение.

Многие люди (в том числе инженеры), которые не пробовали Bluetooth MIDI, предполагают много вещей о задержке с MIDI через Bluetooth. MIDI — это последовательный протокол, разработанный в начале 80-х годов. Для начала это не удивительно быстро.

За последнее десятилетие технология Bluetooth быстро развивалась. Он легко обрабатывает несколько мегабит в секунду. Вот почему легко сказать, что MIDI через Bluetooth может предложить музыкантам и продюсерам профессиональное решение с низкой задержкой. Как на сцене, так и в студии.

Производителю еще проще сказать это. Приглашаем вас посмотреть это двухминутное видео Роджера Линна. Г-н Линн, легендарный дизайнер LM-1, MPC и LinnDrum, рассказывает о WIDI Master и своем Linnstrument на базе MPE от Roger Linn Design.

Обратите внимание, что это не платная реклама. Ни один из членов команды CME не просил Роджера создать это видео. Он только что купил его. Понравилось это. И поделился им.

Беспроводной MIDI: основы

Прежде чем мы углубимся в детали и более сложные вопросы, давайте рассмотрим некоторые основные идеи о BLE MIDI (Bluetooth MIDI).

  • Bluetooth MIDI не является Bluetooth Audio и не вызывает подобных проблем с задержкой. Это две совершенно разные технологии.
  • Задержка — это нормально. Это происходит в человеческом слухе и при общении между аудиоинтерфейсом, компьютерами, миди-контроллерами, мониторными динамиками и так далее. Все имеет задержку.
  • Время преобразования незначительно. Задержка между двумя устройствами WIDI составляет всего 3 мс. Это абсолютно неслышимо для человеческого слуха. Это даже ниже по сравнению с внутренней задержкой многих MIDI-устройств, программного обеспечения и приложений.
  • Говоря о задержке, нужно учитывать всю настройку. Учтите, что вся (или круглая задержка) ваша установка состоит из множества устройств, и ваше MIDI-соединение Bluetooth — лишь одно из них. Полная задержка настройки MIDI может легко достигать 15 мс.

Небольшое слово о терминологии MIDI

Как вы, возможно, знаете, история технологии MIDI включает в себя широко используемые термины «ведущий» и «ведомый». Хотя термин «хозяин» не вызывает особых проблем, слово «раб» может вызвать нежелательные чувства и эмоции у большой группы людей.

По просьбам Сообщества энтузиастов MIDI предполагается изменить терминологию на более современную форму общения.

Вот почему в случае с Bluetooth MIDI мы скорее говорим о центральных и периферийных устройствах, когда обсуждаем соединения Bluetooth. А с USB MIDI мы скорее говорим о хостах и ​​устройствах.

Поскольку ранее использовавшаяся терминология MIDI упрощает что-то довольно ужасное, связанное с институциональным расизмом и колонизацией, цель состоит в том, чтобы больше не использовать термин «раб». Хотя поначалу это может вас немного сбить с толку, для адаптации потребуется совсем немного времени. Прочтите эту статью для лучшего понимания.

Вернемся к самому интересному. Давайте поговорим о BLE MIDI и, конечно же… о задержке!

Задержка — это просто число…

Существует много заявлений о задержке и особенно о способности человека действительно заметить ее. Не говоря уже о том, чтобы связать его с определенной частью вашей системы. Есть музыканты, которые играют на своих инструментах, исходя из ограничений этого устройства. Задержка может быть только одним из них. При этом он становится частью сделки.

Конечно, задержка – важный показатель, когда речь идет о создании и исполнении музыки. Задержка для Bluetooth MIDI не зависит сама от себя. Это зависит от среды и подключенных устройств.

Как и в случае с Роджером Линном, одним из первых пользователей WIDI был замечательный Жан-Мишель Жарр. Опять же, от CME не было запроса к JMJ. Мы также не платили ему за то, чтобы он сказал несколько приятных слов. Он просто купил его. Нам понравилось, и мы обратились к нам, чтобы поздравить компанию CME и ее инженеров.

Умные алгоритмы подключения

Чтобы перейти к предыдущему абзацу о задержке, для полного понимания важно взглянуть на картину в целом.

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

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

Попробуйте сами!

Вот почему рекомендуется попробовать это самостоятельно. Испытайте производительность с различными настройками в разных средах. После этого вы сможете принять собственное решение, основываясь на реальном жизненном опыте.

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

Наши инженеры постоянно работают над улучшением микропрограммы WIDI и, в частности, над снижением джиттера. WIDI использует набор интеллектуальных алгоритмов для выбора наиболее эффективной частоты на заданном расстоянии между устройствами. Это то, что называется адаптивной скачкообразной перестройкой частоты. Короче говоря, WIDI может переключать частоты, чтобы поддерживать максимальную производительность.

Вся совокупность используемых алгоритмов называется SCA. Или интеллектуальные алгоритмы подключения. Благодаря SCA производительность WIDI оптимизируется в любой ситуации. SCA расшифровывается как Автоматизация двойной роли, Автоматический режим сопряжения, Функциональность Smart Hub, Оптимизация сокращения задержки и Оптимизация производительности диапазона!

Разница между кабелем MIDI и BLE MIDI

Во-первых, при использовании Bluetooth задержка MIDI всегда немного выше по сравнению с обычным кабелем MIDI.

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

Это обсуждение очень похоже на то, которое у нас было в начале потоковой передачи и в дни загрузки файлов MP3 и WAV. Или то, что качество винила превосходит все остальное… это продолжается, никогда не заканчивается, а также является важной частью процесса разработки инновационных технологий.

Bluetooth MIDI и задержка на iOS и Mac

Говоря о задержке технологии WIDI, следует помнить, что мы измеряем задержку с помощью осциллографа. Он измеряется между двумя мастерами WIDI. Самый низкий результат — 3 мс. Максимальное значение составляет 10 мс. Мы измеряем среднее время от 5 мс до 6 мс.

Задержка в iOS и macOS связана с ограничением интервала подключения Bluetooth. Это правило, установленное Apple. На iOS это минимум 11,25 мс. В macOS это минимум 7,5 мс.

Обратите внимание, что это «интервалы», а не «задержка». Эти интервалы могут вызвать задержку и дрожание из-за ограничения этого буфера.

Обход ограничений macOS и iOS

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

Если мы отойдем от интервала подключения Bluetooth в iOS и macOS, два мастера WIDI могут установить себя с кратчайшим интервалом, поддерживаемым Bluetooth 5. Таким образом, мы можем значительно сократить задержку.

Кроме того, в дизайне macOS встроена возможность «убивать» любое неиспользуемое соединение BLE MIDI. Он разработан таким образом, потому что macOS не отдает приоритет Bluetooth MIDI. Он отдает приоритет Bluetooth для аудио и других данных. Bluetooth MIDI просто не так важен для Apple.

Для обхода ограничений iOS и macOS интересным вариантом является WIDI Uhost или WIDI Bud Pro. Это также позволит вам выполнять сопряжение автоматически, вместо того, чтобы каждый раз вручную устанавливать соединение BLE MIDI..

Читайте также: